JP6136688B2 - 情報コード利用システム、及び情報コード読取装置 - Google Patents

情報コード利用システム、及び情報コード読取装置 Download PDF

Info

Publication number
JP6136688B2
JP6136688B2 JP2013148826A JP2013148826A JP6136688B2 JP 6136688 B2 JP6136688 B2 JP 6136688B2 JP 2013148826 A JP2013148826 A JP 2013148826A JP 2013148826 A JP2013148826 A JP 2013148826A JP 6136688 B2 JP6136688 B2 JP 6136688B2
Authority
JP
Japan
Prior art keywords
code
data
information
secret data
secret
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.)
Active
Application number
JP2013148826A
Other languages
English (en)
Other versions
JP2015022436A (ja
Inventor
原 昌宏
昌宏 原
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.)
Denso Wave Inc
Original Assignee
Denso Wave 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 Denso Wave Inc filed Critical Denso Wave Inc
Priority to JP2013148826A priority Critical patent/JP6136688B2/ja
Priority to FR1456808A priority patent/FR3008812B1/fr
Priority to KR1020140090119A priority patent/KR101570704B1/ko
Publication of JP2015022436A publication Critical patent/JP2015022436A/ja
Application granted granted Critical
Publication of JP6136688B2 publication Critical patent/JP6136688B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C5/00Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/1434Barcodes with supplemental or add-on codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報コード利用システム、及び情報コード読取装置に関するものである。
秘匿データを含んだ二次元コードを生成したり読み取る技術として、例えば、下記特許文献1に開示される「情報送信方法及び携帯端末」がある。この従来技術では、送信側の携帯端末は、キー入力装置から入力された暗号キーにより送信データを暗号化しそれをQRコード(登録商標)に変換してQRコードを生成しそれを表示装置の画面に表示する(特許文献1;段落0020,0021、図4)。
これに対し、受信側の携帯端末では、送信側の携帯端末の画面に表示されたQRコードの画像をカメラ等により読み込んでQRコードが暗号化されているか否かを判断した後、暗号化されている場合には暗号キーを要求する。そして、QRコードを逆変換するとともに入力された暗号キーにより送信データを復号して復元データを画面表示する(特許文献1;段落0022、図5)。
特開2004−147006号公報
しかしながら、上記特許文献1に開示される「情報送信方法及び携帯端末」によると、暗号化されているものをQRコードに逆変換した場合には、通常、暗号化されたデータそのものは文字情報として意味をなさないものであるため、携帯端末等の画面に表示される情報は意味不明なものであったり、画面表示の制御等に影響を与え得る制御コードに相当する情報であったりする。
このため、意味不明な情報である場合には、当該携帯端末等の使用者に不信感を与え得るという問題や、それが暗号化された情報であることを認識し得る使用者に対しては、解読を試みようとする不用意な動機を与える可能性があることから、セキュリティ上の問題を生じ得る。
このような問題を解消するべく、本願発明者は、「開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、そのコード領域に配置された開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は終端識別情報により特定される前記終端位置の後、に配置する構成の情報コード」を着想するに至った。
このように情報コードを構成すれば、一般仕様の読取装置で読み取る場合には、秘匿データコードの解読結果が得られずに、開示データコードの解読結果が得られるため、このような読取装置のみを扱う利用者は、秘匿データコードが記録されていること自体を認識しにくくなる。一方、特別な読取装置で読み取る場合には、秘匿データコードの解読結果が得られるため、このような特別な読取装置にのみ秘匿データコードの解読データを扱わせやすくなる。しかしながら、単にこのように構成するだけでは、特別な読取装置で扱われる読み取り後のデータが、元々秘匿化されていたデータであるのか、そうでないのかを区別できないという問題がある。
本発明は、上述した課題を解決するためになされたもので、一般仕様の読取装置で読み取る場合に秘匿データの存在が認識困難となるように構成された情報コードを読み取ることが可能な読取装置、及びこのような読取装置を有するシステムを提供することを目的とする。更には、その読取装置で扱われる読み取り後のデータが、元々秘匿化されていたデータであるのか、そうでないのかをより正確に区別し得る構成を提供することを目的とする。
第1の発明は、
情報コードを生成する情報コード生成装置と、前記情報コード生成装置によって生成された前記情報コードを読取可能な情報コード読取装置と、を備えた情報コード利用システムであって、
前記情報コード生成装置は、
開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、
秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置する構成で前記情報コードを生成し、
前記情報コード読取装置は、
前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第1デコード部と、
前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第2デコード部と、
前記第2デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
を有し、
前記対応処理部は、
前記第2デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、
前記第2デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶し、
前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶することを特徴とする。
第2の発明は、
開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置してなる情報コードを読み取り可能な情報コード読取装置であって、
前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第1デコード部と、
前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第2デコード部と、
前記第2デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
を有し、
前記対応処理部は、
前記第2デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、
前記第2デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶し、
前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶することを特徴とする。
請求項1の発明で扱われる情報コードは、秘匿するデータを表すコード語としてコード化された秘匿データコードが、終端識別コードの後、又は終端識別情報により特定される終端位置の後、に配置される。従って、このような終端識別コード又は終端位置の前までのデータを解読すべきデータとして扱うような一般仕様の読取装置では、秘匿データコードの解読が試みられないため、このような読取装置では、秘匿データコードの存在自体が認識困難となる。一方、本発明の要部をなす情報コード読取装置では、判断部により秘匿データコードが配置されていると判断された場合に、第2デコード部によって秘匿データコードのデコードが行われるため、秘匿データコードとして記録された秘匿データの解読が可能となる。
更に、情報コード読取装置では、第2デコード部によって秘匿データコードが解読された場合、対応処理部により、当該秘匿データコードの解読結果の出力、又は解読結果の記憶、若しくは解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行うようになっている。このように、対応処理に加え、所定の識別情報の出力又は記憶が行われるため、この情報コード読取装置又は外部装置では、識別情報の出力又は記憶の有無に基づいて、上記対応処理で扱われるデータが正規の秘匿データであるか否かをより正確に判別しやすくなる。
特に、前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、前記第2デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶している。
この構成では、第2デコード部によって秘匿データコードが解読された場合、秘匿データコードの解読データに対して識別情報が対応付けられて出力又は記憶されるため、出力データ又は記憶データが正規の秘匿データであるか否かを迅速且つ確実に判別しやすくなる。
さらに、前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶している。
この構成によれば、出力又は記憶されるデータが正規の秘匿データであるか否かをより正確に判別可能としつつ、出力又は記憶されるデータの中で、データ配列のどの範囲に
正規の秘匿データが存在するのかをより詳細に特定しやすくなる。
請求項の発明では、所定のネットワーク内の各サイトに接続する接続部を備え、前記情報コード生成装置は、前記ネットワーク内でのアドレスを特定するアドレス情報を含む構成で前記秘匿データコードを生成し、前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、少なくとも前記アドレス情報と前記識別情報とを対応付けて出力又は記憶し、前記接続部は、前記アドレス情報と前記識別情報とが対応付けて出力又は記憶されることを条件として、前記アドレス情報によって特定されるサイトに接続する構成となっている。
この構成では、対応処理部によって出力又は記憶されるデータにおいてアドレス情報と識別情報とが対応付けられている場合に限り、接続部は、そのアドレス情報で特定されるサイトへアクセスする。逆に、出力又は記憶されるデータが正規の秘匿データでない場合には、このような不正データで特定されるサイトへのアクセスを制限することができる。
このような技術を用いれば、例えば秘匿データが記録された情報コードの上に、別のサイトのアドレスが記録された他の二次元コードが貼り付けられ、別のサイトへ誘導するような不正が行われたとしても、識別情報が対応付けられていない限り接続部による別のサイトへのアクセスが行われなくなる。従って、このような不正誘導によるアクセスをより効果的に防ぐことができる。
請求項の発明では、前記情報コード生成装置は、秘匿するデータを所定の暗号化キーに基づいて暗号化し且つコード化することで前記秘匿データコードを生成し、前記情報コード読取装置は、復号化キーを記憶する復号化キー記憶部を備え、前記第2デコード部は、前記判断部により前記秘匿データコードが配置されていると判断された場合、前記復号化キー記憶部に記憶された前記復号化キーを用いて前記秘匿データコードの暗号解読を試み、前記復号化キーを用いた暗号解読が成功した場合には前記対応処理を行い且つ前記識別情報の出力又は記憶を行い、前記復号化キーを用いた暗号解読が失敗した場合には所定の報知処理を行う構成となっている。
この構成では、例えば読取装置に記憶された復号化キーが正規のキーでない場合など、暗号解読が失敗する場合に所定の報知処理が行われるため、利用者はこの報知により、対応処理が正常に行われないこと、及びその原因を把握しやすくなる。
請求項の発明によれば、請求項1の発明と同様の効果を奏する情報コード読取装置を実現できる。
請求項の発明によれば、請求項2の発明と同様の効果を奏する情報コード読取装置を実現できる。
請求項の発明によれば、請求項3の発明と同様の効果を奏する情報コード読取装置を実現できる
図1は、第1実施形態に係る情報コード利用システムを概念的に説明する説明図である。 図2は、図1の情報コード利用システムの適用例を概念的に説明する説明図である。 図3(A)は、図1の情報コード利用システムで用いられる情報コード生成装置の構成例を概念的に説明する説明図であり、図3(B)は、図3(A)の情報コード生成装置で用いられる印刷装置のハードウェア構成例を示すブロック図である。 図4は、図3の情報コード生成装置で行われる情報コードの生成処理の流れを例示するフローチャートである。 図5は、図4に示すコード生成処理により情報処理されるデータやコードのフォーマット例を示す説明図で、図5(A) は印刷データのデータレコードの例、図5(B) はステップS115により並び替えた後の例、図5(C) はステップS121〜S137により各コードを付加した後の例、図5(D) は図5(C) に示す秘匿コードの構成例1、図5(E) は図5(C) に示す秘匿コードの構成例2、図5(F) は図5(C) に示す秘匿コードの構成例3、をそれぞれ示すものである。 図6は、1型のQRコードの構成例を示す説明図である。 図7は、図1の情報コード利用システムで用いられる情報コード読取装置のハードウェア構成例を示すブロック図である。 図8は、図7の情報コード読取装置によって行われるデコード処理の流れを例示するフローチャートである。 図9は、図8のデコード処理で行われる復号化処理の流れを例示するフローチャートである。 図10は、図8のデコード処理で行われるデータ転送処理の流れを例示するフローチャートである。 図11は、図1の情報端末で行われる接続処理の流れを例示するフローチャートである。 図12は、図3等に示す情報コード生成装置で生成された情報コードSQの具体例を示す説明図である。 図13は、一般的なQRコードのフォーマット例を示す説明図である。 図14は、モード識別子とモードとの対応関係の例を説明する説明図である。
[第1実施形態]
以下、本発明を具現化した第1実施形態について、図面を参照して説明する。
図1に示す情報コード利用システム100(以下、単にシステム100ともいう)は、情報コードを生成する情報コード生成装置1(以下、単に生成装置1ともいう)と、情報コード生成装置1によって生成された情報コードSQを読取可能な情報コード読取装置20(以下、単に読取装置20ともいう)とを備えており、情報コード生成装置1で生成された情報コードSQを、情報コード読取装置20で利用し得るシステムとして構成されている。また、システム100は、読取装置20と無線又は有線通信可能な情報処理装置として構成される情報端末60や、インターネットに接続され、サイト情報などが登録された管理装置80なども備えている。
なお、以下の説明では、情報コード利用システム100で扱われる情報コードSQの例として、QRコード(登録商標)を挙げるが、情報コードはこれに限られることはなく、例えば、データマトリクス、マキシコード、CPコード、PDF417やRSSコンポジット等であってもQRコードと同様に本発明を適用することができる。いずれの場合も、情報コードSQは、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、コード領域に配置された開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する構成となっている。そして、情報コードSQは、秘匿するデータを表すコード語としてコード化された秘匿データコードを、終端識別コードの後、又は終端識別情報により特定される終端位置の後、に配置する構成となっている。
図1に示すシステム100は、例えば、図2のように応用できる。なお、以下では、システム100を図2のように応用した例を代表例として説明するが、システム100の適用例はこの例に限られるものではない。
図2の例では、生成装置1によって生成された情報コードSQにおいて所定サイトのアドレス情報が暗号化されて記録されており、このような情報コードSQの暗号を読取装置20が解読することで、読取装置20が所定サイトのアドレス情報を入手できるようになっている。なお、情報コードSQのデータ構成は例えば図12のようになっており、この点については、後に詳述する。一方、読取装置20は、一般的なQRコードとして構成される二次元コードQRも解読できるようになっており、二次元コードQRにサイトのアドレス情報が記録されていれば、このアドレス情報を取得し得るようになっている。なお、二次元コードQRのデータ構成は、例えば図13のようになっている。
そして、読取装置20は、情報コードSQや二次元コードQRから取得したアドレス情報を情報端末60に送信可能とされており、情報端末60は、読取装置20から取得したアドレス情報で特定されるアドレスのサイトへの接続を試みるようになっている。但し、情報端末60は、送信データに付加された識別情報(図2の例では、秘匿データを識別する記号)に基づいて、取得したデータが情報コードSQを解読して得られたものであるか、二次元コードQRを解読して得られたものであるかを判別しており、情報コードSQを解読して得られたアドレスのサイトには接続するが、二次元コードQRを解読して得られたアドレスのサイトには接続しないようになっている。以下では、このようなシステムを代表例として説明することとする。
まず、情報コード生成装置1について、図3等を参照して説明する。なお、図3(A) には、印刷装置10とそれに接続されるパーソナルコンピュータ(以下「パソコン」という)1とを示す説明図が図示されており、また図1(B) には、印刷装置10のハードウェア構成例を示すブロック図が図示されている。
図1、図3(A) に示すように、情報コード生成装置1は、主として、情報処理装置2と、印刷装置10とによって構成されており、情報処理装置2と印刷装置10とがケーブル5を介して接続されている。そして、印刷装置10は、情報処理装置2から出力されて当該印刷装置10に入力される英数字、漢字や記号等の文字データ(以下これらを「印刷データ」と総称する)に基づいてQRコードを生成してラベルP等に印刷する機能を有している。なお、ここでいう「QRコード」とは、日本工業規格(JIS)の二次元コードシンボル−QRコード−基本仕様(JIS X 0510:2004)に従うものである。
情報処理装置2は、例えば公知のパーソナルコンピュータとして構成されており、パソコン本体4およびディスプレイ3を備えている。パソコン本体4は、図略の、MPU、メインメモリ(主記憶装置)、ハードディスク(補助記憶装置)、入出力インタフェース、通信インタフェース、キーボード、ポインティングデバイス等からなる装置である。ディスプレイ3は、パソコン本体4に接続されることによりパソコン本体4から出力される情報を画面表示可能な装置である。
なお、このパソコン本体4には、印刷装置10のデバイスドライバがインストールされて(組み込まれて)おり、情報処理装置2の利用者が、QRコードとしてラベルPに印刷したい文字等を含んだ印刷データを、パソコン本体4から印刷装置10に対して任意に出力可能にしている。
印刷装置10は、図3(B) に示すように、主に、MPU11、メモリ12、インタフェース13、ローラ制御部14、ヘッド制御部15、ローラ17、ヘッド18等から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
MPU11は、印刷装置10全体を制御可能なマイクロコンピュータ(以下「マイコン」という)で、メモリバスを介して接続されるメモリ12とともに情報処理装置を構成し得るもので情報処理機能を有する。このMPU11には、メモリ12のほかに、インタフェース13、ローラ制御部14やヘッド制御部15も接続されている。
メモリ12は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ12のうちのRAMには、前述した情報処理装置2から送られてくる文字データを蓄積するバッファ領域のほか、MPU11が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述のコード生成処理等を実行可能な所定プログラムやその他、ローラ制御部14やヘッド制御部15等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
インタフェース13は、前述した情報処理装置2のパソコン本体4から送られてくる印刷データ等を受信可能にする入力インタフェースで、シリアルバス等を介してMPU11に接続されている。このインタフェース13を介してMPU11に入力された印刷データは、コード生成処理によって後述するように情報処理されてコード化される。
ローラ制御部14は、ローラ17の駆動機構(図略)を制御し得る制御装置で、シリアルバス等を介してMPU11に接続されている。これにより、MPU11から受けた制御信号に従ってローラ17の回転の開始や停止あるいは回転方向等を制御している。
ヘッド制御部15は、例えば、感熱用紙からなるラベルに対して任意のパターンを印刷し得るサーマルヘッドで、シリアルバス等を介してMPU11に接続されている。本実施形態では、後述のコード生成処理によって生成されたQRコードを感熱ラベルに印刷可能にするもので、前述したローラ制御部14による感熱ラベルの紙送りタイミングに同期して、QRコードを構成する位置検出パターン、タイミングパターンやデータコード等を当該ラベルに印刷する。
なお、以下、ヘッド制御部15として、サーマルヘッドの場合を例示して説明するが、QRコードを印刷できるものであれば、例えば、インクジェット用やドットインパクト用のヘッドでも良いし、また印刷機構として、レーザプリンタやLEDプリンタ等であっても良い。
このように印刷装置10を構成することによって、情報処理装置2から出力されて当該印刷装置10に入力された印刷データは、インタフェース13を介してメモリ12のバッファ領域に一旦蓄えられた後、次に説明するコード生成処理に渡される。
ここで、コード生成処理を図4〜図6を参照して説明する。なお、図4には、コード生成処理の流れを示すフローチャートが図示されている。また図5には、図4に示すコード生成処理により情報処理されるデータやコードのフォーマット例が図示されている。さらに図6には、1型のQRコードの構成例が図示されている。
図4に示すように、コード生成処理は、印刷装置10の電源投入により起動するMPU11およびメモリ12によって開始され、まずステップS101により初期設定処理が行われる。この処理では、メモリ12の作業領域や印刷データを蓄えるバッファ領域をクリアしたり、所定のフラグやカウンタ等をクリアする。
ステップS103では、印刷データを受信したか否かを判断する処理で、印刷データを受信するまで、このステップを繰り返す(S103;No)。そして、印刷データを受信したと判断すると(S103;Yes)、続くステップS105によりタイマーのカウント値をクリアする処理を行う。このステップS105でカウンタ値がクリアされるタイマーは、次のステップS107により所定時間の経過を計時するものである。
ステップS107では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、情報処理装置2から送られてくる印刷データに、暗号化等に関するデータが含まれているか否かを次のステップS111により判断する必要上、例えば、所定時間として1秒間が経過したか否かを判断し、この時間が経過するまでに、情報処理装置2から暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップS109に処理を移行する(S107;Yes)。
これに対し、所定時間が経過していない場合には(S107;No)、次のステップS111により暗号化等に関するデータとして、秘匿する必要のあるデータ(以下「秘匿データ」という)のデータレコード中の位置関係を示す秘匿データ位置情報と暗号するために用いる暗号キー(暗号鍵)とを受信したか否かを判断する処理が行われる。そして、これらを受信していると判断した場合には(S111;Yes)、続くステップS113に処理を移行し、これらを受信していると判断できない場合には(S111;No)、前述したステップS107に処理を戻して、再度、時間の経過を判断する。
そして、所定時間が経過したとステップS107により判断した場合には(S107;Yes)、ステップS109により所定のフラグに「0」をセットする。このフラグは、印刷データに秘匿データが含まれているか否かを示すもので、「0」がセットされている場合には、秘匿データが含まれていないことを示し、「1」がセットされている場合には、秘匿データが含まれていることを示す。このため、ステップS111により暗号化等に関するデータを受信していると判断した場合には(S111;Yes)、続くステップS113によりこのフラグに「1」をセットする処理が行われる。
ステップS113により所定のフラグに「1」をセットすると、続くステップ115により、開示データおよび秘匿データを並び替える処理が行われる。即ち、印刷データに、第三者に開示するデータ(開示データ)と、第三者には秘密にして隠しておきたいデータ(秘匿データ)と、が含まれており、これらがデータレコード中で混在している場合に、ステップS111により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行う。
例えば、図5(A) に示すように、例えば、情報処理装置2から送られてくる印刷データのレコードに、開示データA、秘匿データα、開示データB、秘匿データβの順に並ぶデータが含まれていたとすると、ステップS115により、これらのデータの順番を入れ替えて図5(B) に示すように、開示データA、開示データB、秘匿データα、秘匿データβの順に並び替える処理を行う。これにより、開示データと秘匿データとがそれぞれまとめられるので、後のステップ121による終端識別コードの付加処理や、ステップS125による秘匿識別コードの付加処理等が容易になる。
次のステップS117では、開示データや秘匿データ等の各データをJISの基本仕様(JIS X 0510:2004)に従って符号化する処理が行われる。これにより、開示するデータを表すコード語としてコード化された開示データコードが生成され、また秘匿するデータを表すコード語としてコード化された秘匿データコードが生成される。
そして、続くステップS121により、開示データコードの後に終端識別コードを付加する処理が行われる。終端識別コードは、例えば、4ビットパターンで「0000」であり、図5(C) に示すように、開示データコードAの後に続く開示データコードBの直後に位置する。なお、図5(C) では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。
次のステップS123では、前述した所定のフラグが「1」にセットされているか否か、即ち秘匿データが含まれているか否かを判断する処理が行われる。そして、秘匿データが含まれている場合には(フラグが「1」にセットされている場合:S123;Yes)、ステップS125に処理を移行し、また秘匿データが含まれていない場合には(フラグが「0」にセットされている場合:S123;No)、一連の秘匿処理(S125〜S133)を飛ばしてステップS135に処理を移行する。
ステップS125〜S133は、印刷データに秘匿データが含まれている場合に行われる一連の秘匿処理である。まず、ステップS125により、秘匿識別コードを終端識別コードの直後に付加する処理が行われる。
このステップS125による処理は、秘匿識別コードを終端識別コードの直後に配置することで、この終端識別コードの後に配置されているデータコードが「秘匿するデータを表すコード語としてコード化されたものであること」を明示的に表す。これにより、本コード生成処理によって生成されたQRコード(情報コードSQ)を、QRコードリーダ等(例えば、情報コード読取装置20等)がデコードする際に、当該情報コードSQに秘匿データコード(終端識別コードの後に配置されるデータコード)が含まれていることを認識可能にするので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。
次のステップS127では、秘匿データコードのデータ長を計算して求め、このデータ長をコード化したものを秘匿識別コードの直後に付加する処理が行われる。これにより、秘匿データコードが配置される領域や範囲がわかるので、本コード生成処理によって生成された情報コードSQを、QRコードリーダ等(例えば、情報コード読取装置20等)がデコードする際に、どこまでが秘匿データコードであるか、または暗号データコードであるかを認識可能にする。
例えば、図5(C) に示す例では、秘匿データコードαのデータ長と秘匿データコードβのデータ長との和が当該データ長として計算されて秘匿識別コードの直後に付加される。なお、図5(C) では、便宜上、秘匿データコードを「秘匿コード」、秘匿識別コードを「秘匿識別子」、とそれぞれ表現している。
続くステップS129では、暗号キー(暗号化キー)があるか否かを判断することによって、秘匿データコードを暗号化する必要があるか否かを判断する。即ち、ステップS111によって暗号キーを情報処理装置2から受信している場合には、暗号キー(暗号化キー)があるので(S129;Yes)、ステップS131に移行して暗号化処理を行う。これに対して、ステップS111によって暗号キーを情報処理装置2から受信していない場合には、暗号キーがないので(S129;No)、ステップS131による暗号化処理を飛ばしてステップS133に移行する。
なお、ステップS111により暗号キーを受信していない場合であっても、情報処理装置2が予め暗号キーをメモリ12やハードディスク等の情報記憶媒体に保持しているときには暗号キーがあるので(S129;Yes)、ステップS131で暗号化処理を行う。
ステップS131では、秘匿データコードを暗号化する処理が行われる。この処理は、例えば、公知の視覚復号型暗号技術(視覚復号型秘密分散法)を用いて秘匿データコードを暗号化する。これにより、このような暗号化されていない平文データが付加されている場合に比べてセキュリティの強度を高めることができる。
例えば、図5(D) に示す例では、秘匿データコードαを構成する「暗号化データ」の部分が暗号化され、「開始桁」、「文字数」および「復号キー検査データ」も併せて生成される。最初に位置する「開始桁」は、当該暗号化された秘匿データの位置情報として、印刷データの先頭をゼロ番地とした場合に表現可能なアドレス値がこれに相当する。また次の「文字数」は、暗号化されている秘匿データの文字数である。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成された情報コードSQを、QRコードリーダ等がデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。
最後に付加されている「復号キー検査データ」は、当該暗号を解読するのに用いる復号キーを特定可能な鍵特定情報で、暗号方式が暗号キーと復号キーとが同じ共通鍵暗号方式(「秘密鍵暗号方式」ともいう)の場合には、当該復号キー検査データは暗号キーも特定できる。これにより、本コード生成処理によって生成された情報コードSQを、QRコードリーダ等がデコードする際に、秘匿データコードの復号キー(復号できる鍵)を容易に特定することができたり、復号キーであるか否かを判断することができる。
なお、秘匿データコードβについても秘匿データコードαと同様に構成され、「復号キー検査データ」として、秘匿データコードαを復号する復号キーと同じ情報を付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、他の復号キーを特定する「復号キー検査データ」を付加しても良い。これにより、本コード生成処理によって生成された情報コードSQを、QRコードリーダ等がデコードする際に、各秘匿データコードごとに復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。
ステップS133では、データ長の直後に秘匿データコードを付加する処理が行われる。図5(D) に示す例では、秘匿データコードαおよび秘匿データコードβをデータ長の後に付加する。これにより、一般仕様の二次元コードの読取装置では、二次元コードのデコード処理において、終端識別コードの後に配置される埋め草コード等は読み取りの対象にしないため、このように終端識別コードの後に配置された秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードの存在はわからないので、当該読取装置の利用者には秘匿データの存在を認識させないようにすることが可能となる。
続くステップS135では、例えば、JISの基本仕様(JIS X 0510:2004)に記載されている処理アルゴリズムに準拠して、秘匿データコードの後に埋め草コード(パッドデータ)を付加する処理が行われる。さらにステップS137では、誤り訂正コードを付加する処理が行われる。なお、ステップS137で付加される誤り訂正コードは、解読対象となるデータ(開示データコードや秘匿データコードなど)を公知の方法(例えばJISの基本仕様(JIS X 0510:2004)に記載されている誤り訂正コードの生成アルゴリズム)を用いて誤り訂正符号を生成しそれをコード化して誤り訂正コードを生成したものである。以上のような処理により図5(C) に示すフォーマットのデータコードが生成される。
そして、ステップS139では、ステップS137により生成されたデータコードに基づいて、各セルを生成し、図6に示すデータブロックに配置する処理が行われる。即ち、図6に示す1型のQRコードでは、1辺が21セル(モジュール)の正方形状に構成されているため、三隅に設けられている位置検出パターンや形式情報(図6に示す斜線部分)、さらにはタイミングパターンを除いたコード領域に、8個のセルを4行2列に配置して構成されるデータブロックを26ブロック(A0〜A25)配置する。
例えば、図5(C) に示す例では、開示データコードAをA0〜A2、開示データコードBをA3〜A6に配置し、終端識別コードをA7に配置する。そして、この終端識別コードの後方で、通常は埋め草コードが配置される位置に相当するA8〜A17に、秘匿識別コード、データ長、秘匿識別コード等を配置する。
即ち、A8に秘匿識別コードを配置し、その後のA9にデータ長を配置して、さらにこの後のA10〜A13に秘匿データコードα、A14〜A17に秘匿データコードβをそれぞれ配置する。そして、通常のQRコードと同様に、誤り訂正コードを最後のA20〜A25に配置して、この間の空いている部分であるA18〜A19に埋め草コードを配置する。なお、A15およびA18は、タイミングパターンを挟んで位置していることから、A15はA15とA15’とに、またA18はA18とA18’とに分割されている。
なお、ステップS131において、図5(E) に示すように、「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。これにより、本コード生成処理によって生成された情報コードSQを、QRコードリーダ等がデコードする際に、例えば、当該QRコードリーダ等が秘匿データコードαの復号キーを持っていなくても、秘匿識別コードの存在を認識したときに当該秘匿識別コードの後ろのデータコードの解読を試みる構成となっていれば、秘匿データコードαを復号して元の平文に戻すことができる。
また、秘匿データコードβについても、同様に「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。付加する復号キーは、秘匿データコードαを復号する復号キーと同じものを付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、この他の暗号キーに対応する他の復号キーを付加しても良い。これにより、本コード生成処理によって生成された情報コードSQを、QRコードリーダ等がデコードする際に、当該QRコードリーダ等が、各秘匿データコードごとに対応するそれぞれの復号キーを持っていなくても、秘匿識別コードの存在を認識したときに当該秘匿識別コードの後ろのデータコードの解読を試みる構成となっていれば、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
また、ステップS123により、秘匿データが含まれていないと判断した場合であっても(フラグが「0」にセットされている場合:S123;No)、図5(F) に示すように、暗号化していない平文データの前に、ステップS131で付加した「開始桁」や「文字数」を付加する処理ステップを、ステップS123とステップS135との間に設けても良い。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成された情報コードSQを、QRコードリーダ等がデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。
以上説明したように、上述の情報コード生成装置1によれば、MPU11により実行されるコード生成処理によって生成される情報コードSQでは、ステップS133により秘匿データコードが、埋め草コードの一部または全部に代えて、終端識別コードの後に配置されている。これにより、終端識別コードの後に配置された秘匿データコードは、一般仕様の読取装置では読み取りの対象にならないので、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからない。したがって、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。
よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。
なお、上述した例では、印刷装置10により、ラベルPに情報コードSQを印刷する例を挙げて説明したが、これに限られることはなく、情報コードSQを視覚的に表現可能なものであればよく、例えば、図4に示すコード生成処理をパソコン本体4により実行してディスプレイ3に情報コードSQを表示するように構成しても良い。この場合、図4のコード生成処理は、コンピュータプログラムとして概念できる。これにより、この二次元コードの生成プログラムにより二次元コードの生成装置として機能するコンピュータは、上述した印刷装置10のMPU11等と同様の作用および効果を奏する。
また、上述した例では、印刷装置10に情報処理装置2を接続して当該情報処理装置2から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、印刷装置10に接続する構成を採っても上述した作用および効果を得ることができる。
次に、情報コード読取装置20の構成を説明する。
情報コード読取装置20は、上述した情報コード生成装置1で生成され、媒体に表示される情報コードSQ(例えば印刷装置10により印刷された情報コードSQ)をデコード可能な装置である。なお、情報コード読取装置20によりデコード可能な情報コードSQの構成は、図5および図6を参照して既に説明しているので、ここでは説明を割愛する。また、この情報コード読取装置20は、一般的な二次元コードQR(終端識別コードの後に秘匿データが存在しない一般的なQRコード等)も読取可能とされている。以下、これら情報コードSQ及び一般的な二次元コードQRを含めて、情報コード読取装置20による読み取り対象を情報コードCと称する。
図7に示すように、情報コード読取装置20は、主に、照明光源21、受光センサ23、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示器46等のマイコン系と、電源スイッチ41、バッテリ49等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されており、ハードウェア的には一般仕様のQRコードリーダ(読取装置)と同様に構成されている。
光学系は、照明光源21、受光センサ23、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本構成では、受光センサ23を挟んだ両側に照明光源21が設けられており、図略のケースの読取口を介してラベルPに向けて照明光Lfを照射可能に構成されている。このラベルPには、上述した情報コードCが印刷されている。
受光センサ23は、ラベルPや情報コードCに照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。受光センサ23は、結像レンズ27を介して入射する入射光をこの受光面23aで受光可能に図略のプリント配線板に実装されている。
結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等から構成されている。このマイコン系は、その名の通り、マイコンとして機能し得る制御回路40およびメモリ35と中心に構成される。
光学系の受光センサ23から出力される画像信号は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述するデコード処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
制御回路40は、情報コード読取装置20全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなり、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置と接続可能に構成されており、本第2実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等が接続されている。
これにより、例えば、電源スイッチ41や操作スイッチ42の監視や管理、またインジケータとして機能するLED43の点灯・消灯、ビープ音やアラーム音を発生可能なブザー44の鳴動のオンオフ、さらには読み取った情報コードCによるコード内容を画面表示可能な液晶表示器46の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース48の通信制御等を可能にしている。なお、通信インタフェース48に接続される外部装置には、当該情報コード読取装置20の上位システムに相当するホストコンピュータHST等が含まれる。また、通信インタフェース48は、後述する情報端末60(図1等)と無線LAN通信、赤外線通信などの公知の無線通信方式或いは有線通信方式で通信を行い得るインタフェースとしても機能している。
電源系は、電源スイッチ41、バッテリ49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、バッテリ49から供給される駆動電圧の導通や遮断が制御されている。なお、バッテリ49は、所定の直流電圧を発生可能な二次電池で、例えば、リチウムイオン電池等がこれに相当する。また、バッテリ49によることなく、例えば、通信インタフェース48を介して接続されるホストコンピュータHST(管理装置80)等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該バッテリ49は不要となる。
このように情報コード読取装置20を構成することによって、例えば、電源スイッチ41がオンされて所定の自己診断処理等が正常終了し、情報コードCの読み取りが可能な状態になると、照明光Lfの発光を指示する操作スイッチ42(例えばトリガースイッチ)の入力を受け付ける。これにより、利用者がトリガースイッチを引いてオンにすることで、制御回路40が同期信号を基準に照明光源21に発光信号を出力するので、当該発光信号を受けた照明光源21は、LEDを発光させて照明光Lfを照射する。
すると、情報コードCに照射された照明光Lfが反射し、その反射光Lrが読取口を介して結像レンズ27に入射するため、受光センサ23の受光面23aには、情報コードCの像が結像される。これにより、情報コードCの像が受光センサ23を露光するため、上述したマイコン系によって画像処理された当該情報コードCの画像データが、メモリ35の画像データ蓄積領域を介して、次に説明するデコード処理に渡される。
情報端末60は、例えば据置型又は携帯型のコンピュータとして構成されている。なお、ハードウェア構成としては、デスクトップ型、ノート型、タブレット型などのパーソナルコンピュータとして構成されていてもよく、スマートフォンや携帯電話機などの情報処理端末として構成されていてもよい。なお、読取装置20と通信可能に構成され、且つインターネットにアクセス可能な構成であれば他の種類の情報処理装置であってもよい。この情報端末60は、少なくとも、CPUと、ROM、RAM、不揮発性メモリ、その他の記憶装置などからなる記憶部と、キーボタンやタッチパネルなどの入力デバイスからなる操作部と、液晶表示器などの公知の表示装置からなる表示部と、無線LAN通信、赤外線通信などの公知の無線通信方式或いは公知の有線通信方式で通信を行う通信部とを備えている。
管理装置80(本明細書では、管理装置80を、ホストコンピュータHSTとも称する)は、例えば公知のコンピュータとして構成されている。この管理装置80は、少なくとも、CPUと、ROM、RAM、不揮発性メモリ、その他の記憶装置などからなる記憶部と、キーボタンやタッチパネルなどの入力デバイスからなる操作部と、液晶表示器などの公知の表示装置からなる表示部と、無線LAN通信、赤外線通信などの公知の無線通信方式或いは公知の有線通信方式で通信を行う通信部とを備えている。なお、本構成は、例えば管理装置80(ホストコンピュータHST)から情報コード生成装置1に対して秘匿データの暗号化に用いる暗号化キーを渡し、この暗号化キーと同一の復号キーを管理装置80から読取装置20に渡すような構成であってもよい。
ここで、デコード処理を図8,図9および図10を参照して説明する。なお、図8には、読取装置20で行われるデコード処理の流れを示すフローチャートが図示されている。また図9には、図8のS23に示す復号化処理の流れを示すフローチャートが図示されている。また、図10には、図8のS24に示すデータ転送処理の流れを示すフローチャートが図示されている。
図8に示すように、デコード処理は、例えば情報コード読取装置20の電源投入により起動する制御回路40およびメモリ35によって開始され、まずステップS11により初期設定処理が行われる。この処理は、メモリ35の作業領域や画像データを蓄える画像データ蓄積領域をクリアしたり、所定のフラグやカウンタ等をクリアする。なお、ここで説明する情報コード読取装置20は、ホストコンピュータHST(管理装置80)と接続されており、当該ホストコンピュータHSTから設定データとして復号キーのデータを取得するものとする。
ステップS12では、タイマーのカウント値をクリアする処理が行われる。このステップS12でカウンタ値がクリアされるタイマーは、次のステップS13により所定時間の経過を計時するものである。
ステップS13では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、ホストコンピュータHSTから送られてくる設定データに復号キー(復号化キー)のデータが含まれているか否かを次のステップS14により判断する必要上、例えば、所定時間として5秒間が経過したか否かを判断し、この時間が経過するまでに、ホストコンピュータHSTから暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップS16に処理を移行する(S205;Yes)。
これに対し、所定時間が経過していない場合には(S13;No)、次のステップS14により復号キー(復号鍵)を受信したか否かを判断する処理が行われる。そして、復号キーを受信していると判断した場合には(S14;Yes)、続くステップS15に処理を移行し、受信していると判断できない場合には(S14;No)、前述したステップS13に処理を戻して、再度、時間の経過を判断する。なお、ホストコンピュータHSTから送られてくる復号キー(復号化キー)は、例えばメモリ35に記憶しておくことができる。この場合、メモリ35が復号化キーを記憶する復号化キー記憶部の一例に相当する。
そして、所定時間が経過したとステップS13により判断した場合には(S13;Yes)、ステップS16により所定のフラグ「Key」の値を「0」をセットする。このフラグ「Key」は、情報コードSQの秘匿データコードを復号キーで復号するか否かを示すもので、「0」がセットされている場合(Key=0の場合)には、復号キーで復号しないことを示し、「1」がセットされている場合(Key=1の場合)には、復号キーで復号することを示す。このため、S14により復号キーを受信していると判断した場合には(S14;Yes)、続くステップS15によりこのフラグ「Key」の値を「1」をセットする処理が行われる。
ステップS15により所定のフラグ「Key」の値を「1」をセットした後、又はステップS16でフラグ「Key」の値を「1」にセットした後には、続くステップ17により、画像データを取得する処理が行われる。即ち、メモリ35の画像データ蓄積領域から蓄えられている画像データを読み出す処理を行う。これにより、例えば、図6で概念的に示されるような情報コードCのコード画像が得られる。
続くステップS18では、位置検出パターンを検出する処理が行われる。即ち、情報コードCは、図6に示すように、その三隅に位置検出パターンが設けられているため、これらを検出することによって、次のステップS19により情報コードCのコード外形を検出する。なお、このような三隅の位置検出パターンの検出、及びコード外形の検出はQRコード(登録商標)で行われる周知の方法を用いればよい。
そして、ステップS20により各セルの中心座標を算出する処理を行うことによって次ステップS21により各セルの白黒を判別する。これにより、図6に示す形式情報(図6に示す斜線部分)やデータブロックを認識可能になるので、続くステップS22により、欠損等しているデータブロックがある場合には、そのブロックを誤り訂正可能であるか否かを判断する。
そして、ステップS22により誤り訂正可能であると判断できる場合には(S22;Yes)、誤り訂正をして続くステップS23により復号化処理を行う。これに対し、ステップS22により誤り訂正可能であると判断できない場合には(S22;No)、誤り訂正できないので、ステップS17に処理を移行して再度、画像データを取得してステップS17〜S22の各処理を行う。なお、これらステップS20〜S22の処理も、QRコード(登録商標)で行われる周知の方法を用いればよい。
ステップS23は、その詳細が図9に図示されているので、ここからは図9を参照して復号化処理を説明する。図9に示すように、復号化処理では、まずステップS31により、フラグ「Encryption」「KeyError」の値をそれぞれ0(零)にセットする処理が行われる。そして、ステップS32により、「n」「Len1」「Len2」の値をそれぞれ0(零)にセットする処理が行われる。
そして、ステップS33では、カウンタnが指すn番目のデータコードを取得する処理が行われる。そして、続くステップS34では、ステップS33により取得されたn番目のデータコードが、終端識別コードであるか否かを判断する処理が行われる。これにより、ステップS33で取得した当該データコードが終端識別コードであると判断した場合には(S34;Yes)、終端識別コードよりも前に配置される通常のデータコードはこれ以上、当該情報コードCには含まれていないことになるので、ステップS40に処理を移行する。
これに対し、ステップS33で取得した当該データコードが終端識別コードであると判断できない場合には(S34;No)、終端識別コードよりも前にまだ通常のデータコードが存在することになるので、続くステップS35に処理を移行して次のデータコード、つまり(n+1)番目のデータコードのコード数(文字数)iを取得する。これは、図5(D) を参照して説明したように、データコードの2文字目相当の位置には、文字数が格納されていることに基づくもので、その詳細は、JISの基本仕様(JIS X 0510:2004)の「8.4データの符号化」に記載されている。
ステップS35によりコード数(文字数)iを取得すると、続くステップS36では、この文字数(i)分だけデータ数jを取得する処理が行われ、さらにステップS37により当該データコード、つまり開示データコード(開示するデータを表すコード語としてコード化されたデータコード)を復号(デコード)する処理が行われる。
ステップS37による当該データコードの復号処理が終わると、ステップS38により、カウンタnが次のデータコードを指すように「n+j+1」をカウンタnに設定する処理が行われる。そして、ステップS39により、現在の「Len1」の値に、S35で取得した文字数iの値を加算する。このように、「Len1」は、終端識別コードまでにカウントされる文字数の累計を示すものであり、ステップS34でYesに進む場合には、終端識別コードの直前までの総文字数が得られるようになっている。ステップS39の後には、再びステップS33に処理を戻してn番目のデータコードを取得する処理が行われる。
このように、ステップS33〜S39では、終端識別コードの前方(図5(C)のようなデータ列における終端識別コードよりもデータ先頭側)に配置されて元来デコードされる通常のデータコード(第1のデータコード、開示データコード)を取得してデコードする処理が行われる。これらの各ステップを実行する制御回路40等は、「第1デコード部」の一例に相当し、コード列における終端識別コードよりも前の配置内容を解読するように機能する。
ステップS40は、前述した所定のフラグ「Key」に「1」がセットされているか否か、つまり情報コードCの秘匿データコードを復号キーで復号するか否かを判断する処理が行われる。そして、当該フラグに「1」がセットされていない場合には(S40;No)、復号キーで復号する必要がないため、本復号化処理を終了する。
これに対し、所定のフラグ「Key」に「1」がセットされている場合には(S40;Yes)、復号キーで復号する必要があるため、続くステップS41に処理を移行してカウンタnにn+1を設定し、さらにステップS42によりカウンタnが指すn番目のデータコードを取得する処理が行われる。
そして、続くステップS43では、ステップS42より取得されたn番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このステップS43を実行する制御回路40等は、「判断部」の一例に相当し、終端識別コードの後に秘匿データコードが配置されているか否かを判断するように機能する。つまり、S43にて秘匿識別コードであると判断されれば、終端識別コードの後に秘匿データコードが配置されていることを特定でき、S43にて秘匿識別コードであると判断されなければ、終端識別コードの後に秘匿データコードが配置されていないと特定できるため、S43では、実質的にこのような判断を行っている。
これにより、当該データコードが秘匿識別コードであると判断した場合には(S43;Yes)、秘匿識別コードよりも後には、秘匿データコードが存在することになるので、続くステップS44に処理を移行して次のデータコード、つまり(n+1)番目のデータコードの文字数(暗号数)iを取得する。これも、ステップS35と同様に、データコードの2文字目相当の位置には、文字数が格納されていることに基づくものである。
なお、ステップS43により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータHSTに対して当該情報コードCには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータHSTでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので秘匿データコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータHSTに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。
これに対し、当該データコードが秘匿識別コードであると判断できない場合には(S43;No)、秘匿識別コードよりも後には、これ以上、秘匿データコードが当該情報コードCには含まれていないことになるので、本復号化処理を終了する。
ステップS44により文字数(暗号数(暗号桁数ともいう))iを取得すると、続くステップS45では、空きデータ領域(秘匿識別コードの後のデータ領域)から秘匿データコード等を取得する。そして、その中から、この暗号数(i)分のデータ数jだけ秘匿データを取得する処理が行われる。さらにステップS47では、カウンタnが次のデータ、つまり復号キー検査データを指すように「n+1+j」をカウンタnに設定する処理が行われた後、このn番目の復号キー検査データ(鍵特定情報)を取得する処理が行われる。
そして、このステップS47により取得した復号キー検査データに基づいて、先のステップS14によりホストコンピュータHSTから受信した復号キーがこのn番目の秘匿データコードの暗号化データを解読する鍵として適合しているか否か(即ち、n番目の秘匿データコードを暗号化したときに用いた暗号キーが用意された復号キーに適合しているか否か)の判断をステップS48により行う。ステップS48において、当該復号キーが適合していると判断した場合には(S48;Yes)、続くステップS49により暗号化データ(秘匿データ)を解読する。
なお、ここでの暗号化は、上述したように公知の視覚復号型暗号技術(視覚復号型秘密分散法)を用いたもので、これにより、秘匿データコードの暗号化データがこのような視覚復号型暗号技術により暗号化されている場合でも、復号して元の平文に戻すことができる。
これに対して、ステップS48において、復号キーが適合していると判断できない場合には(S48;No)、ステップS52において、「KeyError」の値を「1」にセットする。このように、「KeyError」の値は、読取装置20に記憶された復号化キー(復号キー)が、秘匿データコードの暗号に用いた暗号化キー(暗号キー)に適合しているか否かを示す情報となっており、「KeyError」=1のときには、読取装置20に記憶された復号化キー(復号キー)が、秘匿データコードの暗号に用いた暗号化キー(暗号キー)に適合していなことを示している。
ステップS50では、秘匿データコードを復号する処理が行われる。即ちその前のステップS49により暗号化データ(秘匿データ)を解読することができているので、このステップS49により解読した暗号化データに基づいて秘匿データコードを復号(デコード)する。このとき、復号された文字数kも取得する。
ステップS50による復号処理が終わると、ステップS51において、「Encryption」の値を1にセットする。このように、「Encryption」の値は、秘匿データコードが解読されたか否かを特定する情報となっており、1の場合は、秘匿データコードが解読されたことを示し、0の場合は、秘匿データコードが解読されていないことを示す。更に、S512では、「Len2」の値として、「Len1+k」の値をセットする。
このように、図9のS34、40以降の処理では、終端識別コードの後方に配置されて、本来はデコードされないデータコード(秘匿データコード)を取得してデコードする処理が行われる。これらの各ステップを実行する制御回路40等は、「第2デコード部」の一例に相当し、判断部により秘匿データコードが配置されていると判断された場合に、秘匿データコードをデコードするように機能する。
なお、図9の処理では、図12のように、秘匿識別コード(秘匿識別子)の後に、1種類の秘匿データ(暗号化データ)が配置され、その秘匿データの前側に暗号桁数(文字数)が配置され、後側に復号キー検査データが配置された構成(即ち、図5(C)のようなデータ構成において、1種類の秘匿コードαが記録される構成)の情報コードSQを解読し得る流れを例示したが、図5(C)のように複数種類の秘匿コードが記録された情報コードSQを読み取ることを想定する場合、S42〜S50の処理を複数の秘匿コードに対して行い、各秘匿コードを解読するようにすればよい。
以上説明したように、本構成に係る情報コード読取装置20によると、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、秘匿データコード(第2のデータコード)が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、上述した情報コード生成装置1によって生成された情報コードSQを、情報コード読取装置20によりデコードすることができる。
なお、上述したデコード処理では、復号キー検査データを取得するように構成したが、例えば、図5(E) を参照して説明したように復号キーそのものが秘匿データコードに付加されている場合には、S47の処理に代えて復号キーを取得するように構成しても良い。
また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップS47に代えて、各復号キーを取得するように構成することで、秘匿データコードの復号キーを当該情報コード読取装置20が持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
次に、図8のS24で行われるデータ転送処理について説明する。このデータ転送処理は、例えば図10のような流れで行われるものであり、読取装置20から、例えば他の情報端末60へデータを転送する処理となっている。なお、転送相手となる情報端末60は、読取装置20において予め決められている特定装置であってもよく、図10の処理時に読取装置20と通信が確立している装置を対象としてもよい。
この処理では、まず、「KeyError」の値が1であるか否かを判断する。「KeyError」が1の場合には、読取装置20に記憶された復号化キー(復号キー)が、秘匿データコードの暗号に用いた暗号化キーに適合していなかったことを示しており、この場合、秘匿データコードが解読されていないことになる。このような場合、S61にてYesに進み、S72にてエラー処理を行う。ここでのエラー処理は、例えばブザー44による発音などであってもよく、液晶表示器46等の表示部によるエラーメッセージの表示などであってもよい。或いは、LED43の所定表示(例えば点滅等)であってもよい。
一方、「KeyError」の値が0の場合には、S61においてNoに進み、nの値を0に初期化する。そして、「cp」の値を、図9の復号化処理で得られた解読データ(読取結果)の先頭アドレスに設定する。
そして、S63では、「Encryption」の値が0であるか否かを判断する。「Encryption」の値が1の場合には、S63でNoに進み、コードマークとしての「SQ」の文字を転送する。つまり、図8で読み取ろうとする情報コードCが、上述した生成装置1で生成された情報コードSQであり、図9の復号化処理で秘匿データコードが解読されている場合には、図9のS51にて「Encryption」の値が1となっているため、S64において、識別情報としての「SQ」の文字を転送することになる。
なお、本構成では、S63、S64等の処理を行う制御回路40が「対応処理部」の一例に相当し、この例では、上述の「第2デコード部」によって秘匿データコードが解読された場合に、対応処理として、当該秘匿データコードの解読結果の出力を行い、且つこのような秘匿データコードの解読結果の出力と対応付けて所定の識別情報(「SQ」のマーク)の出力を行うように機能している。
一方、「Encryption」の値が0の場合には、S63でYesに進み、コードマークとしての「QR」の文字を情報端末60に転送する。つまり、図8で読み取ろうとする情報コードCが、上述した秘匿データコードを含まない一般的なQRコード等の場合には、図9の処理のS40でNo又はS43でNoと判定され、S51の処理が実行されないため、この場合には、「Encryption」の値が初期値の0のままであるため、S65において、「QR」の文字を情報端末60に転送することになる。つまり、本構成では、図9の復号化処理において秘匿データコードが解読されている場合には第1識別情報として「SQ」の文字が転送され、図9の復号化処理において秘匿データコードが解読されていない場合には第1識別情報と区別する第2識別情報して「QR」の文字が転送されるようになっている。
S64又はS65の後には、S66の処理を行い、nが「Len1」の値であるか否かを判断する。S66でNoの場合には、S67の処理を行い、nが「Len2」の値であるか否かを判断する。そして、S67でNoの場合には、S70において、アドレスcpのデータを情報端末60に転送し、その後、nの値、及びcpの値をインクリメントする。この処理では、cpで指定されるアドレスが開示データコードの読取結果の範囲であれば、S66でNo、S67でNo、S70の処理が繰り返され、開示データコードの読取結果が順番に転送される。一方、nが「Len1」となった場合、つまり、開示データコードの読取結果を全て転送し終えた場合には、S66にてYesに進み、秘匿データ開始識別子である「<<」のマークを転送する。そして、S68の後に繰り返されるS70の転送処理では、秘匿データコードの読取結果が順次転送されることになる。この処理では、S68の後、cpで指定されるアドレスが秘匿データコードの読取結果の範囲であれば、S66でNo、S67でNo、S70の処理が繰り返され、秘匿データコードの読取結果が順番に転送される。そして、nが「Len2」となった場合、つまり、秘匿データコードの読取結果を全て転送し終えた場合には、S67にてYesに進み、秘匿データ終端識別子である「>>」のマークを転送する。
このように構成されているため、情報端末60は、開示データコードの読取結果(開示データコードとして記録された開示データ)と、秘匿データ開始識別子と秘匿データ終端識別子とに囲まれた形の秘匿データコードの読取結果(秘匿データコードとして記録された秘匿データ)とを取得することになる。
例えば、図12の例では、情報コードSQのデータ配列が図12のようになっており、「QRコードの紹介サイトの情報」が開示データとして扱われ、開示データコードとして情報コードSQに記録されている。そして、「http://www.abcdef.com」といったサイトのアドレスが秘匿データとして扱われ、暗号化されて秘匿データコードとして情報コードSQに記録されている。読取装置20が、このような情報コードSQを図8の処理によって解読し、図10の処理で転送する場合、その転送データを受信する情報端末60では、まず「SQ」という識別情報を取得した後、開示データコードの読取結果、即ち、「QRコードの紹介サイトの情報」を取得することになる。そして、その後、秘匿データである「<<http://www.abcdef.com>>」という情報を取得することになる。情報端末60は、このように受信した一連のデータを解析することで「SQ」という識別情報を検出することができ、受信データ内に秘匿データが存在することを把握できる。そして、「<<」「>>」の記号を検出することで、これらの記号の間に配列されるデータが秘匿データであることを特定することができる。つまり、「http://www.abcdef.com」が元々正規の秘匿データであったことを特定できるようになっている。一方、読取装置20が図8の処理で読み取った情報コードCが図13のような一般的なQRコード(登録商標)の配列の場合、その読取結果を受信する情報端末60では、まず「QR」という情報を取得した後、開示データコードの読取結果(図13の例では、「http://www.abcdef.com」というアドレスデータ)を取得することになる。
なお、図14では、情報コードSQ及び一般的なQRコードにおいて共通で扱われるモード識別子(モード指示子)の例を示すものであり、本構成では、例えば「0000」のモード識別子を終端識別コードとして扱っている。また、情報コードSQ及び一般的なQRコードのいずれの場合でも、開示データ及び終端識別コードのデータフォーマットを同様の構成とすることができ、例えば図13のように、開示データを構成する各データのデータ先頭側にモード識別子が割り当てられ、各データがどのようなモードであるかを特定できるようになっている。
次に、情報端末60で行われる接続処理について説明する。図11に示す接続処理では、まずS81において各種初期設定を行い、その後、読取装置20からのデータ受信があったか否かの判断処理を行う(S82)。初期設定完了後に読取装置20からのデータ受信が無い場合には、S82にてNoに進んで待機状態(読取装置20からのデータ受信を待つ状態)を継続する。一方、初期設定完了後に読取装置20からデータを受信した場合には、S82にてYesに進み、データの終わりを示すターミネータを受信したか否かを判断する。ターミネータを受信するまでは、S83でNo、S84の格納処理を繰り返すことになる。ターミネータを受信した場合(即ち、読取装置20から送信される一連の送信データを全て受信した場合)には、S83にてYesに進む。
S83にてYesに進む場合には、読取装置20から受信したデータ(即ち、図9の転送処理で送信されたデータ)からコードマークを検出する、読取装置20から受信したデータに含まれるコードマークが「SQ」ではなく、「QR」の場合、このデータは秘匿データコードを解読したものではないため、この場合、S86にてNoに進み、当該接続処理を終了する。即ち、読取装置20から送られたデータが、秘匿データを含んだ情報コードSQを解読したものではなく、一般的な二次元コードQRを解読したデータの場合には、仮にこのデータにウェブサイトのアドレス(インターネット上のアドレス)を示すURLが含まれていても、当該ウェブサイトへの接続処理を行わないのである。
一方、読取装置20から受信したデータに含まれるコードマークが「SQ」の場合、このデータは秘匿データコードを解読したものといえる。この場合、S86にてYesに進み、受信データから秘匿データ識別子である「<<」「>>」を検出したか否かを判断する(S87)。秘匿データ識別子が検出できた場合には、S87にてYesに進み、この範囲のデータで特定されるインターネット上のウェブサイトのアドレス情報(URL)を抽出する(S88)。秘匿データ識別子が検出できない場合には、S87にてNoに進み、図11の処理を終了する。その後、S88で抽出されたアドレス情報で特定されるインターネット上のウェブサイトに接続し、その接続結果を表示画面等に表示する(S89)。例えば、秘匿データ識別子である「<<」「>>」の間に配列されるアドレスが、特定の提供主体(例えば、企業、店舗、公共機関、個人、その他の主体)が提供するウェブサイトを示す場合、当該ウェブサイトで提供される画像を当該ウェブサイトから取得し、情報端末60の表示部に表示する。このように、図11の処理では、秘匿データコードから得られたアドレス情報(秘匿データ識別子が付されたアドレス)が存在しなければ、サイトへの接続がなされないようになっている。
上述した情報コード読取装置20では、第2デコード部に相当する制御回路40によって秘匿データコードが解読された場合、対応処理部に相当する制御回路40により、対応処理として、当該秘匿データコードの解読結果の出力を行うと共に、所定の識別情報(「SQ」のマーク、及び「<<」「>>」のマーク)の出力を行うようになっている。このように、秘匿データコードの解読結果と識別情報とが対応付けて出力されるため、外部装置である情報端末60では、出力されたデータが正規の秘匿データであるか否かをより正確に判別しやすくなる。
また、対応処理部に相当する制御回路40は、秘匿データコードが解読された場合に、その秘匿データコードを解読して得られた解読データのデータ配列の前側に識別情報としての前側識別情報(「<<」のマーク)を配置し、その解読データのデータ配列の後側に識別情報としての後側識別情報(「>>」のマーク)を配置したデータ構成の組合せデータ(例えば、<<http://www.abcdef.com>>というデータ構成を含むデータ)を出力している。この構成によれば、出力されるデータが正規の秘匿データであるか否かをより正確に判別可能としつつ、出力されるデータの中で、データ配列のどの範囲に正規の秘匿データが存在するのかをより詳細に特定しやすくなる。
また、対応処理部に相当する制御回路40は、秘匿データコードが解読されず、開示データコードが解読された場合には、識別情報としての「SQ」のマークを対応付けずに、別の情報として「QR」のマークを対応付けて、この開示データコードの解読結果(即ち、コード列における終端識別コードよりも前の配置内容の解読結果)を出力している。このように構成されているため、出力データにおいて「SQ」のマークが対応付けられていなければ、或いは「QR」のマークが対応付けられていれば、その出力データに正規の秘匿データが含まれていないことを特定できる。
なお、対応処理部に相当する制御回路40は、図8、図9の処理において、秘匿データコードが解読された場合に、秘匿データコードを解読した解読データと識別情報(「SQ」のマーク、及び「<<」「>>」のマーク)とを対応付けてメモリ35(記憶部)や読取装置20に接続された外部記憶装置などに記憶しておくようにしてもよい。即ち、上述の例で秘匿データコードが解読された場合にS24で送信されるデータと同様のデータをメモリ35に記憶しておくようにしてもよい。このように秘匿データコードが解読された場合に秘匿データコードの解読データに対して識別情報が対応付けられて記憶されるようにしても、記憶データが正規の秘匿データであるか否かを迅速且つ確実に判別しやすくなる。
また、対応処理部に相当する制御回路40は、図8、図9の処理において秘匿データコードが解読されず、開示データコードが解読された場合には、識別情報としての「SQ」のマークを対応付けずに、別の情報として「QR」のマークを対応付けて、この開示データコードの解読結果(即ち、コード列における終端識別コードよりも前の配置内容の解読結果)をメモリ35(記憶部)や読取装置20に接続された外部記憶装置などに記憶しておくようにしてもよい。このようにすると、記憶データにおいて「SQ」のマークが対応付けられていなければ、或いは「QR」のマークが対応付けられていれば、その記憶データに正規の秘匿データが含まれていないことを特定できる。
なお、上述した例では、秘匿データコードが解読された場合の対応処理の例として、当該秘匿データコードの解読結果の出力、又は解読結果の記憶を例示したが、秘匿データコードの解読結果に応じた処理を行うようになっていてもよい。「秘匿データコードの解読結果に応じた処理」は、秘匿データコードの解読結果に含まれるコマンドの実行などであってもよい。例えば、秘匿データコードの内容として、上述のアドレス情報と、「情報端末60への送信」を示すコマンドが記録されていた場合、このコマンドに従って、図10のような処理を行い、アドレス情報と識別情報とを対応付けて情報端末60に送信するようにしてもよい。また、秘匿データコードの内容として、所定情報と「メモリ35への記憶」を示すコマンドが記録されていた場合、このコマンドに従って、上記所定情報と識別情報とを対応付けてメモリ35に記憶するようにしてもよい。この場合、メモリ35に記憶された所定情報が正規の秘匿データであったことを後から特定できるようになる。
また、本構成では、所定のネットワーク内の各サイトに接続する情報端末60(接続部)を備え、情報コード生成装置1は、ネットワーク内でのアドレスを特定するアドレス情報を含む構成で秘匿データコードを生成している。一方、読取装置20の対応処理部は、第2デコード部によって秘匿データコードが解読された場合に、少なくともアドレス情報と識別情報とを対応付けて情報端末60に出力し、情報端末60(接続部)は、アドレス情報と識別情報とが対応付けて出力されることを条件として、アドレス情報によって特定されるサイトに接続する構成となっている。
この構成では、対応処理部によって出力されるデータにおいてアドレス情報と識別情報とが対応付けられている場合に限り、情報端末60(接続部)は、そのアドレス情報で特定されるサイトへアクセスする。逆に、出力されるデータが正規の秘匿データでない場合には、このような不正データで特定されるサイトへのアクセスを制限することができる。
このような技術を用いれば、例えば秘匿データが記録された情報コードの上に、別のサイトのアドレスが記録された他の二次元コードが貼り付けられ、別のサイトへ誘導するような不正が行われたとしても、識別情報が対応付けられていない限り情報端末60(接続部)による別のサイトへのアクセスが行われなくなる。従って、このような不正誘導によるアクセスをより効果的に防ぐことができる。
また、情報コード生成装置1は、秘匿するデータを所定の暗号化キーに基づいて暗号化し且つコード化することで秘匿データコードを生成している。そして、情報コード読取装置は、復号化キーを記憶するメモリ35(復号化キー記憶部)を備え、第2デコード部に相当する制御回路40は、秘匿データコードが配置されていると判断された場合、メモリ35(復号化キー記憶部)に記憶された復号化キーを用いて秘匿データコードの暗号解読を試み、復号化キーを用いた暗号解読が成功した場合には上記対応処理を行い且つ識別情報の出力又は記憶を行い、復号化キーを用いた暗号解読が失敗した場合には所定の報知処理(S72の処理)を行う構成となっている。
この構成では、例えば読取装置20に記憶された復号化キーが正規のキーでない場合など、暗号解読が失敗する場合に所定の報知処理が行われるため、利用者はこの報知により、対応処理が正常に行われないこと、及びその原因を把握しやすくなる。
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
図1等の構成では、情報コード生成装置1と情報コード読取装置20が別々の装置として構成された例を示しているが、情報コード生成装置1が情報コード読取装置20として構成されていてもよい。
上記実施形態では、読取装置20とは異なる情報端末60が接続部として構成されていたが、読取装置20の一部(制御回路40及び通信インタフェース48)が接続部として構成されていてもよい。即ち、読取装置20の内部に、図11のような処理を行うプログラムが記憶され、このプログラムを制御回路40が実行するような構成であってもよい。この場合、図10での「転送」という部分は、当該プログラムへの受け渡しという概念に置き換えればよい。また、図11の「受信」という部分は、読取装置20での読み出しという概念に置き換えればよい。この場合、読取装置20の対応処理部に相当する制御回路40は、秘匿データコードが解読された場合に、少なくともアドレス情報と識別情報とを対応付けてメモリ35に記憶しておけばよい。そして、読取装置20において、図11の処理を行うプログラムが起動されたときに、メモリ35内にアドレス情報と識別情報とが対応付けて記憶されている場合に、当該プログラムにより、そのアドレス情報によって特定されるサイトに接続する構成となっていてもよい。
情報コード生成装置1が情報コードSQを印刷して形成する例を示したが、情報コードSQは印刷されていなくてもよい。例えば情報コード生成装置1は、情報コードSQの画像を表示するための画像データを生成するものであってもよく、この場合、生成された情報コードSQを、データ送信や記憶メディアを介したデータ移行によって表示媒体(表示装置を備えた携帯型情報端末や据置型情報端末)に取得させ、当該表示媒体で情報コードSQを表示させるようにすればよい。また、情報コード生成装置1は、図4の処理で生成された情報コードSQを、公知のダイレクトマーキング加工によって物体にマーキングするような構成であってもよい。
上記実施形態では、情報コード生成装置1が生成する情報コードSQとして、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、コード領域に配置された開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置した例を示したが、この例に限定されない。例えば、情報コード生成装置1が生成する情報コードSQは、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する構成となっていてもよい。この場合、秘匿するデータを表すコード語としてコード化された秘匿データコードは、終端識別情報により特定される終端位置の後、に配置されていればよい。
終端識別情報の例は様々に考えられるが、第1実施形態の終端識別コードに代えて、例えば全ての開示データコードのデータ長を算出することによって得られる「開示データコードがなすコード列の終端位置」を特定できる終端位置データ(即ち、終端位置までのデータの長さを特定できるデータ)を開示データコードの先頭に配置または付加しても良い。このようにすることで、開示データコードの終端位置までのデータの長さ、及び範囲が特定でき、開示データコードの終わりの位置(終端位置)を把握することができる。この方法では、情報コードSQ内に秘匿データコードを含ませる場合、終端識別情報(終端位置データ)で特定される終端位置に続けて秘匿識別コード等を付加した後、その後に、上記実施形態と同様の秘匿識別コードを配置すればよい。
情報コードSQには、終端識別コードの後、又は終端識別情報により特定される終端位置の後に配置される秘匿データコードは、秘匿するデータを表すコード語としてコード化された上述の秘匿データコードそのものであってもよく、上述の秘匿データコードに所定の加工を施したものであってもよい。この所定の加工としては、秘匿データを構成するビットの並替え、秘匿データを構成するビットの分散配置、秘匿データを構成するビットにより特定されるデータ値の変換などが挙げられる。このような場合でも、読取装置20側でその加工方法が特定できれば、秘匿データコードを解読することが可能となる。
1…情報コード生成装置
20…情報コード読取装置
35…メモリ(記憶部、復号化キー記憶部)
40…制御回路(第1デコード部、判断部、第2デコード部、対応処理部)
60…情報端末(接続部)
100…情報コード利用システム
SQ…情報コード

Claims (6)

  1. 情報コードを生成する情報コード生成装置と、前記情報コード生成装置によって生成された前記情報コードを読取可能な情報コード読取装置と、を備えた情報コード利用システムであって、
    前記情報コード生成装置は、
    開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、
    秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置する構成で前記情報コードを生成し、
    前記情報コード読取装置は、
    前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第1デコード部と、
    前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
    前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第2デコード部と、
    前記第2デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
    を有し、
    前記対応処理部は、
    前記第2デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、
    前記第2デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶し、
    前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶することを特徴とする情報コード利用システム。
  2. 所定のネットワーク内の各サイトに接続する接続部を備え、
    前記情報コード生成装置は、前記ネットワーク内でのアドレスを特定するアドレス情報を含む構成で前記秘匿データコードを生成し、
    前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、少なくとも前記アドレス情報と前記識別情報とを対応付けて出力又は記憶し、
    前記接続部は、前記アドレス情報と前記識別情報とが対応付けて出力又は記憶されることを条件として、前記アドレス情報によって特定されるサイトに接続することを特徴とする請求項1に記載の情報コード利用システム。
  3. 前記情報コード生成装置は、秘匿するデータを所定の暗号化キーに基づいて暗号化し且つコード化することで前記秘匿データコードを生成し、
    前記情報コード読取装置は、復号化キーを記憶する復号化キー記憶部を備え、
    前記第2デコード部は、前記判断部により前記秘匿データコードが配置されていると判断された場合、前記復号化キー記憶部に記憶された前記復号化キーを用いて前記秘匿データコードの暗号解読を試み、前記復号化キーを用いた暗号解読が成功した場合には前記対応処理を行い且つ前記識別情報の出力又は記憶を行い、前記復号化キーを用いた暗号解読が失敗した場合には所定の報知処理を行うことを特徴とする請求項1又は請求項2に記載の情報コード利用システム。
  4. 開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置してなる情報コードを読み取り可能な情報コード読取装置であって、
    前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第1デコード部と、
    前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
    前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第2デコード部と、
    前記第2デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
    を有し、
    前記対応処理部は、
    前記第2デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、
    前記第2デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶し、
    前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶することを特徴とする情報コード読取装置
  5. 所定のネットワーク内の各サイトに接続する接続部を備え、
    前記ネットワーク内でのアドレスを特定するアドレス情報を含む構成で前記秘匿データコードが生成され、
    前記対応処理部は、前記第2デコード部によって前記秘匿データコードが解読された場合に、少なくとも前記アドレス情報と前記識別情報とを対応付けて出力又は記憶し、
    前記接続部は、前記アドレス情報と前記識別情報とが対応付けて出力又は記憶されることを条件として、前記アドレス情報によって特定されるサイトに接続することを特徴とする請求項に記載の情報コード読取装置
  6. 前記秘匿データコードは、秘匿するデータが所定の暗号化キーに基づいて暗号化され且つコード化されたものであり、
    更に、復号化キーを記憶する復号化キー記憶部を備え、
    前記第2デコード部は、前記判断部により前記秘匿データコードが配置されていると判断された場合、前記復号化キー記憶部に記憶された前記復号化キーを用いて前記秘匿データコードの暗号解読を試み、前記復号化キーを用いた暗号解読が成功した場合には前記対応処理を行い且つ前記識別情報の出力又は記憶を行い、前記復号化キーを用いた暗号解読が失敗した場合には所定の報知処理を行うことを特徴とする請求項4又は請求項5に記載の情報コード読取装置。
JP2013148826A 2013-07-17 2013-07-17 情報コード利用システム、及び情報コード読取装置 Active JP6136688B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013148826A JP6136688B2 (ja) 2013-07-17 2013-07-17 情報コード利用システム、及び情報コード読取装置
FR1456808A FR3008812B1 (fr) 2013-07-17 2014-07-16 Systeme d'utilisation d'un code d'information et lecteur lisant un code d'information
KR1020140090119A KR101570704B1 (ko) 2013-07-17 2014-07-17 정보 코드 이용 시스템 및 정보 코드 판독 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013148826A JP6136688B2 (ja) 2013-07-17 2013-07-17 情報コード利用システム、及び情報コード読取装置

Publications (2)

Publication Number Publication Date
JP2015022436A JP2015022436A (ja) 2015-02-02
JP6136688B2 true JP6136688B2 (ja) 2017-05-31

Family

ID=52275574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013148826A Active JP6136688B2 (ja) 2013-07-17 2013-07-17 情報コード利用システム、及び情報コード読取装置

Country Status (3)

Country Link
JP (1) JP6136688B2 (ja)
KR (1) KR101570704B1 (ja)
FR (1) FR3008812B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10512033B2 (en) * 2015-01-29 2019-12-17 Qualcomm Incorporated Timing information for discovery in unlicensed spectrum

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004147006A (ja) 2002-10-23 2004-05-20 Sharp Corp 情報送信方法及び携帯端末
AU2003236352A1 (en) * 2003-04-03 2004-11-01 Wireaction Inc. Two-dimensional bar-code creating device, two-dimensional bar-code reader, two-dimensional bar-code creating method, two-dimensional bar-code reading method, and program
JP4924206B2 (ja) * 2007-05-29 2012-04-25 株式会社デンソーウェーブ 二次元コードの生成方法およびその読取装置
JP4924468B2 (ja) * 2007-05-29 2012-04-25 株式会社デンソーウェーブ 二次元コードの生成方法およびその読取装置
JP5708309B2 (ja) 2011-07-01 2015-04-30 株式会社デンソーウェーブ 情報コード読取システム
JP5737116B2 (ja) * 2011-10-03 2015-06-17 株式会社デンソーウェーブ 情報提供システム

Also Published As

Publication number Publication date
KR101570704B1 (ko) 2015-11-23
FR3008812B1 (fr) 2018-07-27
JP2015022436A (ja) 2015-02-02
FR3008812A1 (fr) 2015-01-23
KR20150009937A (ko) 2015-01-27

Similar Documents

Publication Publication Date Title
JP4924468B2 (ja) 二次元コードの生成方法およびその読取装置
US8879737B2 (en) Method for producing two-dimensional code and reader for reading the two-dimensional code
JP5023949B2 (ja) 二次元コードおよびその読取装置
JP4924206B2 (ja) 二次元コードの生成方法およびその読取装置
US20060107040A1 (en) Setting up a security access system
EP1846830B1 (en) Access keys
US20060107315A1 (en) System that uses access keys
US20060107041A1 (en) Assembling a security access system
CN101473314B (zh) 在不可信机器上输入机密信息
JP2009031969A (ja) 配送管理システム
JP4951743B2 (ja) 光学的情報読取装置および光学的情報読取システム
JP6136688B2 (ja) 情報コード利用システム、及び情報コード読取装置
JP5196046B2 (ja) 二次元コードを生成するプログラム及び二次元コード
JP6164079B2 (ja) 情報端末及び情報端末システム
EP2000950B1 (en) Method for producing two-dimensional code and reader for reading the two-dimensional code
JP2008312001A (ja) 秘匿データ生成読取システム及び秘匿データ生成読取方法
JP2009187260A (ja) デジタルペンシステム
JP5724721B2 (ja) 光学的情報読取装置
JP5196045B2 (ja) 二次元コードを印刷するプリンタ、二次元コードを表示する表示装置、及びシステム
JP7488460B2 (ja) 二次元コードの生成方法、二次元コード及び二次元コード読取装置
JP4862347B2 (ja) 入力装置および入力情報不正読取防止プログラム
JP2020086893A (ja) 二次元コード評価システム及び方法
JP5235209B2 (ja) 商品情報処理システム、および商品販売情報処理方法
CN117196834A (zh) 黄金卡片交易管理系统及方法
JP2014085923A (ja) 情報コードシステム、情報コードの生成端末、及び情報コードの読取端末

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R150 Certificate of patent or registration of utility model

Ref document number: 6136688

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250