(57)【要約】【課題】一般仕様の読取装置で読み取る場合に秘匿データの存在が認識困難な情報コードを読み取ることが可能な情報コード読取装置を有し、且つこの読取装置で扱われる読み取り後のデータが、元々秘匿化されていたデータであるのか、そうでないのかをより正確に区別し得る構成を提供する。【解決手段】情報コード読取装置２０は、終端識別コードの後または終端位置よりも後に秘匿データコードが配置されているか否かを判断する判断部と、判断部により秘匿データコードが配置されていると判断された場合に、秘匿データコードをデコードする第２デコード部と、第２デコード部によって秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は解読結果の記憶、若しくは解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部とを有する。【選択図】図１
2015022436.tif 000002
【特許請求の範囲】
【請求項１】
情報コードを生成する情報コード生成装置と、前記情報コード生成装置によって生成された前記情報コードを読取可能な情報コード読取装置と、を備えた情報コード利用システムであって、
前記情報コード生成装置は、
開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、
秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置する構成で前記情報コードを生成し、
前記情報コード読取装置は、
前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第１デコード部と、
前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第２デコード部と、
前記第２デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
を有することを特徴とする情報コード利用システム。
【請求項２】
前記対応処理部は、
前記第２デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、
前記第２デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶することを特徴とする請求項１に記載の情報コード利用システム。
【請求項３】
前記対応処理部は、前記第２デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶することを特徴とする請求項２に記載の情報コード利用システム。
【請求項４】
所定のネットワーク内の各サイトに接続する接続部を備え、
前記情報コード生成装置は、前記ネットワーク内でのアドレスを特定するアドレス情報を含む構成で前記秘匿データコードを生成し、
前記対応処理部は、前記第２デコード部によって前記秘匿データコードが解読された場合に、少なくとも前記アドレス情報と前記識別情報とを対応付けて出力又は記憶し、
前記接続部は、前記アドレス情報と前記識別情報とが対応付けて出力又は記憶されることを条件として、前記アドレス情報によって特定されるサイトに接続することを特徴とする請求項１から請求項３のいずれか一項に記載の情報コード利用システム。
【請求項５】
前記情報コード生成装置は、秘匿するデータを所定の暗号化キーに基づいて暗号化し且つコード化することで前記秘匿データコードを生成し、
前記情報コード読取装置は、復号化キーを記憶する復号化キー記憶部を備え、
前記第２デコード部は、前記判断部により前記秘匿データコードが配置されていると判断された場合、前記復号化キー記憶部に記憶された前記復号化キーを用いて前記秘匿データコードの暗号解読を試み、前記復号化キーを用いた暗号解読が成功した場合には前記対応処理を行い且つ前記識別情報の出力又は記憶を行い、前記復号化キーを用いた暗号解読が失敗した場合には所定の報知処理を行うことを特徴とする請求項１から請求項４のいずれか一項に記載の情報コード利用システム。
【請求項６】
開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置してなる情報コードを読み取り可能な情報コード読取装置であって、
前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第１デコード部と、
前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第２デコード部と、
前記第２デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
を有することを特徴とする情報コード読取装置。
【請求項７】
前記対応処理部は、
前記第２デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、
前記第２デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶することを特徴とする請求項６に記載の情報コード読取装置。
【請求項８】
前記対応処理部は、前記第２デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶することを特徴とする請求項７に記載の情報コード読取装置。
【請求項９】
所定のネットワーク内の各サイトに接続する接続部を備え、
前記情報コード生成装置は、前記ネットワーク内でのアドレスを特定するアドレス情報を含む構成で前記秘匿データコードを生成し、
前記対応処理部は、前記第２デコード部によって前記秘匿データコードが解読された場合に、少なくとも前記アドレス情報と前記識別情報とを対応付けて出力又は記憶し、
前記接続部は、前記アドレス情報と前記識別情報とが対応付けて出力又は記憶されることを条件として、前記アドレス情報によって特定されるサイトに接続することを特徴とする請求項６から請求項８のいずれか一項に記載の情報コード読取装置。
【請求項１０】
前記秘匿データコードは、秘匿するデータが所定の暗号化キーに基づいて暗号化され且つコード化されたものであり、
更に、復号化キーを記憶する復号化キー記憶部を備え、
前記第２デコード部は、前記判断部により前記秘匿データコードが配置されていると判断された場合、前記復号化キー記憶部に記憶された前記復号化キーを用いて前記秘匿データコードの暗号解読を試み、前記復号化キーを用いた暗号解読が成功した場合には前記対応処理を行い且つ前記識別情報の出力又は記憶を行い、前記復号化キーを用いた暗号解読が失敗した場合には所定の報知処理を行うことを特徴とする請求項６から請求項９のいずれか一項に記載の情報コード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コード利用システム、及び情報コード読取装置に関するものである。
【背景技術】
【０００２】
秘匿データを含んだ二次元コードを生成したり読み取る技術として、例えば、下記特許文献１に開示される「情報送信方法及び携帯端末」がある。この従来技術では、送信側の携帯端末は、キー入力装置から入力された暗号キーにより送信データを暗号化しそれをＱＲコード（登録商標）に変換してＱＲコードを生成しそれを表示装置の画面に表示する（特許文献１；段落００２０，００２１、図４）。
【０００３】
これに対し、受信側の携帯端末では、送信側の携帯端末の画面に表示されたＱＲコードの画像をカメラ等により読み込んでＱＲコードが暗号化されているか否かを判断した後、暗号化されている場合には暗号キーを要求する。そして、ＱＲコードを逆変換するとともに入力された暗号キーにより送信データを復号して復元データを画面表示する（特許文献１；段落００２２、図５）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１４７００６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に開示される「情報送信方法及び携帯端末」によると、暗号化されているものをＱＲコードに逆変換した場合には、通常、暗号化されたデータそのものは文字情報として意味をなさないものであるため、携帯端末等の画面に表示される情報は意味不明なものであったり、画面表示の制御等に影響を与え得る制御コードに相当する情報であったりする。
【０００６】
このため、意味不明な情報である場合には、当該携帯端末等の使用者に不信感を与え得るという問題や、それが暗号化された情報であることを認識し得る使用者に対しては、解読を試みようとする不用意な動機を与える可能性があることから、セキュリティ上の問題を生じ得る。
【０００７】
このような問題を解消するべく、本願発明者は、「開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、そのコード領域に配置された開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は終端識別情報により特定される前記終端位置の後、に配置する構成の情報コード」を着想するに至った。
【０００８】
このように情報コードを構成すれば、一般仕様の読取装置で読み取る場合には、秘匿データコードの解読結果が得られずに、開示データコードの解読結果が得られるため、このような読取装置のみを扱う利用者は、秘匿データコードが記録されていること自体を認識しにくくなる。一方、特別な読取装置で読み取る場合には、秘匿データコードの解読結果が得られるため、このような特別な読取装置にのみ秘匿データコードの解読データを扱わせやすくなる。しかしながら、単にこのように構成するだけでは、特別な読取装置で扱われる読み取り後のデータが、元々秘匿化されていたデータであるのか、そうでないのかを区別できないという問題がある。
【０００９】
本発明は、上述した課題を解決するためになされたもので、一般仕様の読取装置で読み取る場合に秘匿データの存在が認識困難となるように構成された情報コードを読み取ることが可能な読取装置、及びこのような読取装置を有するシステムを提供することを目的とする。更には、その読取装置で扱われる読み取り後のデータが、元々秘匿化されていたデータであるのか、そうでないのかをより正確に区別し得る構成を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の発明は、
情報コードを生成する情報コード生成装置と、前記情報コード生成装置によって生成された前記情報コードを読取可能な情報コード読取装置と、を備えた情報コード利用システムであって、
前記情報コード生成装置は、
開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、
秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置する構成で前記情報コードを生成し、
前記情報コード読取装置は、
前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第１デコード部と、
前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第２デコード部と、
前記第２デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
を有することを特徴とする。
【００１１】
第２の発明は、
開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置し、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、又は前記終端識別情報により特定される前記終端位置の後、に配置してなる情報コードを読み取り可能な情報コード読取装置であって、
前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読を試みる第１デコード部と、
前記終端識別コードの後または前記終端位置よりも後に前記秘匿データコードが配置されているか否かを判断する判断部と、
前記判断部により前記秘匿データコードが配置されていると判断された場合に、前記秘匿データコードをデコードする第２デコード部と、
前記第２デコード部によって前記秘匿データコードが解読された場合に、当該秘匿データコードの解読結果の出力、又は前記解読結果の記憶、若しくは前記解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行う対応処理部と、
を有することを特徴とする。
【発明の効果】
【００１２】
請求項１の発明で扱われる情報コードは、秘匿するデータを表すコード語としてコード化された秘匿データコードが、終端識別コードの後、又は終端識別情報により特定される終端位置の後、に配置される。従って、このような終端識別コード又は終端位置の前までのデータを解読すべきデータとして扱うような一般仕様の読取装置では、秘匿データコードの解読が試みられないため、このような読取装置では、秘匿データコードの存在自体が認識困難となる。一方、本発明の要部をなす情報コード読取装置では、判断部により秘匿データコードが配置されていると判断された場合に、第２デコード部によって秘匿データコードのデコードが行われるため、秘匿データコードとして記録された秘匿データの解読が可能となる。
【００１３】
更に、情報コード読取装置では、第２デコード部によって秘匿データコードが解読された場合、対応処理部により、当該秘匿データコードの解読結果の出力、又は解読結果の記憶、若しくは解読結果に応じた処理、の少なくともいずれかの対応処理を行い、且つ所定の識別情報の出力又は記憶を行うようになっている。このように、対応処理に加え、所定の識別情報の出力又は記憶が行われるため、この情報コード読取装置又は外部装置では、識別情報の出力又は記憶の有無に基づいて、上記対応処理で扱われるデータが正規の秘匿データであるか否かをより正確に判別しやすくなる。
【００１４】
請求項２の発明では、前記対応処理部は、前記第２デコード部によって前記秘匿データコードが解読された場合に、前記秘匿データコードを解読した解読データと前記識別情報とを対応付けて出力又は所定の記憶部に記憶し、前記第２デコード部によって前記秘匿データコードが解読されない場合には、前記識別情報を対応付けずに、前記コード列における前記終端識別コードよりも前の配置内容、または前記コード列における前記終端識別情報により特定される前記終端位置よりも前の配置内容の解読結果を出力又は前記記憶部に記憶している。
この構成では、第２デコード部によって秘匿データコードが解読された場合、秘匿データコードの解読データに対して識別情報が対応付けられて出力又は記憶されるため、出力データ又は記憶データが正規の秘匿データであるか否かを迅速且つ確実に判別しやすくなる。
【００１５】
請求項３の発明では、前記対応処理部は、前記第２デコード部によって前記秘匿データコードが解読された場合に、前記解読データのデータ配列の前側に前記識別情報としての前側識別情報を配置し、前記解読データのデータ配列の後側に前記識別情報としての後側識別情報を配置したデータ構成の組合せデータを出力又は前記記憶部に記憶している。
この構成によれば、出力又は記憶されるデータが正規の秘匿データであるか否かをより正確に判別可能としつつ、出力又は記憶されるデータの中で、データ配列のどの範囲に
正規の秘匿データが存在するのかをより詳細に特定しやすくなる。
【００１６】
請求項４の発明では、所定のネットワーク内の各サイトに接続する接続部を備え、前記情報コード生成装置は、前記ネットワーク内でのアドレスを特定するアドレス情報を含む構成で前記秘匿データコードを生成し、前記対応処理部は、前記第２デコード部によって前記秘匿データコードが解読された場合に、少なくとも前記アドレス情報と前記識別情報とを対応付けて出力又は記憶し、前記接続部は、前記アドレス情報と前記識別情報とが対応付けて出力又は記憶されることを条件として、前記アドレス情報によって特定されるサイトに接続する構成となっている。
この構成では、対応処理部によって出力又は記憶されるデータにおいてアドレス情報と識別情報とが対応付けられている場合に限り、接続部は、そのアドレス情報で特定されるサイトへアクセスする。逆に、出力又は記憶されるデータが正規の秘匿データでない場合には、このような不正データで特定されるサイトへのアクセスを制限することができる。
このような技術を用いれば、例えば秘匿データが記録された情報コードの上に、別のサイトのアドレスが記録された他の二次元コードが貼り付けられ、別のサイトへ誘導するような不正が行われたとしても、識別情報が対応付けられていない限り接続部による別のサイトへのアクセスが行われなくなる。従って、このような不正誘導によるアクセスをより効果的に防ぐことができる。
【００１７】
請求項５の発明では、前記情報コード生成装置は、秘匿するデータを所定の暗号化キーに基づいて暗号化し且つコード化することで前記秘匿データコードを生成し、前記情報コード読取装置は、復号化キーを記憶する復号化キー記憶部を備え、前記第２デコード部は、前記判断部により前記秘匿データコードが配置されていると判断された場合、前記復号化キー記憶部に記憶された前記復号化キーを用いて前記秘匿データコードの暗号解読を試み、前記復号化キーを用いた暗号解読が成功した場合には前記対応処理を行い且つ前記識別情報の出力又は記憶を行い、前記復号化キーを用いた暗号解読が失敗した場合には所定の報知処理を行う構成となっている。
この構成では、例えば読取装置に記憶された復号化キーが正規のキーでない場合など、暗号解読が失敗する場合に所定の報知処理が行われるため、利用者はこの報知により、対応処理が正常に行われないこと、及びその原因を把握しやすくなる。
【００１８】
請求項６の発明によれば、請求項１の発明と同様の効果を奏する情報コード読取装置を実現できる。
請求項７の発明によれば、請求項２の発明と同様の効果を奏する情報コード読取装置を実現できる。
請求項８の発明によれば、請求項３の発明と同様の効果を奏する情報コード読取装置を実現できる。
請求項９の発明によれば、請求項４の発明と同様の効果を奏する情報コード読取装置を実現できる。
請求項１０の発明によれば、請求項５の発明と同様の効果を奏する情報コード読取装置を実現できる。
【図面の簡単な説明】
【００１９】
【図１】図１は、第１実施形態に係る情報コード利用システムを概念的に説明する説明図である。
【図２】図２は、図１の情報コード利用システムの適用例を概念的に説明する説明図である。
【図３】図３（Ａ）は、図１の情報コード利用システムで用いられる情報コード生成装置の構成例を概念的に説明する説明図であり、図３（Ｂ）は、図３（Ａ）の情報コード生成装置で用いられる印刷装置のハードウェア構成例を示すブロック図である。
【図４】図４は、図３の情報コード生成装置で行われる情報コードの生成処理の流れを例示するフローチャートである。
【図５】図５は、図４に示すコード生成処理により情報処理されるデータやコードのフォーマット例を示す説明図で、図５（Ａ） は印刷データのデータレコードの例、図５（Ｂ） はステップＳ１１５により並び替えた後の例、図５(Ｃ) はステップＳ１２１〜Ｓ１３７により各コードを付加した後の例、図５(Ｄ) は図５(Ｃ) に示す秘匿コードの構成例１、図５(Ｅ) は図５(Ｃ) に示す秘匿コードの構成例２、図５(Ｆ) は図５(Ｃ) に示す秘匿コードの構成例３、をそれぞれ示すものである。
【図６】図６は、１型のＱＲコードの構成例を示す説明図である。
【図７】図７は、図１の情報コード利用システムで用いられる情報コード読取装置のハードウェア構成例を示すブロック図である。
【図８】図８は、図７の情報コード読取装置によって行われるデコード処理の流れを例示するフローチャートである。
【図９】図９は、図８のデコード処理で行われる復号化処理の流れを例示するフローチャートである。
【図１０】図１０は、図８のデコード処理で行われるデータ転送処理の流れを例示するフローチャートである。
【図１１】図１１は、図１の情報端末で行われる接続処理の流れを例示するフローチャートである。
【図１２】図１２は、図３等に示す情報コード生成装置で生成された情報コードＳＱの具体例を示す説明図である。
【図１３】図１３は、一般的なＱＲコードのフォーマット例を示す説明図である。
【図１４】図１４は、モード識別子とモードとの対応関係の例を説明する説明図である。
【発明を実施するための形態】
【００２０】
[第１実施形態]
以下、本発明を具現化した第１実施形態について、図面を参照して説明する。
図１に示す情報コード利用システム１００（以下、単にシステム１００ともいう）は、情報コードを生成する情報コード生成装置１（以下、単に生成装置１ともいう）と、情報コード生成装置１によって生成された情報コードＳＱを読取可能な情報コード読取装置２０（以下、単に読取装置２０ともいう）とを備えており、情報コード生成装置１で生成された情報コードＳＱを、情報コード読取装置２０で利用し得るシステムとして構成されている。また、システム１００は、読取装置２０と無線又は有線通信可能な情報処理装置として構成される情報端末６０や、インターネットに接続され、サイト情報などが登録された管理装置８０なども備えている。
【００２１】
なお、以下の説明では、情報コード利用システム１００で扱われる情報コードＳＱの例として、ＱＲコード（登録商標）を挙げるが、情報コードはこれに限られることはなく、例えば、データマトリクス、マキシコード、ＣＰコード、ＰＤＦ４１７やＲＳＳコンポジット等であってもＱＲコードと同様に本発明を適用することができる。いずれの場合も、情報コードＳＱは、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、コード領域に配置された開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する構成となっている。そして、情報コードＳＱは、秘匿するデータを表すコード語としてコード化された秘匿データコードを、終端識別コードの後、又は終端識別情報により特定される終端位置の後、に配置する構成となっている。
【００２２】
図１に示すシステム１００は、例えば、図２のように応用できる。なお、以下では、システム１００を図２のように応用した例を代表例として説明するが、システム１００の適用例はこの例に限られるものではない。
【００２３】
図２の例では、生成装置１によって生成された情報コードＳＱにおいて所定サイトのアドレス情報が暗号化されて記録されており、このような情報コードＳＱの暗号を読取装置２０が解読することで、読取装置２０が所定サイトのアドレス情報を入手できるようになっている。なお、情報コードＳＱのデータ構成は例えば図１２のようになっており、この点については、後に詳述する。一方、読取装置２０は、一般的なＱＲコードとして構成される二次元コードＱＲも解読できるようになっており、二次元コードＱＲにサイトのアドレス情報が記録されていれば、このアドレス情報を取得し得るようになっている。なお、二次元コードＱＲのデータ構成は、例えば図１３のようになっている。
【００２４】
そして、読取装置２０は、情報コードＳＱや二次元コードＱＲから取得したアドレス情報を情報端末６０に送信可能とされており、情報端末６０は、読取装置２０から取得したアドレス情報で特定されるアドレスのサイトへの接続を試みるようになっている。但し、情報端末６０は、送信データに付加された識別情報（図２の例では、秘匿データを識別する記号）に基づいて、取得したデータが情報コードＳＱを解読して得られたものであるか、二次元コードＱＲを解読して得られたものであるかを判別しており、情報コードＳＱを解読して得られたアドレスのサイトには接続するが、二次元コードＱＲを解読して得られたアドレスのサイトには接続しないようになっている。以下では、このようなシステムを代表例として説明することとする。
【００２５】
まず、情報コード生成装置１について、図３等を参照して説明する。なお、図３（Ａ） には、印刷装置１０とそれに接続されるパーソナルコンピュータ（以下「パソコン」という）１とを示す説明図が図示されており、また図１（Ｂ） には、印刷装置１０のハードウェア構成例を示すブロック図が図示されている。
【００２６】
図１、図３（Ａ） に示すように、情報コード生成装置１は、主として、情報処理装置２と、印刷装置１０とによって構成されており、情報処理装置２と印刷装置１０とがケーブル５を介して接続されている。そして、印刷装置１０は、情報処理装置２から出力されて当該印刷装置１０に入力される英数字、漢字や記号等の文字データ（以下これらを「印刷データ」と総称する）に基づいてＱＲコードを生成してラベルＰ等に印刷する機能を有している。なお、ここでいう「ＱＲコード」とは、日本工業規格（ＪＩＳ）の二次元コードシンボル−ＱＲコード−基本仕様（JIS X 0510:2004）に従うものである。
【００２７】
情報処理装置２は、例えば公知のパーソナルコンピュータとして構成されており、パソコン本体４およびディスプレイ３を備えている。パソコン本体４は、図略の、ＭＰＵ、メインメモリ（主記憶装置）、ハードディスク（補助記憶装置）、入出力インタフェース、通信インタフェース、キーボード、ポインティングデバイス等からなる装置である。ディスプレイ３は、パソコン本体４に接続されることによりパソコン本体４から出力される情報を画面表示可能な装置である。
【００２８】
なお、このパソコン本体４には、印刷装置１０のデバイスドライバがインストールされて（組み込まれて）おり、情報処理装置２の利用者が、ＱＲコードとしてラベルＰに印刷したい文字等を含んだ印刷データを、パソコン本体４から印刷装置１０に対して任意に出力可能にしている。
【００２９】
印刷装置１０は、図３（Ｂ） に示すように、主に、ＭＰＵ１１、メモリ１２、インタフェース１３、ローラ制御部１４、ヘッド制御部１５、ローラ１７、ヘッド１８等から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
【００３０】
ＭＰＵ１１は、印刷装置１０全体を制御可能なマイクロコンピュータ（以下「マイコン」という）で、メモリバスを介して接続されるメモリ１２とともに情報処理装置を構成し得るもので情報処理機能を有する。このＭＰＵ１１には、メモリ１２のほかに、インタフェース１３、ローラ制御部１４やヘッド制御部１５も接続されている。
【００３１】
メモリ１２は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ１２のうちのＲＡＭには、前述した情報処理装置２から送られてくる文字データを蓄積するバッファ領域のほか、ＭＰＵ１１が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またＲＯＭには、後述のコード生成処理等を実行可能な所定プログラムやその他、ローラ制御部１４やヘッド制御部１５等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００３２】
インタフェース１３は、前述した情報処理装置２のパソコン本体４から送られてくる印刷データ等を受信可能にする入力インタフェースで、シリアルバス等を介してＭＰＵ１１に接続されている。このインタフェース１３を介してＭＰＵ１１に入力された印刷データは、コード生成処理によって後述するように情報処理されてコード化される。
【００３３】
ローラ制御部１４は、ローラ１７の駆動機構（図略）を制御し得る制御装置で、シリアルバス等を介してＭＰＵ１１に接続されている。これにより、ＭＰＵ１１から受けた制御信号に従ってローラ１７の回転の開始や停止あるいは回転方向等を制御している。
【００３４】
ヘッド制御部１５は、例えば、感熱用紙からなるラベルに対して任意のパターンを印刷し得るサーマルヘッドで、シリアルバス等を介してＭＰＵ１１に接続されている。本実施形態では、後述のコード生成処理によって生成されたＱＲコードを感熱ラベルに印刷可能にするもので、前述したローラ制御部１４による感熱ラベルの紙送りタイミングに同期して、ＱＲコードを構成する位置検出パターン、タイミングパターンやデータコード等を当該ラベルに印刷する。
【００３５】
なお、以下、ヘッド制御部１５として、サーマルヘッドの場合を例示して説明するが、ＱＲコードを印刷できるものであれば、例えば、インクジェット用やドットインパクト用のヘッドでも良いし、また印刷機構として、レーザプリンタやＬＥＤプリンタ等であっても良い。
【００３６】
このように印刷装置１０を構成することによって、情報処理装置２から出力されて当該印刷装置１０に入力された印刷データは、インタフェース１３を介してメモリ１２のバッファ領域に一旦蓄えられた後、次に説明するコード生成処理に渡される。
【００３７】
ここで、コード生成処理を図４〜図６を参照して説明する。なお、図４には、コード生成処理の流れを示すフローチャートが図示されている。また図５には、図４に示すコード生成処理により情報処理されるデータやコードのフォーマット例が図示されている。さらに図６には、１型のＱＲコードの構成例が図示されている。
【００３８】
図４に示すように、コード生成処理は、印刷装置１０の電源投入により起動するＭＰＵ１１およびメモリ１２によって開始され、まずステップＳ１０１により初期設定処理が行われる。この処理では、メモリ１２の作業領域や印刷データを蓄えるバッファ領域をクリアしたり、所定のフラグやカウンタ等をクリアする。
【００３９】
ステップＳ１０３では、印刷データを受信したか否かを判断する処理で、印刷データを受信するまで、このステップを繰り返す（Ｓ１０３；Ｎｏ）。そして、印刷データを受信したと判断すると（Ｓ１０３；Ｙｅｓ）、続くステップＳ１０５によりタイマーのカウント値をクリアする処理を行う。このステップＳ１０５でカウンタ値がクリアされるタイマーは、次のステップＳ１０７により所定時間の経過を計時するものである。
【００４０】
ステップＳ１０７では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、情報処理装置２から送られてくる印刷データに、暗号化等に関するデータが含まれているか否かを次のステップＳ１１１により判断する必要上、例えば、所定時間として１秒間が経過したか否かを判断し、この時間が経過するまでに、情報処理装置２から暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップＳ１０９に処理を移行する（Ｓ１０７；Ｙｅｓ）。
【００４１】
これに対し、所定時間が経過していない場合には（Ｓ１０７；Ｎｏ）、次のステップＳ１１１により暗号化等に関するデータとして、秘匿する必要のあるデータ（以下「秘匿データ」という）のデータレコード中の位置関係を示す秘匿データ位置情報と暗号するために用いる暗号キー（暗号鍵）とを受信したか否かを判断する処理が行われる。そして、これらを受信していると判断した場合には（Ｓ１１１；Ｙｅｓ）、続くステップＳ１１３に処理を移行し、これらを受信していると判断できない場合には（Ｓ１１１；Ｎｏ）、前述したステップＳ１０７に処理を戻して、再度、時間の経過を判断する。
【００４２】
そして、所定時間が経過したとステップＳ１０７により判断した場合には（Ｓ１０７；Ｙｅｓ）、ステップＳ１０９により所定のフラグに「０」をセットする。このフラグは、印刷データに秘匿データが含まれているか否かを示すもので、「０」がセットされている場合には、秘匿データが含まれていないことを示し、「１」がセットされている場合には、秘匿データが含まれていることを示す。このため、ステップＳ１１１により暗号化等に関するデータを受信していると判断した場合には（Ｓ１１１；Ｙｅｓ）、続くステップＳ１１３によりこのフラグに「１」をセットする処理が行われる。
【００４３】
ステップＳ１１３により所定のフラグに「１」をセットすると、続くステップ１１５により、開示データおよび秘匿データを並び替える処理が行われる。即ち、印刷データに、第三者に開示するデータ（開示データ）と、第三者には秘密にして隠しておきたいデータ（秘匿データ）と、が含まれており、これらがデータレコード中で混在している場合に、ステップＳ１１１により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行う。
【００４４】
例えば、図５（Ａ） に示すように、例えば、情報処理装置２から送られてくる印刷データのレコードに、開示データＡ、秘匿データα、開示データＢ、秘匿データβの順に並ぶデータが含まれていたとすると、ステップＳ１１５により、これらのデータの順番を入れ替えて図５（Ｂ） に示すように、開示データＡ、開示データＢ、秘匿データα、秘匿データβの順に並び替える処理を行う。これにより、開示データと秘匿データとがそれぞれまとめられるので、後のステップ１２１による終端識別コードの付加処理や、ステップＳ１２５による秘匿識別コードの付加処理等が容易になる。
【００４５】
次のステップＳ１１７では、開示データや秘匿データ等の各データをＪＩＳの基本仕様（JIS X 0510:2004）に従って符号化する処理が行われる。これにより、開示するデータを表すコード語としてコード化された開示データコードが生成され、また秘匿するデータを表すコード語としてコード化された秘匿データコードが生成される。
【００４６】
そして、続くステップＳ１２１により、開示データコードの後に終端識別コードを付加する処理が行われる。終端識別コードは、例えば、４ビットパターンで「００００」であり、図５(Ｃ) に示すように、開示データコードＡの後に続く開示データコードＢの直後に位置する。なお、図５(Ｃ) では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。
【００４７】
次のステップＳ１２３では、前述した所定のフラグが「１」にセットされているか否か、即ち秘匿データが含まれているか否かを判断する処理が行われる。そして、秘匿データが含まれている場合には（フラグが「１」にセットされている場合：Ｓ１２３；Ｙｅｓ）、ステップＳ１２５に処理を移行し、また秘匿データが含まれていない場合には（フラグが「０」にセットされている場合：Ｓ１２３；Ｎｏ）、一連の秘匿処理（Ｓ１２５〜Ｓ１３３）を飛ばしてステップＳ１３５に処理を移行する。
【００４８】
ステップＳ１２５〜Ｓ１３３は、印刷データに秘匿データが含まれている場合に行われる一連の秘匿処理である。まず、ステップＳ１２５により、秘匿識別コードを終端識別コードの直後に付加する処理が行われる。
【００４９】
このステップＳ１２５による処理は、秘匿識別コードを終端識別コードの直後に配置することで、この終端識別コードの後に配置されているデータコードが「秘匿するデータを表すコード語としてコード化されたものであること」を明示的に表す。これにより、本コード生成処理によって生成されたＱＲコード（情報コードＳＱ）を、ＱＲコードリーダ等（例えば、情報コード読取装置２０等）がデコードする際に、当該情報コードＳＱに秘匿データコード（終端識別コードの後に配置されるデータコード）が含まれていることを認識可能にするので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。
【００５０】
次のステップＳ１２７では、秘匿データコードのデータ長を計算して求め、このデータ長をコード化したものを秘匿識別コードの直後に付加する処理が行われる。これにより、秘匿データコードが配置される領域や範囲がわかるので、本コード生成処理によって生成された情報コードＳＱを、ＱＲコードリーダ等（例えば、情報コード読取装置２０等）がデコードする際に、どこまでが秘匿データコードであるか、または暗号データコードであるかを認識可能にする。
【００５１】
例えば、図５(Ｃ) に示す例では、秘匿データコードαのデータ長と秘匿データコードβのデータ長との和が当該データ長として計算されて秘匿識別コードの直後に付加される。なお、図５(Ｃ) では、便宜上、秘匿データコードを「秘匿コード」、秘匿識別コードを「秘匿識別子」、とそれぞれ表現している。
【００５２】
続くステップＳ１２９では、暗号キー（暗号化キー）があるか否かを判断することによって、秘匿データコードを暗号化する必要があるか否かを判断する。即ち、ステップS１１１によって暗号キーを情報処理装置２から受信している場合には、暗号キー（暗号化キー）があるので（Ｓ１２９；Ｙｅｓ）、ステップＳ１３１に移行して暗号化処理を行う。これに対して、ステップS１１１によって暗号キーを情報処理装置２から受信していない場合には、暗号キーがないので（Ｓ１２９；Ｎｏ）、ステップＳ１３１による暗号化処理を飛ばしてステップＳ１３３に移行する。
【００５３】
なお、ステップＳ１１１により暗号キーを受信していない場合であっても、情報処理装置２が予め暗号キーをメモリ１２やハードディスク等の情報記憶媒体に保持しているときには暗号キーがあるので（Ｓ１２９；Ｙｅｓ）、ステップＳ１３１で暗号化処理を行う。
【００５４】
ステップＳ１３１では、秘匿データコードを暗号化する処理が行われる。この処理は、例えば、公知の視覚復号型暗号技術（視覚復号型秘密分散法）を用いて秘匿データコードを暗号化する。これにより、このような暗号化されていない平文データが付加されている場合に比べてセキュリティの強度を高めることができる。
【００５５】
例えば、図５(Ｄ) に示す例では、秘匿データコードαを構成する「暗号化データ」の部分が暗号化され、「開始桁」、「文字数」および「復号キー検査データ」も併せて生成される。最初に位置する「開始桁」は、当該暗号化された秘匿データの位置情報として、印刷データの先頭をゼロ番地とした場合に表現可能なアドレス値がこれに相当する。また次の「文字数」は、暗号化されている秘匿データの文字数である。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成された情報コードＳＱを、ＱＲコードリーダ等がデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。
【００５６】
最後に付加されている「復号キー検査データ」は、当該暗号を解読するのに用いる復号キーを特定可能な鍵特定情報で、暗号方式が暗号キーと復号キーとが同じ共通鍵暗号方式（「秘密鍵暗号方式」ともいう）の場合には、当該復号キー検査データは暗号キーも特定できる。これにより、本コード生成処理によって生成された情報コードＳＱを、ＱＲコードリーダ等がデコードする際に、秘匿データコードの復号キー（復号できる鍵）を容易に特定することができたり、復号キーであるか否かを判断することができる。
【００５７】
なお、秘匿データコードβについても秘匿データコードαと同様に構成され、「復号キー検査データ」として、秘匿データコードαを復号する復号キーと同じ情報を付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、他の復号キーを特定する「復号キー検査データ」を付加しても良い。これにより、本コード生成処理によって生成された情報コードＳＱを、ＱＲコードリーダ等がデコードする際に、各秘匿データコードごとに復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。
【００５８】
ステップＳ１３３では、データ長の直後に秘匿データコードを付加する処理が行われる。図５(Ｄ) に示す例では、秘匿データコードαおよび秘匿データコードβをデータ長の後に付加する。これにより、一般仕様の二次元コードの読取装置では、二次元コードのデコード処理において、終端識別コードの後に配置される埋め草コード等は読み取りの対象にしないため、このように終端識別コードの後に配置された秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードの存在はわからないので、当該読取装置の利用者には秘匿データの存在を認識させないようにすることが可能となる。
【００５９】
続くステップＳ１３５では、例えば、ＪＩＳの基本仕様（JIS X 0510:2004）に記載されている処理アルゴリズムに準拠して、秘匿データコードの後に埋め草コード（パッドデータ）を付加する処理が行われる。さらにステップＳ１３７では、誤り訂正コードを付加する処理が行われる。なお、ステップＳ１３７で付加される誤り訂正コードは、解読対象となるデータ（開示データコードや秘匿データコードなど）を公知の方法（例えばＪＩＳの基本仕様（JIS X 0510:2004）に記載されている誤り訂正コードの生成アルゴリズム）を用いて誤り訂正符号を生成しそれをコード化して誤り訂正コードを生成したものである。以上のような処理により図５(Ｃ) に示すフォーマットのデータコードが生成される。
【００６０】
そして、ステップＳ１３９では、ステップＳ１３７により生成されたデータコードに基づいて、各セルを生成し、図６に示すデータブロックに配置する処理が行われる。即ち、図６に示す１型のＱＲコードでは、１辺が２１セル（モジュール）の正方形状に構成されているため、三隅に設けられている位置検出パターンや形式情報（図６に示す斜線部分）、さらにはタイミングパターンを除いたコード領域に、８個のセルを４行２列に配置して構成されるデータブロックを２６ブロック（Ａ０〜Ａ２５）配置する。
【００６１】
例えば、図５(Ｃ) に示す例では、開示データコードＡをＡ０〜Ａ２、開示データコードＢをＡ３〜Ａ６に配置し、終端識別コードをＡ７に配置する。そして、この終端識別コードの後方で、通常は埋め草コードが配置される位置に相当するＡ８〜Ａ１７に、秘匿識別コード、データ長、秘匿識別コード等を配置する。
【００６２】
即ち、Ａ８に秘匿識別コードを配置し、その後のＡ９にデータ長を配置して、さらにこの後のＡ１０〜Ａ１３に秘匿データコードα、Ａ１４〜Ａ１７に秘匿データコードβをそれぞれ配置する。そして、通常のＱＲコードと同様に、誤り訂正コードを最後のＡ２０〜Ａ２５に配置して、この間の空いている部分であるＡ１８〜Ａ１９に埋め草コードを配置する。なお、Ａ１５およびＡ１８は、タイミングパターンを挟んで位置していることから、Ａ１５はＡ１５とＡ１５’とに、またＡ１８はＡ１８とＡ１８’とに分割されている。
【００６３】
なお、ステップＳ１３１において、図５(Ｅ) に示すように、「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。これにより、本コード生成処理によって生成された情報コードＳＱを、ＱＲコードリーダ等がデコードする際に、例えば、当該ＱＲコードリーダ等が秘匿データコードαの復号キーを持っていなくても、秘匿識別コードの存在を認識したときに当該秘匿識別コードの後ろのデータコードの解読を試みる構成となっていれば、秘匿データコードαを復号して元の平文に戻すことができる。
【００６４】
また、秘匿データコードβについても、同様に「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。付加する復号キーは、秘匿データコードαを復号する復号キーと同じものを付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、この他の暗号キーに対応する他の復号キーを付加しても良い。これにより、本コード生成処理によって生成された情報コードＳＱを、ＱＲコードリーダ等がデコードする際に、当該ＱＲコードリーダ等が、各秘匿データコードごとに対応するそれぞれの復号キーを持っていなくても、秘匿識別コードの存在を認識したときに当該秘匿識別コードの後ろのデータコードの解読を試みる構成となっていれば、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
【００６５】
また、ステップＳ１２３により、秘匿データが含まれていないと判断した場合であっても（フラグが「０」にセットされている場合：Ｓ１２３；Ｎｏ）、図５(Ｆ) に示すように、暗号化していない平文データの前に、ステップＳ１３１で付加した「開始桁」や「文字数」を付加する処理ステップを、ステップＳ１２３とステップＳ１３５との間に設けても良い。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成された情報コードＳＱを、ＱＲコードリーダ等がデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。
【００６６】
以上説明したように、上述の情報コード生成装置１によれば、ＭＰＵ１１により実行されるコード生成処理によって生成される情報コードＳＱでは、ステップＳ１３３により秘匿データコードが、埋め草コードの一部または全部に代えて、終端識別コードの後に配置されている。これにより、終端識別コードの後に配置された秘匿データコードは、一般仕様の読取装置では読み取りの対象にならないので、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからない。したがって、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。
【００６７】
よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。
【００６８】
なお、上述した例では、印刷装置１０により、ラベルＰに情報コードＳＱを印刷する例を挙げて説明したが、これに限られることはなく、情報コードＳＱを視覚的に表現可能なものであればよく、例えば、図４に示すコード生成処理をパソコン本体４により実行してディスプレイ３に情報コードＳＱを表示するように構成しても良い。この場合、図４のコード生成処理は、コンピュータプログラムとして概念できる。これにより、この二次元コードの生成プログラムにより二次元コードの生成装置として機能するコンピュータは、上述した印刷装置１０のＭＰＵ１１等と同様の作用および効果を奏する。
【００６９】
また、上述した例では、印刷装置１０に情報処理装置２を接続して当該情報処理装置２から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、印刷装置１０に接続する構成を採っても上述した作用および効果を得ることができる。
【００７０】
次に、情報コード読取装置２０の構成を説明する。
情報コード読取装置２０は、上述した情報コード生成装置１で生成され、媒体に表示される情報コードＳＱ（例えば印刷装置１０により印刷された情報コードＳＱ）をデコード可能な装置である。なお、情報コード読取装置２０によりデコード可能な情報コードＳＱの構成は、図５および図６を参照して既に説明しているので、ここでは説明を割愛する。また、この情報コード読取装置２０は、一般的な二次元コードＱＲ（終端識別コードの後に秘匿データが存在しない一般的なＱＲコード等）も読取可能とされている。以下、これら情報コードＳＱ及び一般的な二次元コードＱＲを含めて、情報コード読取装置２０による読み取り対象を情報コードＣと称する。
【００７１】
図７に示すように、情報コード読取装置２０は、主に、照明光源２１、受光センサ２３、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示器４６等のマイコン系と、電源スイッチ４１、バッテリ４９等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されており、ハードウェア的には一般仕様のＱＲコードリーダ（読取装置）と同様に構成されている。
【００７２】
光学系は、照明光源２１、受光センサ２３、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本構成では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、図略のケースの読取口を介してラベルＰに向けて照明光Ｌｆを照射可能に構成されている。このラベルＰには、上述した情報コードＣが印刷されている。
【００７３】
受光センサ２３は、ラベルＰや情報コードＣに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。受光センサ２３は、結像レンズ２７を介して入射する入射光をこの受光面２３ａで受光可能に図略のプリント配線板に実装されている。
【００７４】
結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
【００７５】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等から構成されている。このマイコン系は、その名の通り、マイコンとして機能し得る制御回路４０およびメモリ３５と中心に構成される。
【００７６】
光学系の受光センサ２３から出力される画像信号は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ３５に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００７７】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またＲＯＭには、後述するデコード処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００７８】
制御回路４０は、情報コード読取装置２０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなり、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置と接続可能に構成されており、本第２実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等が接続されている。
【００７９】
これにより、例えば、電源スイッチ４１や操作スイッチ４２の監視や管理、またインジケータとして機能するＬＥＤ４３の点灯・消灯、ビープ音やアラーム音を発生可能なブザー４４の鳴動のオンオフ、さらには読み取った情報コードＣによるコード内容を画面表示可能な液晶表示器４６の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース４８の通信制御等を可能にしている。なお、通信インタフェース４８に接続される外部装置には、当該情報コード読取装置２０の上位システムに相当するホストコンピュータＨＳＴ等が含まれる。また、通信インタフェース４８は、後述する情報端末６０（図１等）と無線ＬＡＮ通信、赤外線通信などの公知の無線通信方式或いは有線通信方式で通信を行い得るインタフェースとしても機能している。
【００８０】
電源系は、電源スイッチ４１、バッテリ４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、バッテリ４９から供給される駆動電圧の導通や遮断が制御されている。なお、バッテリ４９は、所定の直流電圧を発生可能な二次電池で、例えば、リチウムイオン電池等がこれに相当する。また、バッテリ４９によることなく、例えば、通信インタフェース４８を介して接続されるホストコンピュータＨＳＴ（管理装置８０）等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該バッテリ４９は不要となる。
【００８１】
このように情報コード読取装置２０を構成することによって、例えば、電源スイッチ４１がオンされて所定の自己診断処理等が正常終了し、情報コードＣの読み取りが可能な状態になると、照明光Ｌｆの発光を指示する操作スイッチ４２（例えばトリガースイッチ）の入力を受け付ける。これにより、利用者がトリガースイッチを引いてオンにすることで、制御回路４０が同期信号を基準に照明光源２１に発光信号を出力するので、当該発光信号を受けた照明光源２１は、ＬＥＤを発光させて照明光Ｌｆを照射する。
【００８２】
すると、情報コードＣに照射された照明光Ｌｆが反射し、その反射光Ｌｒが読取口を介して結像レンズ２７に入射するため、受光センサ２３の受光面２３ａには、情報コードＣの像が結像される。これにより、情報コードＣの像が受光センサ２３を露光するため、上述したマイコン系によって画像処理された当該情報コードＣの画像データが、メモリ３５の画像データ蓄積領域を介して、次に説明するデコード処理に渡される。
【００８３】
情報端末６０は、例えば据置型又は携帯型のコンピュータとして構成されている。なお、ハードウェア構成としては、デスクトップ型、ノート型、タブレット型などのパーソナルコンピュータとして構成されていてもよく、スマートフォンや携帯電話機などの情報処理端末として構成されていてもよい。なお、読取装置２０と通信可能に構成され、且つインターネットにアクセス可能な構成であれば他の種類の情報処理装置であってもよい。この情報端末６０は、少なくとも、ＣＰＵと、ＲＯＭ、ＲＡＭ、不揮発性メモリ、その他の記憶装置などからなる記憶部と、キーボタンやタッチパネルなどの入力デバイスからなる操作部と、液晶表示器などの公知の表示装置からなる表示部と、無線ＬＡＮ通信、赤外線通信などの公知の無線通信方式或いは公知の有線通信方式で通信を行う通信部とを備えている。
【００８４】
管理装置８０（本明細書では、管理装置８０を、ホストコンピュータＨＳＴとも称する）は、例えば公知のコンピュータとして構成されている。この管理装置８０は、少なくとも、ＣＰＵと、ＲＯＭ、ＲＡＭ、不揮発性メモリ、その他の記憶装置などからなる記憶部と、キーボタンやタッチパネルなどの入力デバイスからなる操作部と、液晶表示器などの公知の表示装置からなる表示部と、無線ＬＡＮ通信、赤外線通信などの公知の無線通信方式或いは公知の有線通信方式で通信を行う通信部とを備えている。なお、本構成は、例えば管理装置８０（ホストコンピュータＨＳＴ）から情報コード生成装置１に対して秘匿データの暗号化に用いる暗号化キーを渡し、この暗号化キーと同一の復号キーを管理装置８０から読取装置２０に渡すような構成であってもよい。
【００８５】
ここで、デコード処理を図８，図９および図１０を参照して説明する。なお、図８には、読取装置２０で行われるデコード処理の流れを示すフローチャートが図示されている。また図９には、図８のＳ２３に示す復号化処理の流れを示すフローチャートが図示されている。また、図１０には、図８のＳ２４に示すデータ転送処理の流れを示すフローチャートが図示されている。
【００８６】
図８に示すように、デコード処理は、例えば情報コード読取装置２０の電源投入により起動する制御回路４０およびメモリ３５によって開始され、まずステップＳ１１により初期設定処理が行われる。この処理は、メモリ３５の作業領域や画像データを蓄える画像データ蓄積領域をクリアしたり、所定のフラグやカウンタ等をクリアする。なお、ここで説明する情報コード読取装置２０は、ホストコンピュータＨＳＴ（管理装置８０）と接続されており、当該ホストコンピュータＨＳＴから設定データとして復号キーのデータを取得するものとする。
【００８７】
ステップＳ１２では、タイマーのカウント値をクリアする処理が行われる。このステップＳ１２でカウンタ値がクリアされるタイマーは、次のステップＳ１３により所定時間の経過を計時するものである。
【００８８】
ステップＳ１３では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、ホストコンピュータＨＳＴから送られてくる設定データに復号キー（復号化キー）のデータが含まれているか否かを次のステップＳ１４により判断する必要上、例えば、所定時間として５秒間が経過したか否かを判断し、この時間が経過するまでに、ホストコンピュータＨＳＴから暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップＳ１６に処理を移行する（Ｓ２０５；Ｙｅｓ）。
【００８９】
これに対し、所定時間が経過していない場合には（Ｓ１３；Ｎｏ）、次のステップＳ１４により復号キー（復号鍵）を受信したか否かを判断する処理が行われる。そして、復号キーを受信していると判断した場合には（Ｓ１４；Ｙｅｓ）、続くステップＳ１５に処理を移行し、受信していると判断できない場合には（Ｓ１４；Ｎｏ）、前述したステップＳ１３に処理を戻して、再度、時間の経過を判断する。なお、ホストコンピュータＨＳＴから送られてくる復号キー（復号化キー）は、例えばメモリ３５に記憶しておくことができる。この場合、メモリ３５が復号化キーを記憶する復号化キー記憶部の一例に相当する。
【００９０】
そして、所定時間が経過したとステップＳ１３により判断した場合には（Ｓ１３；Ｙｅｓ）、ステップＳ１６により所定のフラグ「Ｋｅｙ」の値を「０」をセットする。このフラグ「Ｋｅｙ」は、情報コードＳＱの秘匿データコードを復号キーで復号するか否かを示すもので、「０」がセットされている場合（Ｋｅｙ＝０の場合）には、復号キーで復号しないことを示し、「１」がセットされている場合（Ｋｅｙ＝１の場合）には、復号キーで復号することを示す。このため、Ｓ１４により復号キーを受信していると判断した場合には（Ｓ１４；Ｙｅｓ）、続くステップＳ１５によりこのフラグ「Ｋｅｙ」の値を「１」をセットする処理が行われる。
【００９１】
ステップＳ１５により所定のフラグ「Ｋｅｙ」の値を「１」をセットした後、又はステップＳ１６でフラグ「Ｋｅｙ」の値を「１」にセットした後には、続くステップ１７により、画像データを取得する処理が行われる。即ち、メモリ３５の画像データ蓄積領域から蓄えられている画像データを読み出す処理を行う。これにより、例えば、図６で概念的に示されるような情報コードＣのコード画像が得られる。
【００９２】
続くステップＳ１８では、位置検出パターンを検出する処理が行われる。即ち、情報コードＣは、図６に示すように、その三隅に位置検出パターンが設けられているため、これらを検出することによって、次のステップＳ１９により情報コードＣのコード外形を検出する。なお、このような三隅の位置検出パターンの検出、及びコード外形の検出はＱＲコード（登録商標）で行われる周知の方法を用いればよい。
【００９３】
そして、ステップＳ２０により各セルの中心座標を算出する処理を行うことによって次ステップＳ２１により各セルの白黒を判別する。これにより、図６に示す形式情報（図６に示す斜線部分）やデータブロックを認識可能になるので、続くステップＳ２２により、欠損等しているデータブロックがある場合には、そのブロックを誤り訂正可能であるか否かを判断する。
【００９４】
そして、ステップＳ２２により誤り訂正可能であると判断できる場合には（Ｓ２２；Ｙｅｓ）、誤り訂正をして続くステップＳ２３により復号化処理を行う。これに対し、ステップＳ２２により誤り訂正可能であると判断できない場合には（Ｓ２２；Ｎｏ）、誤り訂正できないので、ステップＳ１７に処理を移行して再度、画像データを取得してステップＳ１７〜Ｓ２２の各処理を行う。なお、これらステップＳ２０〜Ｓ２２の処理も、ＱＲコード（登録商標）で行われる周知の方法を用いればよい。
【００９５】
ステップＳ２３は、その詳細が図９に図示されているので、ここからは図９を参照して復号化処理を説明する。図９に示すように、復号化処理では、まずステップＳ３１により、フラグ「Encryption」「KeyError」の値をそれぞれ０（零）にセットする処理が行われる。そして、ステップＳ３２により、「n」「Len1」「Len2」の値をそれぞれ０（零）にセットする処理が行われる。
【００９６】
そして、ステップＳ３３では、カウンタｎが指すｎ番目のデータコードを取得する処理が行われる。そして、続くステップＳ３４では、ステップＳ３３により取得されたｎ番目のデータコードが、終端識別コードであるか否かを判断する処理が行われる。これにより、ステップＳ３３で取得した当該データコードが終端識別コードであると判断した場合には（Ｓ３４；Ｙｅｓ）、終端識別コードよりも前に配置される通常のデータコードはこれ以上、当該情報コードＣには含まれていないことになるので、ステップＳ４０に処理を移行する。
【００９７】
これに対し、ステップＳ３３で取得した当該データコードが終端識別コードであると判断できない場合には（Ｓ３４；Ｎｏ）、終端識別コードよりも前にまだ通常のデータコードが存在することになるので、続くステップＳ３５に処理を移行して次のデータコード、つまり（ｎ＋１）番目のデータコードのコード数（文字数）ｉを取得する。これは、図５(Ｄ) を参照して説明したように、データコードの２文字目相当の位置には、文字数が格納されていることに基づくもので、その詳細は、ＪＩＳの基本仕様（JIS X 0510:2004）の「8.4データの符号化」に記載されている。
【００９８】
ステップＳ３５によりコード数（文字数）ｉを取得すると、続くステップＳ３６では、この文字数（ｉ）分だけデータ数ｊを取得する処理が行われ、さらにステップＳ３７により当該データコード、つまり開示データコード（開示するデータを表すコード語としてコード化されたデータコード）を復号（デコード）する処理が行われる。
【００９９】
ステップＳ３７による当該データコードの復号処理が終わると、ステップＳ３８により、カウンタｎが次のデータコードを指すように「ｎ＋ｊ＋１」をカウンタｎに設定する処理が行われる。そして、ステップＳ３９により、現在の「Len1」の値に、Ｓ３５で取得した文字数ｉの値を加算する。このように、「Len1」は、終端識別コードまでにカウントされる文字数の累計を示すものであり、ステップＳ３４でＹｅｓに進む場合には、終端識別コードの直前までの総文字数が得られるようになっている。ステップＳ３９の後には、再びステップＳ３３に処理を戻してｎ番目のデータコードを取得する処理が行われる。
【０１００】
このように、ステップＳ３３〜Ｓ３９では、終端識別コードの前方（図５（Ｃ）のようなデータ列における終端識別コードよりもデータ先頭側）に配置されて元来デコードされる通常のデータコード（第１のデータコード、開示データコード）を取得してデコードする処理が行われる。これらの各ステップを実行する制御回路４０等は、「第１デコード部」の一例に相当し、コード列における終端識別コードよりも前の配置内容を解読するように機能する。
【０１０１】
ステップＳ４０は、前述した所定のフラグ「Key」に「１」がセットされているか否か、つまり情報コードＣの秘匿データコードを復号キーで復号するか否かを判断する処理が行われる。そして、当該フラグに「１」がセットされていない場合には（Ｓ４０；Ｎｏ）、復号キーで復号する必要がないため、本復号化処理を終了する。
【０１０２】
これに対し、所定のフラグ「Key」に「１」がセットされている場合には（Ｓ４０；Ｙｅｓ）、復号キーで復号する必要があるため、続くステップＳ４１に処理を移行してカウンタｎにｎ＋１を設定し、さらにステップＳ４２によりカウンタｎが指すｎ番目のデータコードを取得する処理が行われる。
【０１０３】
そして、続くステップＳ４３では、ステップＳ４２より取得されたｎ番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このステップＳ４３を実行する制御回路４０等は、「判断部」の一例に相当し、終端識別コードの後に秘匿データコードが配置されているか否かを判断するように機能する。つまり、Ｓ４３にて秘匿識別コードであると判断されれば、終端識別コードの後に秘匿データコードが配置されていることを特定でき、Ｓ４３にて秘匿識別コードであると判断されなければ、終端識別コードの後に秘匿データコードが配置されていないと特定できるため、Ｓ４３では、実質的にこのような判断を行っている。
【０１０４】
これにより、当該データコードが秘匿識別コードであると判断した場合には（Ｓ４３；Ｙｅｓ）、秘匿識別コードよりも後には、秘匿データコードが存在することになるので、続くステップＳ４４に処理を移行して次のデータコード、つまり（ｎ＋１）番目のデータコードの文字数（暗号数）ｉを取得する。これも、ステップＳ３５と同様に、データコードの２文字目相当の位置には、文字数が格納されていることに基づくものである。
【０１０５】
なお、ステップＳ４３により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータＨＳＴに対して当該情報コードＣには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータＨＳＴでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域（コード領域の空き部分）に、埋め草コード以外のもので秘匿データコードではないもの（例えばデータ化けにより埋め草コードに該当しなくなったもの）が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータＨＳＴに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。
【０１０６】
これに対し、当該データコードが秘匿識別コードであると判断できない場合には（Ｓ４３；Ｎｏ）、秘匿識別コードよりも後には、これ以上、秘匿データコードが当該情報コードＣには含まれていないことになるので、本復号化処理を終了する。
【０１０７】
ステップＳ４４により文字数（暗号数（暗号桁数ともいう））ｉを取得すると、続くステップＳ４５では、空きデータ領域（秘匿識別コードの後のデータ領域）から秘匿データコード等を取得する。そして、その中から、この暗号数（ｉ）分のデータ数ｊだけ秘匿データを取得する処理が行われる。さらにステップＳ４７では、カウンタｎが次のデータ、つまり復号キー検査データを指すように「ｎ＋１＋ｊ」をカウンタｎに設定する処理が行われた後、このｎ番目の復号キー検査データ（鍵特定情報）を取得する処理が行われる。
【０１０８】
そして、このステップＳ４７により取得した復号キー検査データに基づいて、先のステップＳ１４によりホストコンピュータＨＳＴから受信した復号キーがこのｎ番目の秘匿データコードの暗号化データを解読する鍵として適合しているか否か（即ち、ｎ番目の秘匿データコードを暗号化したときに用いた暗号キーが用意された復号キーに適合しているか否か）の判断をステップＳ４８により行う。ステップＳ４８において、当該復号キーが適合していると判断した場合には（Ｓ４８；Ｙｅｓ）、続くステップＳ４９により暗号化データ（秘匿データ）を解読する。
【０１０９】
なお、ここでの暗号化は、上述したように公知の視覚復号型暗号技術（視覚復号型秘密分散法）を用いたもので、これにより、秘匿データコードの暗号化データがこのような視覚復号型暗号技術により暗号化されている場合でも、復号して元の平文に戻すことができる。
【０１１０】
これに対して、ステップＳ４８において、復号キーが適合していると判断できない場合には（Ｓ４８；Ｎｏ）、ステップＳ５２において、「KeyError」の値を「１」にセットする。このように、「KeyError」の値は、読取装置２０に記憶された復号化キー（復号キー）が、秘匿データコードの暗号に用いた暗号化キー（暗号キー）に適合しているか否かを示す情報となっており、「KeyError」＝１のときには、読取装置２０に記憶された復号化キー（復号キー）が、秘匿データコードの暗号に用いた暗号化キー（暗号キー）に適合していなことを示している。
【０１１１】
ステップＳ５０では、秘匿データコードを復号する処理が行われる。即ちその前のステップＳ４９により暗号化データ（秘匿データ）を解読することができているので、このステップＳ４９により解読した暗号化データに基づいて秘匿データコードを復号（デコード）する。このとき、復号された文字数ｋも取得する。
【０１１２】
ステップＳ５０による復号処理が終わると、ステップＳ５１において、「Encryption」の値を１にセットする。このように、「Encryption」の値は、秘匿データコードが解読されたか否かを特定する情報となっており、１の場合は、秘匿データコードが解読されたことを示し、０の場合は、秘匿データコードが解読されていないことを示す。更に、Ｓ５１２では、「Len2」の値として、「Len1＋k」の値をセットする。
【０１１３】
このように、図９のＳ３４、４０以降の処理では、終端識別コードの後方に配置されて、本来はデコードされないデータコード（秘匿データコード）を取得してデコードする処理が行われる。これらの各ステップを実行する制御回路４０等は、「第２デコード部」の一例に相当し、判断部により秘匿データコードが配置されていると判断された場合に、秘匿データコードをデコードするように機能する。
【０１１４】
なお、図９の処理では、図１２のように、秘匿識別コード（秘匿識別子）の後に、１種類の秘匿データ（暗号化データ）が配置され、その秘匿データの前側に暗号桁数（文字数）が配置され、後側に復号キー検査データが配置された構成（即ち、図５（Ｃ）のようなデータ構成において、１種類の秘匿コードαが記録される構成）の情報コードＳＱを解読し得る流れを例示したが、図５（Ｃ）のように複数種類の秘匿コードが記録された情報コードＳＱを読み取ることを想定する場合、Ｓ４２〜Ｓ５０の処理を複数の秘匿コードに対して行い、各秘匿コードを解読するようにすればよい。
【０１１５】
以上説明したように、本構成に係る情報コード読取装置２０によると、本来、埋め草コードしか配置されない終端識別コードの後のコード領域（コード領域の空き部分）に、秘匿データコード（第２のデータコード）が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、上述した情報コード生成装置１によって生成された情報コードＳＱを、情報コード読取装置２０によりデコードすることができる。
【０１１６】
なお、上述したデコード処理では、復号キー検査データを取得するように構成したが、例えば、図５(Ｅ) を参照して説明したように復号キーそのものが秘匿データコードに付加されている場合には、Ｓ４７の処理に代えて復号キーを取得するように構成しても良い。
【０１１７】
また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップＳ４７に代えて、各復号キーを取得するように構成することで、秘匿データコードの復号キーを当該情報コード読取装置２０が持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
【０１１８】
次に、図８のＳ２４で行われるデータ転送処理について説明する。このデータ転送処理は、例えば図１０のような流れで行われるものであり、読取装置２０から、例えば他の情報端末６０へデータを転送する処理となっている。なお、転送相手となる情報端末６０は、読取装置２０において予め決められている特定装置であってもよく、図１０の処理時に読取装置２０と通信が確立している装置を対象としてもよい。
【０１１９】
この処理では、まず、「KeyError」の値が１であるか否かを判断する。「KeyError」が１の場合には、読取装置２０に記憶された復号化キー（復号キー）が、秘匿データコードの暗号に用いた暗号化キーに適合していなかったことを示しており、この場合、秘匿データコードが解読されていないことになる。このような場合、Ｓ６１にてＹｅｓに進み、Ｓ７２にてエラー処理を行う。ここでのエラー処理は、例えばブザー４４による発音などであってもよく、液晶表示器４６等の表示部によるエラーメッセージの表示などであってもよい。或いは、ＬＥＤ４３の所定表示（例えば点滅等）であってもよい。
【０１２０】
一方、「KeyError」の値が０の場合には、Ｓ６１においてＮｏに進み、ｎの値を０に初期化する。そして、「ｃｐ」の値を、図９の復号化処理で得られた解読データ（読取結果）の先頭アドレスに設定する。
【０１２１】
そして、Ｓ６３では、「Encryption」の値が０であるか否かを判断する。「Encryption」の値が１の場合には、Ｓ６３でＮｏに進み、コードマークとしての「ＳＱ」の文字を転送する。つまり、図８で読み取ろうとする情報コードＣが、上述した生成装置１で生成された情報コードＳＱであり、図９の復号化処理で秘匿データコードが解読されている場合には、図９のＳ５１にて「Encryption」の値が１となっているため、Ｓ６４において、識別情報としての「ＳＱ」の文字を転送することになる。
【０１２２】
なお、本構成では、Ｓ６３、Ｓ６４等の処理を行う制御回路４０が「対応処理部」の一例に相当し、この例では、上述の「第２デコード部」によって秘匿データコードが解読された場合に、対応処理として、当該秘匿データコードの解読結果の出力を行い、且つこのような秘匿データコードの解読結果の出力と対応付けて所定の識別情報（「ＳＱ」のマーク）の出力を行うように機能している。
【０１２３】
一方、「Encryption」の値が０の場合には、Ｓ６３でＹｅｓに進み、コードマークとしての「ＱＲ」の文字を情報端末６０に転送する。つまり、図８で読み取ろうとする情報コードＣが、上述した秘匿データコードを含まない一般的なＱＲコード等の場合には、図９の処理のＳ４０でＮｏ又はＳ４３でＮｏと判定され、Ｓ５１の処理が実行されないため、この場合には、「Encryption」の値が初期値の０のままであるため、Ｓ６５において、「ＱＲ」の文字を情報端末６０に転送することになる。つまり、本構成では、図９の復号化処理において秘匿データコードが解読されている場合には第１識別情報として「ＳＱ」の文字が転送され、図９の復号化処理において秘匿データコードが解読されていない場合には第１識別情報と区別する第２識別情報して「ＱＲ」の文字が転送されるようになっている。
【０１２４】
Ｓ６４又はＳ６５の後には、Ｓ６６の処理を行い、ｎが「Len1」の値であるか否かを判断する。Ｓ６６でＮｏの場合には、Ｓ６７の処理を行い、ｎが「Len2」の値であるか否かを判断する。そして、Ｓ６７でＮｏの場合には、Ｓ７０において、アドレスｃｐのデータを情報端末６０に転送し、その後、ｎの値、及びｃｐの値をインクリメントする。この処理では、ｃｐで指定されるアドレスが開示データコードの読取結果の範囲であれば、Ｓ６６でＮｏ、Ｓ６７でＮｏ、Ｓ７０の処理が繰り返され、開示データコードの読取結果が順番に転送される。一方、ｎが「Len1」となった場合、つまり、開示データコードの読取結果を全て転送し終えた場合には、Ｓ６６にてＹｅｓに進み、秘匿データ開始識別子である「＜＜」のマークを転送する。そして、Ｓ６８の後に繰り返されるＳ７０の転送処理では、秘匿データコードの読取結果が順次転送されることになる。この処理では、Ｓ６８の後、ｃｐで指定されるアドレスが秘匿データコードの読取結果の範囲であれば、Ｓ６６でＮｏ、Ｓ６７でＮｏ、Ｓ７０の処理が繰り返され、秘匿データコードの読取結果が順番に転送される。そして、ｎが「Len2」となった場合、つまり、秘匿データコードの読取結果を全て転送し終えた場合には、Ｓ６７にてＹｅｓに進み、秘匿データ終端識別子である「＞＞」のマークを転送する。
【０１２５】
このように構成されているため、情報端末６０は、開示データコードの読取結果（開示データコードとして記録された開示データ）と、秘匿データ開始識別子と秘匿データ終端識別子とに囲まれた形の秘匿データコードの読取結果（秘匿データコードとして記録された秘匿データ）とを取得することになる。
【０１２６】
例えば、図１２の例では、情報コードＳＱのデータ配列が図１２のようになっており、「ＱＲコードの紹介サイトの情報」が開示データとして扱われ、開示データコードとして情報コードＳＱに記録されている。そして、「http://www.abcdef.com」といったサイトのアドレスが秘匿データとして扱われ、暗号化されて秘匿データコードとして情報コードＳＱに記録されている。読取装置２０が、このような情報コードＳＱを図８の処理によって解読し、図１０の処理で転送する場合、その転送データを受信する情報端末６０では、まず「ＳＱ」という識別情報を取得した後、開示データコードの読取結果、即ち、「ＱＲコードの紹介サイトの情報」を取得することになる。そして、その後、秘匿データである「＜＜http://www.abcdef.com＞＞」という情報を取得することになる。情報端末６０は、このように受信した一連のデータを解析することで「ＳＱ」という識別情報を検出することができ、受信データ内に秘匿データが存在することを把握できる。そして、「＜＜」「＞＞」の記号を検出することで、これらの記号の間に配列されるデータが秘匿データであることを特定することができる。つまり、「http://www.abcdef.com」が元々正規の秘匿データであったことを特定できるようになっている。一方、読取装置２０が図８の処理で読み取った情報コードＣが図１３のような一般的なＱＲコード（登録商標）の配列の場合、その読取結果を受信する情報端末６０では、まず「ＱＲ」という情報を取得した後、開示データコードの読取結果（図１３の例では、「http://www.abcdef.com」というアドレスデータ）を取得することになる。
【０１２７】
なお、図１４では、情報コードＳＱ及び一般的なＱＲコードにおいて共通で扱われるモード識別子（モード指示子）の例を示すものであり、本構成では、例えば「００００」のモード識別子を終端識別コードとして扱っている。また、情報コードＳＱ及び一般的なＱＲコードのいずれの場合でも、開示データ及び終端識別コードのデータフォーマットを同様の構成とすることができ、例えば図１３のように、開示データを構成する各データのデータ先頭側にモード識別子が割り当てられ、各データがどのようなモードであるかを特定できるようになっている。
【０１２８】
次に、情報端末６０で行われる接続処理について説明する。図１１に示す接続処理では、まずＳ８１において各種初期設定を行い、その後、読取装置２０からのデータ受信があったか否かの判断処理を行う（Ｓ８２）。初期設定完了後に読取装置２０からのデータ受信が無い場合には、Ｓ８２にてＮｏに進んで待機状態（読取装置２０からのデータ受信を待つ状態）を継続する。一方、初期設定完了後に読取装置２０からデータを受信した場合には、Ｓ８２にてＹｅｓに進み、データの終わりを示すターミネータを受信したか否かを判断する。ターミネータを受信するまでは、Ｓ８３でＮｏ、Ｓ８４の格納処理を繰り返すことになる。ターミネータを受信した場合（即ち、読取装置２０から送信される一連の送信データを全て受信した場合）には、Ｓ８３にてＹｅｓに進む。
【０１２９】
Ｓ８３にてＹｅｓに進む場合には、読取装置２０から受信したデータ（即ち、図９の転送処理で送信されたデータ）からコードマークを検出する、読取装置２０から受信したデータに含まれるコードマークが「ＳＱ」ではなく、「ＱＲ」の場合、このデータは秘匿データコードを解読したものではないため、この場合、Ｓ８６にてＮｏに進み、当該接続処理を終了する。即ち、読取装置２０から送られたデータが、秘匿データを含んだ情報コードＳＱを解読したものではなく、一般的な二次元コードＱＲを解読したデータの場合には、仮にこのデータにウェブサイトのアドレス（インターネット上のアドレス）を示すＵＲＬが含まれていても、当該ウェブサイトへの接続処理を行わないのである。
【０１３０】
一方、読取装置２０から受信したデータに含まれるコードマークが「ＳＱ」の場合、このデータは秘匿データコードを解読したものといえる。この場合、Ｓ８６にてＹｅｓに進み、受信データから秘匿データ識別子である「＜＜」「＞＞」を検出したか否かを判断する（Ｓ８７）。秘匿データ識別子が検出できた場合には、Ｓ８７にてＹｅｓに進み、この範囲のデータで特定されるインターネット上のウェブサイトのアドレス情報（ＵＲＬ）を抽出する（Ｓ８８）。秘匿データ識別子が検出できない場合には、Ｓ８７にてＮｏに進み、図１１の処理を終了する。その後、Ｓ８８で抽出されたアドレス情報で特定されるインターネット上のウェブサイトに接続し、その接続結果を表示画面等に表示する（Ｓ８９）。例えば、秘匿データ識別子である「＜＜」「＞＞」の間に配列されるアドレスが、特定の提供主体（例えば、企業、店舗、公共機関、個人、その他の主体）が提供するウェブサイトを示す場合、当該ウェブサイトで提供される画像を当該ウェブサイトから取得し、情報端末６０の表示部に表示する。このように、図１１の処理では、秘匿データコードから得られたアドレス情報（秘匿データ識別子が付されたアドレス）が存在しなければ、サイトへの接続がなされないようになっている。
【０１３１】
上述した情報コード読取装置２０では、第２デコード部に相当する制御回路４０によって秘匿データコードが解読された場合、対応処理部に相当する制御回路４０により、対応処理として、当該秘匿データコードの解読結果の出力を行うと共に、所定の識別情報（「ＳＱ」のマーク、及び「＜＜」「＞＞」のマーク）の出力を行うようになっている。このように、秘匿データコードの解読結果と識別情報とが対応付けて出力されるため、外部装置である情報端末６０では、出力されたデータが正規の秘匿データであるか否かをより正確に判別しやすくなる。
【０１３２】
また、対応処理部に相当する制御回路４０は、秘匿データコードが解読された場合に、その秘匿データコードを解読して得られた解読データのデータ配列の前側に識別情報としての前側識別情報（「＜＜」のマーク）を配置し、その解読データのデータ配列の後側に識別情報としての後側識別情報（「＞＞」のマーク）を配置したデータ構成の組合せデータ（例えば、＜＜http://www.abcdef.com＞＞というデータ構成を含むデータ）を出力している。この構成によれば、出力されるデータが正規の秘匿データであるか否かをより正確に判別可能としつつ、出力されるデータの中で、データ配列のどの範囲に正規の秘匿データが存在するのかをより詳細に特定しやすくなる。
【０１３３】
また、対応処理部に相当する制御回路４０は、秘匿データコードが解読されず、開示データコードが解読された場合には、識別情報としての「ＳＱ」のマークを対応付けずに、別の情報として「ＱＲ」のマークを対応付けて、この開示データコードの解読結果（即ち、コード列における終端識別コードよりも前の配置内容の解読結果）を出力している。このように構成されているため、出力データにおいて「ＳＱ」のマークが対応付けられていなければ、或いは「ＱＲ」のマークが対応付けられていれば、その出力データに正規の秘匿データが含まれていないことを特定できる。
【０１３４】
なお、対応処理部に相当する制御回路４０は、図８、図９の処理において、秘匿データコードが解読された場合に、秘匿データコードを解読した解読データと識別情報（「ＳＱ」のマーク、及び「＜＜」「＞＞」のマーク）とを対応付けてメモリ３５（記憶部）や読取装置２０に接続された外部記憶装置などに記憶しておくようにしてもよい。即ち、上述の例で秘匿データコードが解読された場合にＳ２４で送信されるデータと同様のデータをメモリ３５に記憶しておくようにしてもよい。このように秘匿データコードが解読された場合に秘匿データコードの解読データに対して識別情報が対応付けられて記憶されるようにしても、記憶データが正規の秘匿データであるか否かを迅速且つ確実に判別しやすくなる。
【０１３５】
また、対応処理部に相当する制御回路４０は、図８、図９の処理において秘匿データコードが解読されず、開示データコードが解読された場合には、識別情報としての「ＳＱ」のマークを対応付けずに、別の情報として「ＱＲ」のマークを対応付けて、この開示データコードの解読結果（即ち、コード列における終端識別コードよりも前の配置内容の解読結果）をメモリ３５（記憶部）や読取装置２０に接続された外部記憶装置などに記憶しておくようにしてもよい。このようにすると、記憶データにおいて「ＳＱ」のマークが対応付けられていなければ、或いは「ＱＲ」のマークが対応付けられていれば、その記憶データに正規の秘匿データが含まれていないことを特定できる。
【０１３６】
なお、上述した例では、秘匿データコードが解読された場合の対応処理の例として、当該秘匿データコードの解読結果の出力、又は解読結果の記憶を例示したが、秘匿データコードの解読結果に応じた処理を行うようになっていてもよい。「秘匿データコードの解読結果に応じた処理」は、秘匿データコードの解読結果に含まれるコマンドの実行などであってもよい。例えば、秘匿データコードの内容として、上述のアドレス情報と、「情報端末６０への送信」を示すコマンドが記録されていた場合、このコマンドに従って、図１０のような処理を行い、アドレス情報と識別情報とを対応付けて情報端末６０に送信するようにしてもよい。また、秘匿データコードの内容として、所定情報と「メモリ３５への記憶」を示すコマンドが記録されていた場合、このコマンドに従って、上記所定情報と識別情報とを対応付けてメモリ３５に記憶するようにしてもよい。この場合、メモリ３５に記憶された所定情報が正規の秘匿データであったことを後から特定できるようになる。
【０１３７】
また、本構成では、所定のネットワーク内の各サイトに接続する情報端末６０（接続部）を備え、情報コード生成装置１は、ネットワーク内でのアドレスを特定するアドレス情報を含む構成で秘匿データコードを生成している。一方、読取装置２０の対応処理部は、第２デコード部によって秘匿データコードが解読された場合に、少なくともアドレス情報と識別情報とを対応付けて情報端末６０に出力し、情報端末６０（接続部）は、アドレス情報と識別情報とが対応付けて出力されることを条件として、アドレス情報によって特定されるサイトに接続する構成となっている。
この構成では、対応処理部によって出力されるデータにおいてアドレス情報と識別情報とが対応付けられている場合に限り、情報端末６０（接続部）は、そのアドレス情報で特定されるサイトへアクセスする。逆に、出力されるデータが正規の秘匿データでない場合には、このような不正データで特定されるサイトへのアクセスを制限することができる。
このような技術を用いれば、例えば秘匿データが記録された情報コードの上に、別のサイトのアドレスが記録された他の二次元コードが貼り付けられ、別のサイトへ誘導するような不正が行われたとしても、識別情報が対応付けられていない限り情報端末６０（接続部）による別のサイトへのアクセスが行われなくなる。従って、このような不正誘導によるアクセスをより効果的に防ぐことができる。
【０１３８】
また、情報コード生成装置１は、秘匿するデータを所定の暗号化キーに基づいて暗号化し且つコード化することで秘匿データコードを生成している。そして、情報コード読取装置は、復号化キーを記憶するメモリ３５（復号化キー記憶部）を備え、第２デコード部に相当する制御回路４０は、秘匿データコードが配置されていると判断された場合、メモリ３５（復号化キー記憶部）に記憶された復号化キーを用いて秘匿データコードの暗号解読を試み、復号化キーを用いた暗号解読が成功した場合には上記対応処理を行い且つ識別情報の出力又は記憶を行い、復号化キーを用いた暗号解読が失敗した場合には所定の報知処理（Ｓ７２の処理）を行う構成となっている。
この構成では、例えば読取装置２０に記憶された復号化キーが正規のキーでない場合など、暗号解読が失敗する場合に所定の報知処理が行われるため、利用者はこの報知により、対応処理が正常に行われないこと、及びその原因を把握しやすくなる。
【０１３９】
［他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【０１４０】
図１等の構成では、情報コード生成装置１と情報コード読取装置２０が別々の装置として構成された例を示しているが、情報コード生成装置１が情報コード読取装置２０として構成されていてもよい。
【０１４１】
上記実施形態では、読取装置２０とは異なる情報端末６０が接続部として構成されていたが、読取装置２０の一部（制御回路４０及び通信インタフェース４８）が接続部として構成されていてもよい。即ち、読取装置２０の内部に、図１１のような処理を行うプログラムが記憶され、このプログラムを制御回路４０が実行するような構成であってもよい。この場合、図１０での「転送」という部分は、当該プログラムへの受け渡しという概念に置き換えればよい。また、図１１の「受信」という部分は、読取装置２０での読み出しという概念に置き換えればよい。この場合、読取装置２０の対応処理部に相当する制御回路４０は、秘匿データコードが解読された場合に、少なくともアドレス情報と識別情報とを対応付けてメモリ３５に記憶しておけばよい。そして、読取装置２０において、図１１の処理を行うプログラムが起動されたときに、メモリ３５内にアドレス情報と識別情報とが対応付けて記憶されている場合に、当該プログラムにより、そのアドレス情報によって特定されるサイトに接続する構成となっていてもよい。
【０１４２】
情報コード生成装置１が情報コードＳＱを印刷して形成する例を示したが、情報コードＳＱは印刷されていなくてもよい。例えば情報コード生成装置１は、情報コードＳＱの画像を表示するための画像データを生成するものであってもよく、この場合、生成された情報コードＳＱを、データ送信や記憶メディアを介したデータ移行によって表示媒体（表示装置を備えた携帯型情報端末や据置型情報端末）に取得させ、当該表示媒体で情報コードＳＱを表示させるようにすればよい。また、情報コード生成装置１は、図４の処理で生成された情報コードＳＱを、公知のダイレクトマーキング加工によって物体にマーキングするような構成であってもよい。
【０１４３】
上記実施形態では、情報コード生成装置１が生成する情報コードＳＱとして、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、コード領域に配置された開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置した例を示したが、この例に限定されない。例えば、情報コード生成装置１が生成する情報コードＳＱは、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する構成となっていてもよい。この場合、秘匿するデータを表すコード語としてコード化された秘匿データコードは、終端識別情報により特定される終端位置の後、に配置されていればよい。
終端識別情報の例は様々に考えられるが、第１実施形態の終端識別コードに代えて、例えば全ての開示データコードのデータ長を算出することによって得られる「開示データコードがなすコード列の終端位置」を特定できる終端位置データ（即ち、終端位置までのデータの長さを特定できるデータ）を開示データコードの先頭に配置または付加しても良い。このようにすることで、開示データコードの終端位置までのデータの長さ、及び範囲が特定でき、開示データコードの終わりの位置（終端位置）を把握することができる。この方法では、情報コードＳＱ内に秘匿データコードを含ませる場合、終端識別情報（終端位置データ）で特定される終端位置に続けて秘匿識別コード等を付加した後、その後に、上記実施形態と同様の秘匿識別コードを配置すればよい。
【０１４４】
情報コードＳＱには、終端識別コードの後、又は終端識別情報により特定される終端位置の後に配置される秘匿データコードは、秘匿するデータを表すコード語としてコード化された上述の秘匿データコードそのものであってもよく、上述の秘匿データコードに所定の加工を施したものであってもよい。この所定の加工としては、秘匿データを構成するビットの並替え、秘匿データを構成するビットの分散配置、秘匿データを構成するビットにより特定されるデータ値の変換などが挙げられる。このような場合でも、読取装置２０側でその加工方法が特定できれば、秘匿データコードを解読することが可能となる。
【符号の説明】
【０１４５】
１…情報コード生成装置
２０…情報コード読取装置
３５…メモリ（記憶部、復号化キー記憶部）
４０…制御回路（第１デコード部、判断部、第２デコード部、対応処理部）
６０…情報端末（接続部）
１００…情報コード利用システム
ＳＱ…情報コード
【図１】
2015022436.tif 000003
【図２】
2015022436.tif 000004
【図３】
2015022436.tif 000005
【図４】
2015022436.tif 000006
【図５】
2015022436.tif 000007
【図６】
2015022436.tif 000008
【図７】
2015022436.tif 000009
【図８】
2015022436.tif 000010
【図９】
2015022436.tif 000011
【図１０】
2015022436.tif 000012
【図１１】
2015022436.tif 000013
【図１２】
2015022436.tif 000014
【図１３】
2015022436.tif 000015
【図１４】
2015022436.tif 000016