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