(57)【特許請求の範囲】
【請求項１】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、
前記置換後データブロックに基づいて二次元コードを生成することと、
を含み、
前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、
前記置換後データブロックにおいて、前記第２データコード語の一部が前記ヘッダデータコード語で置換されており、
前記第２データコード語には、当該第２データコード語に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれていることを特徴とする二次元コード生成方法。
【請求項２】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、
前記置換後データブロックに基づいて二次元コードを生成することと、
を含み、
前記第１データコード語の一部に、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を含むことを特徴とする二次元コード生成方法。
【請求項３】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、
前記置換後データブロックに基づいて二次元コードを生成することと、
を含み、
前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、
前記第１データコード語の一部に、前記置換後データブロックにおける前記ヘッダデータコード語の配置情報を含むヘッダ位置データコード語を含むことを特徴とする二次元コード生成方法。
【請求項４】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、
前記置換後データブロックに基づいて二次元コードを生成することと、
を含み、
前記二次元コードは所定のマスクパターンでマスキングされており、
前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第２データコード語で置換することを含むことを特徴とする二次元コード生成方法。
【請求項５】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、
前記置換後データブロックに基づいて二次元コードを生成することと、
を含み、
前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、
前記二次元コードは所定のマスクパターンでマスキングされており、
前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第２データコード語で置換することを含むことを特徴とする二次元コード生成方法。
【請求項６】
請求項４または請求項５に記載の二次元コード生成方法であって、
前記二次元コードはＱＲコードであり、
前記マスクパターン参照子は、前記ＱＲコードの形式情報に含まれることを特徴とする二次元コード生成方法。
【請求項７】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、
前記置換後データブロックに基づいて二次元コードを生成することと、
を含み、
前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第２データコード語で置換することを含むことを特徴とする二次元コード生成方法。
【請求項８】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、
前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、
前記置換後データブロックに基づいて二次元コードを生成することと、
を含み、
前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、
前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第２データコード語で置換することを含むことを特徴とする二次元コード生成方法。
【請求項９】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、
前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、
を含み、
前記置換後データブロックはヘッダデータコード語を含み、
前記所定の位置は前記ヘッダデータコード語に基づいて特定され、
前記置換後データブロックにおいて、前記第２データコード語の一部が前記ヘッダデータコード語で置換されており、
前記第２データコード語には、自己に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれており、
前記第２の情報を求めることは、前記ヘッダデータコード語に基づいて前記所定の位置を特定し、特定した前記所定の位置から前記ヘッダデータコード語で一部が置換された前記第２データコード語を求め、前記第２データコード語における誤り訂正コード語に基づいて前記第２データコード語を訂正し、訂正した第２データコード語から前記第２の情報を求めることを含むことを特徴とする二次元コード読み取り方法。
【請求項１０】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、
前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、
を含み、
前記第１データコード語の一部にヘッダデータコード語を含んでおり、
前記第２の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第２データコード語の位置を特定して前記第２データコード語を求め、前記第２データコード語から前記第２の情報を求めることを含むことを特徴とする二次元コード読み取り方法。
【請求項１１】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、
前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、
を含み、
前記置換後データブロックはヘッダデータコード語を含み、
前記所定の位置は前記ヘッダデータコード語に基づいて特定され、
前記第１データコード語の一部に前記ヘッダデータコード語の配置位置を示すヘッダ位置データコード語を含んでおり、
前記第２の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記第１データコード語に含まれる前記ヘッダ位置データコード語を求め、抽出した前記ヘッダ位置データコード語に基づいて前記ヘッダデータコード語の位置を特定して前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第２データコード語の位置を特定して前記第２データコード語を求め、前記第２データコード語から前記第２の情報を求めることを含むことを特徴とする二次元コード読み取り方法。
【請求項１２】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、
前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、
を含み、
前記二次元コードは所定のマスクパターンでマスキングされており、
前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第２データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
【請求項１３】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、
前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、
を含み、
前記置換後データブロックはヘッダデータコード語を含み、
前記所定の位置は前記ヘッダデータコード語に基づいて特定され、
前記二次元コードは所定のマスクパターンでマスキングされており、
前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第２データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
【請求項１４】
請求項１２または請求項１３に記載の二次元コード読み取り方法であって、
前記二次元コードはＱＲコードであり、
前記マスクパターン参照子は、前記ＱＲコードの形式情報に含まれることを特徴とする二次元コード読み取り方法。
【請求項１５】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、
前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、
を含み、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第２データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
【請求項１６】
第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、
前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、
を含み、
前記置換後データブロックはヘッダデータコード語を含み、
前記所定の位置は前記ヘッダデータコード語に基づいて特定され、
前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第２データコード語を抽出することを含むことを特徴とする二次元コード読み取り方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を図形で表現する二次元コードに秘匿情報を隠蔽する技術に関する。
【背景技術】
【０００２】
図形コードを読み取り、そこに含まれる情報を取り出す二次元コードの技術として、たとえば、日本工業規格 JIS X 0510 : 2004「二次元コードシンボル−ＱＲコード−」がある。そして、さらにこのような二次元コードに開示対象情報以外の秘匿情報を隠蔽する技術が開発されている。そして、このように見た目は標準的な二次元コードに秘匿情報を隠蔽することで、暗号鍵情報や個人情報などの取り扱いを必要とする産業応用への途が開かれてきた。【０００３】
特許文献１には、明暗パターンからなるマトリクス状の暗号化二次元コードにおいて、基準となる形状や濃度と異なる変形セルによって復号のための鍵を表現する技術が開示されている。【０００４】
特許文献２には、暗号化二次元コードの解読鍵コードパターンを形成された二次元コードパターン上のデータコード語領域および訂正コード語領域のパターンの少なくとも一方に上書きした構成で重複する技術が開示されている。【０００５】
特許文献３には、開示するデータを表すコード語としてコード化されたデータコード語の総数が二次元コード生成のための所定のコード語総数よりも小さい場合に、上記コード領域の後ろに終端符号を置き、本来終端符号のあとに置かれるパディングコード（埋め草コード）の一部に代えて秘匿データコードを配置してコード図形を生成することが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−４３７８号公報
【特許文献２】特開２００９−９３４４３号公報
【特許文献３】特開２００９−９５４７号公報
【非特許文献１】日本工業規格ＪＩＳ  Ｘ  ０５１０：２００４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１及び特許文献２の技術では、隠蔽される情報である復号鍵情報がコードパターンの図形上において元のコードのそれとは異なる「変形セル」や「明暗パターン」として生成される。そして、図形上において対象となる所定の領域または位置での置き換え（すなわち、上書き）操作がなされる。【０００８】
これら技術において、二次元コードの復号化に利用される鍵情報そのものは暗号化されない。そのため、同一の暗号鍵を適用するコード生成体系を持つ場合には、同一の「パターン」が同じ場所に現れる。よって、図形としてのコードパターンを注意深く観察することで情報パターンの隠蔽が疑われる可能性がある。このことは、異形の「変形セル」の場合も同様である。【０００９】
また、上記鍵の「パターン」の置かれる場所がコード図形上の複数の場所にあったとしても、図形パターン上に上書きで置き換えられる方式のために、置き換え場所が図形パターン上での位置があらかじめ規定されている。そのため、同一の鍵情報が適用された二次元コードのサンプルを複数重ね合わせることで「不動な箇所」を認識できてしまう。【００１０】
また、上記技術では、エンコード処理において、上書きするためのパターン図形を生成するための特別な処理が別途必要となる。このような処理は、複雑であり、処理の高速化に際して障害となる。【００１１】
特許文献３では、開示するデータを表すコード語としてコード化されたデータコード語の総数が二次元コード生成のための所定のコード語総数よりも小さい場合に、上記コード領域の後ろに終端符号を置き、本来終端符号のあとに置かれるパディングコード（埋め草コード）の一部に代えて秘匿データコードを配置してコード図形を生成することが開示されている。【００１２】
上記技術によれば、本来パディングコードとして規定されるコードパターンとは別のデータコードがパディングコード領域に配置されることになる。そのため、このようなコードは、非特許文献１のようなパディングコードのコードパターンが規定されるような規格に基づいたコード形式に準ずる標準汎用のデコーダからすれば、規格外の形式のコードとなる。そうすると、本来表示対象ではないデータ領域に規定外のデータコードが混入することになるから、標準汎用のデコーダにおいて想定外の挙動を示す恐れがある。【００１３】
また、開示する情報量よりサイズの大きな情報の場合はもとより、それと同程度のサイズの情報を秘匿する場合、標準のデコード処理で得られるはずの開示情報量と比較して不釣合いに大きなサイズの二次元コードとなることがある。そうすると、この二次元コードの利用者に不信感を与えたり情報秘匿を疑わせ得ることになる。【００１４】
以上のようなことから、開示対象である情報の他に秘匿対象である情報を隠蔽することができる新たな二次元コードが望まれる。また、この新たな二次元コードについて、適切に秘匿対象である情報を読み取ることが望まれる。【００１５】
本発明は、このような事情に鑑みてなされたものであり、開示対象である情報の他に秘匿対象である情報を隠蔽することのできる二次元コードを提供することを目的とする。また、新たな二次元コードから適切に秘匿対象である情報を読み取ることを目的とする。
【課題を解決するための手段】
【００２１】
このような目的を達成するために本発明に係る二次元コード生成方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含み、前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、前記置換後データブロックにおいて、前記第２データコード語の一部が前記ヘッダデータコード語で置換されており、前記第２データコード語には、当該第２データコード語に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれている。
このようにして生成された二次元コードによれば、ヘッダデータコード語に基づいて第２データコード語の位置を特定することができるとともに、第２データコード語は誤り訂正コードにおいてヘッダデータコード語で置換された部分の訂正を行うことができる。これにより、第２データコード語から適切に第２の情報を求めることができる。
【００２２】
また、本発明に係る二次元コード生成方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含み、前記第１データコード語の一部に、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を含む。
このようにして生成された二次元コードによれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第１データコード語を求めることができる。そして、第１データコード語に含まれるヘッダデータコード語に基づいて、置換後データブロックにおける第２データコード語の位置を特定することができる。このようにすることで、第２データコード語を適切に抽出し、第２データコード語から第２の情報を抽出することができる。これにより、より隠蔽性を高めることもできる。
【００２３】
また、本発明に係る二次元コード生成方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含み、前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、
前記第１データコード語の一部に、前記置換後データブロックにおける前記ヘッダデータコード語の配置情報を含むヘッダ位置データコード語を含む。
このようにして生成された二次元コードによれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第１データコード語を求めることができる。そして、第１データコード語に含まれるヘッダ位置データコード語に基づいて、置換後データブロックに含まれるヘッダデータコード語の位置を特定することができる。さらに、特定したヘッダデータコード語の位置からヘッダデータコード語を抽出し、ヘッダデータコード語に基づいて、第２データコード語の位置を特定することができる。そして、第２データコード語に基づいて、第２の情報を抽出することができる。これにより、より隠蔽性を高めることもできる。
【００２４】
また、本発明に係る二次元コード生成方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含み、前記二次元コードは所定のマスクパターンでマスキングされており、前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第２データコード語で置換することを含む。
このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、第２データコード語で置換する位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有し得る。そのため、適用されるマスクパターンに応じて第２データコード語で置換する位置も変化させることができる。これにより、第三者にとっては第２データコード語の位置を特定することが困難となり、第２データコード語に含まれる第２の情報の抽出をより困難なものとすることができる。
【００２５】
また、本発明に係る二次元コード生成方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含み、前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、前記二次元コードは所定のマスクパターンでマスキングされており、前記置換後データブロックを求めることは、前記所定のマスクパターンを特定するマスクパターン参照子に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第２データコード語で置換することを含む。
このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、ヘッダデータコード語で置換する位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有しうる。そのため、適用されるマスクパターンに応じてヘッダデータコード語で置換する位置も変化させることができる。これにより、第三者にとってはヘッダデータコード語の位置の特定すら困難となる。第２データコード語の位置はヘッダデータコード語で特定されるものであるため、第２データコード語の抽出をより困難なものとすることができる。
【００２６】
また、前記二次元コードはＱＲコードであり、前記マスクパターン参照子は、前記ＱＲコードの形式情報に含まれることが望ましい。
ＱＲコードにおける形式情報は、ＪＩＳ規格において標準マスクパターン（所定のマスクパターン）でマスキングされない。そのため、ＱＲコードを読み出すことで適切に形式情報に含まれるマスクパターン参照子を読み出すことができる。そして、マスクパターン参照子で特定される所定のマスクパターンを用いて、マスキングを解除することができる。また、マスキングを解除した後に得られる置換後データコード語において、マスクパターン参照子を用いて第２データコード語の位置またはヘッダデータコード語の位置を適切に特定することができる。【００２７】
また、本発明に係る二次元コード生成方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含み、前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記第２データコード語で置換することを含む。
誤り訂正コード語は、第１データコード語に基づいて求められる。そのため、第１データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第１データコード語が異なれば置換位置も異なることとなるので、第三者にとっては第２データコード語の位置を特定することが困難となり、第２データ語に含まれる第２の情報の抽出をより困難なものとすることができる。
【００２８】
また、本発明に係る二次元コード生成方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックを求めることと、前記データブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックを求めることと、前記置換後データブロックに基づいて二次元コードを生成することと、を含み、前記置換後データブロックは、前記置換後データブロックにおける前記第２データコード語の配置情報を含むヘッダデータコード語を備え、前記置換後データブロックを求めることは、前記誤り訂正コード語に基づいて前記データブロックにおける置換位置を特定し、前記置換位置で前記データブロックの一部を前記ヘッダデータコード語で置換するとともに、前記ヘッダデータコード語で特定される位置で前記データブロックの一部を前記第２データコード語で置換することを含む。
誤り訂正コード語は、第１データコード語に基づいて求められる。そのため、第１データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第１データコード語が異なれば置換位置も異なることとなるので、第三者にとってはヘッダデータコード語の位置を特定することすら困難となる。第２データコード語の位置はヘッダデータコード語で特定されるものであるため、第２データコード語の抽出をより困難なものとすることができる。
【００３９】
また、本発明に係る二次元コード読み取り方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、を含み、前記置換後データブロックはヘッダデータコード語を含み、前記所定の位置は前記ヘッダデータコード語に基づいて特定され、前記置換後データブロックにおいて、前記第２データコード語の一部が前記ヘッダデータコード語で置換されており、前記第２データコード語には、自己に生じた誤りを検出し訂正しうる誤り訂正コード語が含まれており、前記第２の情報を求めることは、前記ヘッダデータコード語に基づいて前記所定の位置を特定し、特定した前記所定の位置から前記ヘッダデータコード語で一部が置換された前記第２データコード語を求め、前記第２データコード語における誤り訂正コード語に基づいて前記第２データコード語を訂正し、訂正した第２データコード語から前記第２の情報を求めることを含む。
このような二次元コード読み取り方法によれば、ヘッダデータコード語に基づいて第２データコード語の位置を特定することができるとともに、第２データコード語は誤り訂正コードにおいてヘッダデータコード語で置換された部分の訂正を行うことができる。これにより、第２データコード語から適切に第２の情報を求めることができる。
【００４０】
また、本発明に係る二次元コード読み取り方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、を含み、前記第１データコード語の一部にヘッダデータコード語を含んでおり、前記第２の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第２データコード語の位置を特定して前記第２データコード語を求め、前記第２データコード語から前記第２の情報を求めることを含む。
このような二次元コード読み取り方法によれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第１データコード語を求めることができる。そして、第１データコード語に含まれるヘッダデータコード語に基づいて、置換後データブロックにおける第２データコード語の位置を特定することができる。このようにすることで、第２データコード語を適切に抽出し、第２データコード語から第２の情報を抽出することができる。これにより、より隠蔽性を高めることができる。
【００４１】
また、本発明に係る二次元コード読み取り方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、を含み、前記置換後データブロックはヘッダデータコード語を含み、前記所定の位置は前記ヘッダデータコード語に基づいて特定され、前記第１データコード語の一部に前記ヘッダデータコード語の配置位置を示すヘッダ位置データコード語を含んでおり、前記第２の情報を求めることは、前記置換後データブロックを誤り訂正することにより前記第１データコード語に含まれる前記ヘッダ位置データコード語を求め、抽出した前記ヘッダ位置データコード語に基づいて前記ヘッダデータコード語の位置を特定して前記ヘッダデータコード語を求め、前記ヘッダデータコード語に基づいて前記置換後データブロックにおける前記第２データコード語の位置を特定して前記第２データコード語を求め、前記第２データコード語から前記第２の情報を求めることを含む。
このような二次元コード読み取り方法によれば、置換後データブロックに含まれる誤り訂正コード語に基づいて第１データコード語を求めることができる。そして、第１データコード語に含まれるヘッダ位置データコード語に基づいて、置換後データブロックに含まれるヘッダデータコード語の位置を特定することができる。さらに、特定したヘッダデータコード語の位置からヘッダデータコード語を抽出し、ヘッダデータコード語に基づいて、第２データコード語の位置を特定することができる。そして、第２データコード語に基づいて、第２の情報を抽出することができる。これにより、より隠蔽性を高めることができる。
【００４２】
また、本発明に係る二次元コード読み取り方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、を含み、前記二次元コードは所定のマスクパターンでマスキングされており、前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第２データコード語を抽出することを含む。
このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、第２データコード語で置換された位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有し得る。そのため、適用されるマスクパターンに応じて第２データコード語で置換される位置も変化させられる。これにより、第三者にとっては第２データコード語の位置を特定することが困難となり、第２データコード語に含まれる第２の情報の抽出をより困難なものとすることができる。
【００４３】
また、本発明に係る二次元コード読み取り方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、を含み、前記置換後データブロックはヘッダデータコード語を含み、前記所定の位置は前記ヘッダデータコード語に基づいて特定され、前記二次元コードは所定のマスクパターンでマスキングされており、前記二次元コードを読み取ることは、前記二次元コードに適用された前記所定のマスクパターンを特定するマスクパターン参照子を読み取ることを含み、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記マスクパターン参照子に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第２データコード語を抽出することを含む。
このようにすることで、二次元コードに適用されたマスクパターンを特定するマスクパターン参照子が、ヘッダデータコード語で置換する位置を特定することにも用いられる。マスクパターンは複数種類存在するためマスクパターン参照子も複数の値を有しうる。そのため、適用されるマスクパターンに応じてヘッダデータコード語で置換される位置も変化させられる。これにより、第三者にとってはヘッダデータコード語の位置の特定すら困難となる。第２データコード語の位置はヘッダデータコード語で特定されるものであるため、第２データコード語の抽出をより困難なものとすることができる。
【００４４】
また、本発明に係る二次元コード読み取り方法において、前記二次元コードはＱＲコードであり、前記マスクパターン参照子は、前記ＱＲコードの形式情報に含まれることが望ましい。
ＱＲコードにおける形式情報は、ＪＩＳ規格において標準マスクパターン（所定のマスクパターン）でマスキングされない。そのため、ＱＲコードを読み出すことで適切に形式情報に含まれるマスクパターン参照子を読み出すことができる。そして、マスクパターン参照子で特定される所定のマスクパターンを用いて、マスキングを解除することができる。また、マスキングを解除した後に得られる置換後データコード語において、マスクパターン参照子を用いて第２データコード語の位置またはヘッダデータコード語の位置を適切に特定することができる。【００４５】
また、本発明に係る二次元コード読み取り方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、を含み、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックにおける前記置換位置から前記第２データコード語を抽出することを含む。
誤り訂正コード語は、第１データコード語に基づいて求められる。そのため、第１データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第１データコード語が異なれば置換位置も異なることとなるので、第三者にとっては第２データコード語の位置を特定することが困難となり、第２データ語に含まれる第２の情報の抽出をより困難なものとすることができる。
【００４６】
また、本発明に係る二次元コード読み取り方法は、第１の情報を含む第１データコード語と、前記第１データコード語の誤りを検出し訂正しうる誤り訂正コード語と、を含むデータブロックの一部を第２の情報を含む第２データコード語で置換した置換後データブロックに基づいて生成された二次元コードを読み取ることと、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出し、当該第２データコード語から前記第２の情報を求めることと、前記置換後データブロックの誤り訂正を行うことにより前記第１データコード語を求め、当該第１データコード語から前記第１の情報を求めることと、を含み、前記置換後データブロックはヘッダデータコード語を含み、前記所定の位置は前記ヘッダデータコード語に基づいて特定され、前記置換後データブロックにおける所定の位置から前記第２データコード語を抽出することは、前記誤り訂正コード語に基づいて前記置換後データブロックにおける置換位置を特定し、前記置換後データブロックの前記置換位置から前記ヘッダデータコード語を抽出するとともに、前記置換後データブロックの前記ヘッダデータコード語で特定される位置から前記第２データコード語を抽出することを含む。
誤り訂正コード語は、第１データコード語に基づいて求められる。そのため、第１データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、第１データコード語が異なれば置換位置も異なることとなるので、第三者にとってはヘッダデータコード語の位置を特定することすら困難となる。第２データコード語の位置はヘッダデータコード語で特定されるものであるため、第２データコード語の抽出をより困難なものとすることができる。
【発明の効果】
【００５６】
以上のように構成された二次元コードによれば、第１データコード語及び誤り訂正コード語の一部が第２データコード語で置換されてしまうものの、第１データコード語については、訂正コード語を用いて訂正して復元することができる。また、第２データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後のデータブロックから抽出することができる。そして、抽出した第２データコード語に基づいて第２の情報を得ることができる。このとき、第２の情報に秘匿対象である情報を含ませることで、開示対象である情報の他に秘匿対象である情報を隠蔽することができる二次元コードを提供することができる。
また、以上のような二次元コード読み取り方法によれば、第１データコード語および訂正コード語の一部が第２データコード語で置換されているものの、第１データコード語については、訂正コード語を用いて訂正して復元することができる。また、第２データコード語については、二次元コードを直接読み込んで得られる誤り訂正処理前の置換後データブロックから第２データコード語を抽出することができる。そして、抽出した第２データコード語に基づいて第２の情報を得ることができる。このとき、第２の情報に秘匿対象である情報を含ませることもできる。そして、適切に秘匿対象である情報を読み取ることができる。
【図面の簡単な説明】
【００５７】
【図１】ＱＲコードシンボル１の説明図。
【図２】第１実施形態における拡張エンコーダ１０のブロック図である。
【図３】第１実施形態におけるＲＳブロックの概要図である。
【図４】第１実施形態におけるＱＲコードシンボル生成方法のフローチャートである。
【図５】ＲＳブロックの説明図である。
【図６】隠蔽情報語の説明図である。
【図７】第１実施形態による手法でＲＳブロックの一部を置換したときの第１の説明図である。
【図８】拡張デコーダ２０のブロック図である。
【図９】第１実施形態におけるＱＲコードシンボル読み取り方法のフローチャートである。
【図１０】隠蔽情報語の抽出方法の説明図である。
【図１１】情報本体の抽出方法の説明図である。
【図１２】第１実施形態における手法でＲＳブロックの一部を置換したときの第２の説明図である。
【図１３】第１実施形態における手法でＲＳブロックの一部を置換したときの第３の説明図である。
【図１４】第２実施形態におけるＲＳブロックの概念図である。
【図１５】第２実施形態におけるヘッダおよび隠蔽情報語の説明図である。
【図１６】第２実施形態による手法でＲＳブロックの一部を置換したときの第１の説明図である。
【図１７】第２実施形態による手法でＲＳブロックの一部を置換したときの第２の説明図である。
【図１８】第２実施形態による手法でＲＳブロックの一部を置換したときの第３の説明図である。
【図１９】第３実施形態による手法でＲＳブロックの一部を置換したときの説明図である。
【図２０】第４実施形態による手法でＲＳブロックの一部を置換したときの説明図である。
【図２１】第５実施形態による手法でＲＳブロックの一部を置換したときの説明図である。
【図２２】第６実施形態による手法でＲＳブロックの一部を置換したときの第１の説明図である。
【図２３】第６実施形態による手法でＲＳブロックの一部を置換したときの第２の説明図である。
【図２４】第６実施形態による手法でＲＳブロックの一部を置換したときの第３の説明図である。
【図２５】一部欠落したＲＳブロックの説明図である。
【図２６】先端欠落ＲＳブロックの補完の説明図である。
【図２７】後端欠落ＲＳブロックの補完の説明図である。
【図２８】両端欠落ＲＳブロックの補完の説明図である。
【図２９】第７実施形態におけるＱＲコードシンボル生成方法のフローチャートである。
【図３０】第７実施形態による手法でＲＳブロックの一部を置換したときの説明図である。
【図３１】第７実施形態におけるＱＲコードシンボル読み取り方法のフローチャートである。
【図３２】第８実施形態による手法でＲＳブロックの一部を置換したときの説明図である。
【図３３】第９実施形態による手法でＲＳブロックの一部を置換する手法を説明する第１の図である。
【図３４】第９実施形態による手法でＲＳブロックの一部を置換する手法を説明する第２の図である。
【発明を実施するための形態】
【００５８】
＝＝＝第１実施形態＝＝＝
以下に、第１実施形態における二次元コードについて説明を行う。ここでは、二次元コードの一例としてＱＲコードを採用して説明するが、二次元コードは、データマトリックスコード、マキシコード、ベリコード、カルラコード、ＣＰコード等であってもよい。
【００５９】
また、以下の説明で特段のことわりのない場合には、日本工業規格 JIS X 0510 : 2004「二次元コードシンボル−ＱＲコード−」（以下、単に「ＪＩＳ規格」ということがある）に準ずる。また、このＪＩＳ規格に準ずるエンコーダを標準エンコーダといい、ＪＩＳ規格に準ずるデコーダを標準デコーダという。また、第１実施形態における隠蔽情報を取り扱うことができるエンコーダを拡張エンコーダといい、デコーダを拡張デコーダという。そして、これらを区別する。
【００６０】
また、以下の説明において、「コード語」は、８ビット長として説明するが、システムに応じて、１６ビット長とすることもできるし、１ビット長など他の長さを有するものとすることもできる。
【００６１】
図１は、ＱＲコードシンボル１の説明図である。ＱＲコードシンボル１は、１型から４０型まで様々なサイズが用意されているが、ここでは、一例として型番「２」を例に各機能について説明する。
【００６２】
ＱＲコードシンボル１は、機能パターンと符号化領域を有する。機能パターンは、ＱＲコードのモジュール内での復号化を補助するために必要なＱＲコードシンボル位置の検索や特性の識別に必要なパターンである。符号化領域は、必要となる情報が書き込まれている領域である。
【００６３】
機能パターンは、位置検出パターンＦＰ、分離パターンＳＰ、タイミングパターンＴＰ、位置合わせパターンＡＰ、および、クワイエットゾーンＱＺを有する。
【００６４】
位置検出パターンＦＰは、ＱＲコードの少なくとも３つの隅に配置されるパターンである。読み取り時において、３つの位置検出パターンＦＰを識別することで、ＱＲコードシンボル１の方向や位置を正しく認識可能とする。
【００６５】
分離パターンＳＰは、位置検出パターンＦＰの周りに配置される１モジュール幅の明モジュールである。これにより、位置検出パターンＦＰをＱＲコードシンボル１から区別することができるようになる。
【００６６】
モジュールＭは、ＱＲコードシンボル１を構成する単位セルである。原則として、１ビットが１モジュールに相当する。
【００６７】
タイミングパターンＴＰは、暗モジュールと明モジュールが１モジュールずつ直線状に交互に配置されたパターンである。タイミングパターンＴＰによって、ＱＲコードシンボル１のモジュール数を認識可能となるため、これによりＱＲコードの型番を識別することができる。
【００６８】
位置合わせパターンＡＰは、ＱＲコードの型番によって決められた位置に配置されるパターンである。位置合わせパターンＡＰは、大きなモジュールの場合、ＱＲコードシンボル１の位置の検索を補助する働きをする。
【００６９】
クワイエットゾーンＱＺは、ＱＲコードの周囲に設けられる最低４モジュール幅の明モジュール領域である。
【００７０】
符号化領域は、データおよび誤り訂正コード語と、形式情報ＦＩと、型番情報ＶＩを有する。データおよび誤り訂正コード語は、実際のデータおよびデータが読み取れなかった場合の誤り訂正用の誤り訂正コード語を配置する。形式情報ＦＩは、ＱＲコードシンボル１に適用する誤り訂正レベルおよび使用するマスク処理パターンに関する情報を有し、符号化領域を復号化するのに必要な符号化パターンである。型番情報ＶＩは、ＱＲコードの型番の情報を有する。
【００７１】
図２は、第１実施形態における拡張エンコーダ１０のブロック図である。拡張エンコーダ１０は、表示対象である情報と隠蔽情報とをＱＲコードシンボル１に変換する装置である。拡張エンコーダ１０は、制御部１１と表示装置１３と印刷装置１４と入力装置１５を備える。
【００７２】
制御部１１は、演算部１１ａと記憶部１１ｂを備える。演算部１１ａは中央演算装置等からなり、プログラムの実行および種々の演算を担う。記憶部１１ｂは、プログラムの実行に際して、必要なデータの記憶を担う。特に、記憶部１１ｂには、後述するＱＲコード生成方法を実行するためのプログラムが記憶されている。
【００７３】
表示装置１３は、データの入力等に際し必要な表示機能を担う。また、表示装置１３は、生成されたＱＲコードシンボル１を表示により出力する。印刷装置１４も、生成されたＱＲコードシンボル１を印刷により出力する。また、入力装置１５は、データの入力および拡張エンコーダ１０の操作に使用される。
【００７４】
拡張エンコーダ１０の構成は、一般的なコンピュータ、携帯電話、および、スマートフォン等に、後述するＱＲコード生成方法を実行するためのプログラムをインストールすることによって実現することができる。
【００７５】
図３は、第１実施形態におけるＲＳブロックの概要図である。まず、図３を参照しつつ、第１実施形態におけるＱＲコードのデータフォーマットの概要について説明する。図３には、誤り訂正処理単位として、ＲＳ（リード・ソロモン）ブロックが示されている。ＱＲコードシンボル１には、１または複数のＲＳブロックが含まれる。そして、ＲＳブロックを１つの誤り訂正処理単位としている。
【００７６】
なお、ここで説明する実施形態においては、リード・ソロモン（ＲＳ）符号による誤り訂正方式を採用しているため、誤り検出訂正演算の処理単位ブロックの一例として、「ＲＳブロック」と記載している。
【００７７】
ＲＳブロックは、表示対象である情報本体と、終端符号と、パディングコード語とを有するデータコード語（第１データコード語に相当する）を含む。また、ＲＳブロックは、訂正コード語としてのＲＳ（リード・ソロモン）符号（訂正コード語に相当する）を含む。情報本体とは、標準デコーダであってもＱＲコードシンボル１を読み取ったときにデコード可能な情報である。終端符号は、情報本体の終端を表す符号である。パディングコード語は、情報本体のコード語の総数がＱＲコードシンボル１の容量に満たない場合、空のコード語部分を充填する目的で使用される仮のコード語である。ＲＳ符号は、ＲＳブロックを単位として誤り訂正するために付加される符号である。
【００７８】
ＱＲコードでは、「Ｌ」「Ｍ」「Ｑ」「Ｈ」の４段階の誤り訂正レベルが選択可能である。誤り訂正レベル「Ｌ」では、全体の語数に対して７％の誤り訂正能力を有する。例えば、ＲＳブロックの語数を１００％とした場合、そのうちの７％の誤り訂正能力を有する。誤り訂正レベル「Ｍ」では、全体の語数に対して１５％の訂正能力を有する。誤り訂正レベル「Ｑ」では、全体の語数に対して２５％の訂正能力を有する。誤り訂正レベル「Ｈ」では、全体の語数に対して３０％の誤り訂正能力を有する。第１実施形態では、例えば、最高クラスの誤り訂正能力である「Ｈ」を利用して、隠蔽情報をＱＲコードに隠蔽する。ただし、隠蔽される隠蔽情報語の語数に応じて誤り訂正レベルを変更してもよい。
【００７９】
第１実施形態においてＱＲコードに情報を隠蔽する手法の概念は、次の通りである。図３には、隠蔽情報語（第２データコード語に相当する）が示されている。第１実施形態では、この隠蔽情報語でＲＳブロックの一部を置換する（以下、この「置換」を「上書き」ということがある）。このように一部を置換した場合であっても、標準デコーダでは、置換後の情報本体部分をＲＳ符号を用いて訂正できる。そして訂正後の情報本体部分を抽出して表示することができる。一方、隠蔽情報語は、ＲＳ符号により訂正されて捨てられてしまう情報であるため、標準デコーダでは表示されないことになる。
【００８０】
これに対し、第１実施形態に対応する拡張デコーダ２０では、後述するように、置換後ＲＳブロックから隠蔽情報語を抽出する。そして、その後、ＲＳ符号により訂正を行って情報本体部分を抽出する。以上の原理によりＱＲコードシンボル１に情報を隠蔽する。
【００８１】
次に、第１実施形態における具体的なＱＲコードの生成方法について説明する。
図４は、第１実施形態におけるＱＲコードシンボル生成方法のフローチャートである。図５は、ＲＳブロックの説明図である。図６は、隠蔽情報語の説明図である。以下の説明において、特段のことわりがない場合、ＱＲコードシンボル１へのエンコード手法は、ＪＩＳ規格による手法が採用される。なお、ＱＲコードシンボル１は、複数のＲＳブロックを有する場合がほとんどであるが、ここでは説明の容易のために、１つのＲＳブロックを例示して説明を行う。また、以下に示される内容は容易な説明を行うための例示であるので、各コード語長は実際のものと異なることがある。
【００８２】
また、第１実施形態の前提として、記憶部１１ｂには、後述する隠蔽情報語で置換される開始位置を表す「オフセット情報」と、隠蔽情報語の「長さ（語数）情報」が記憶されていることとする。
【００８３】
まず、ＱＲコードシンボル１に埋め込まれる情報本体および隠蔽情報語が取り込まれる（Ｓ１０２）。ここでは、情報本体のコード語を「TOKYO<cr>MINATO<cr>JPN」とし（図５）、隠蔽情報語を「00090012345678」としている（図６）。情報本体と隠蔽情報語の取り込みは、入力装置１４を介して行ってもよいし、記憶部１１ｂに予め記憶された情報を用いてもよい。
【００８４】
次に、情報本体および隠蔽情報語に基づいてＱＲコードシンボル１の型番が決定される（Ｓ１０４）。ＱＲコードシンボル１は型番に応じてトータルのコード語数が定められている。トータルのコード語数は、情報本体の語数を含むデータコード語数と、訂正コード語数と、の和である。また、ＱＲコードシンボル１の型番に応じて、データコード語と訂正コード語からなるＲＳブロックの大きさと数が定められている。そして、誤り訂正は、ＲＳブロックを単位として行われる。
【００８５】
例えば、誤り訂正レベルが「Ｈ」であって型番が「４」の場合、トータルのコード語数は「１００」と定められている。そして、４つのＲＳブロックを含むことが定められている。１つのＲＳブロックにおけるデータコード語数は「９」であり、訂正コード語数は「１６」である。
【００８６】
データコード語数「９」と訂正コード語数「１６」の和は「２５」であり、このようなＲＳブロックが４つあるため、型番が「４」のＱＲコードシンボルは、２５×４＝１００の総コード語数を有することになる。
【００８７】
また、このときの誤り訂正語数は、ＲＳブロック毎に「８」である。これは、データコード語数「９」のうちの「８」を訂正する能力を有することを表す。ＲＳブロックは４つであったから、４×８＝３２の語数の総訂正能力を有することになる。１００語のうち３２語を訂正可能としているので、全体からすると３２％の訂正能力を有することになる。
【００８８】
隠蔽情報語による置換は、ＲＳブロック毎に、ＲＳブロックの誤り訂正数を超えない範囲で行われる。上記の場合であると、ＲＳブロック毎にコード語数「８」の置換が許容されることになり、全体では「３２」のコード語数の置換が許容される（「総置換許容語数）と呼ぶことがある）ことになる。
【００８９】
このような演算に基づいて、隠蔽情報語数が総置換許容語数を上回らず、かつ、情報本体の語数がデータコード語数を上回らない最小サイズのＱＲコードシンボル１の型番が選択される。
【００９０】
次に、情報本体のコード語に基づいてＲＳブロックが生成される（Ｓ１０６）。ＲＳブロックを生成するため、情報本体のコード語が複数のブロックに分割される。そして、各ブロックに対して誤り訂正コード語が生成され、生成された訂正コード語が対応するコード語の後に付加される。そして、ＲＳブロックが生成される。なお、訂正コード語の生成手法については、ＪＩＳ規格に準ずることができる。
【００９１】
図５には、情報本体と終端符号と訂正コード語の一例が示されている。ここでは、情報本体のコード語としてプレインなテキスト情報が示されている。終端符号は、例えば、「００００」のビット列を採用することができる。そして、情報本体を含むコード語に基づいて生成されたＲＳ符号が付加され、ＲＳブロックが作成されている。
【００９２】
このようにして生成されたＲＳブロックの一部が隠蔽情報語で置換される（Ｓ１０８）。
【００９３】
図７は、第１実施形態による手法でＲＳブロックの一部を置換したときの第１の説明図である。図７には、前述のＲＳブロックと、隠蔽情報語が示されている。そして、前述の隠蔽情報語の長さ情報とオフセット情報に基づき、第１実施形態では、図７に示されるように、ＲＳブロックの先頭から隠蔽情報語で置換される。
【００９４】
このように、ＲＳブロックの一部が隠蔽情報語で置換されると、情報本体の一部が消失してしまうことになる。しかしながら、ＲＳブロック単位で訂正を行うことができるため、標準デコーダでは、置換後の情報本体部分をＲＳ符号で訂正して適切に抽出し、表示できるのである。
【００９５】
そして、隠蔽情報語で置換された部分は、ＱＲコードシンボル１の汚損等による誤りであるとみなされて捨てられてしまう情報となるので、標準デコーダでは表示することができない。一方、拡張デコーダ２０では、後述するように、置換後ＲＳブロックから隠蔽情報語を抽出する。そして、その後、ＲＳ符号により訂正を行って情報本体部分を抽出する。そして、抽出された隠蔽情報語と情報本体部分を表示するのである。
【００９６】
次に、置換後ＲＳブロックに基づいてＱＲコードシンボル１を作成する（Ｓ１１０）。ＲＳブロックに基づいてＱＲコードシンボル１を生成する手法は、ＪＩＳ規格における標準的なＱＲコード生成手法と同様のものを採用することができる。このようにすることで、ＱＲコードシンボル１を生成することができる。
【００９７】
なお、上記では説明の容易のために、情報本体はプレインなテキストデータとして表したが、情報本体のデータ語自体をインターリーブしたり、暗号化することとしてもよい。そして、インターリーブ後の情報本体や暗号化後の情報本体に対して訂正コード語を付加して置換前ＲＳブロックを生成することとしてもよい。また、インターリーブや暗号化は、コード語単位でなくビット単位で行われることとしてもよい。
【００９８】
また、隠蔽情報語についてもインターリーブしたり、暗号化することとしてもよい。また、隠蔽情報語について誤り検知または誤り訂正のための符号化（例えば、ＲＳ符号化など）がなされていることとしてもよい。
【００９９】
次に、このようにして生成されたＱＲコードシンボル１のデコード手法について説明する。
図８は、拡張デコーダ２０のブロック図である。拡張デコーダ２０は、ＱＲコードシンボル１を読み取り、ＱＲコードシンボル１に含まれる表示対象である情報と隠蔽情報語とを展開する装置である。拡張デコーダ２０は、制御部２１と撮像装置２２と表示装置２３と印刷装置２４と入力装置２５を備える。
【０１００】
制御部２１は、演算部２１ａと記憶部２１ｂを備える。演算部２１ａは中央演算装置等からなり、プログラムの実行および種々の演算を担う。記憶部２１ｂは、プログラムの実行に際して、必要なデータの記憶を担う。特に、記憶部２１ｂには、後述するＱＲコード読み取り方法を実行するためのプログラムが記憶されている。
【０１０１】
撮像装置２２は、ＱＲコードシンボル１を撮像するための装置であって、例えば、ＣＣＤカメラなどである。
【０１０２】
表示装置２３は、データの入力等に際し必要な表示機能を担う。また、表示装置２３は、ＱＲコードから展開された情報を表示により出力する。印刷装置２４も、展開された情報を印刷により出力する。また、入力装置２５は、データの入力および拡張デコーダ２０の操作に使用される。
【０１０３】
拡張デコーダ２０の構成は、撮像装置２２を備えていれば、一般的なコンピュータ、携帯電話、および、スマートフォンに、後述するＱＲコード読み取り方法を実行するためのプログラムをインストールすることによって実現することができる。また、前述の拡張エンコーダ１０と拡張デコーダ２０とを一体化して実現することも可能である。
【０１０４】
図９は、第１実施形態におけるＱＲコードシンボル読み取り方法のフローチャートである。以下の説明において、特段のことわりがない場合、ＱＲコードシンボル１のデコード手法は、ＪＩＳ規格による手法が採用される。
【０１０５】
また、第１実施形態の前提として、デコーダ２０の記憶部２１ｂには、隠蔽情報語の「長さ（語数）情報」、および、隠蔽情報語で置換される開始位置を表す「オフセット情報」が記憶されていることとする。
【０１０６】
まず、ＱＲコードシンボル１の読み取りが行われる（Ｓ２０２）。そして、読み取ったＱＲコードシンボル１に基づいて、複数のＲＳブロックが展開される（Ｓ２０４）。これら複数のＲＳブロックへの展開は、ＪＩＳ規格に準ずるものを採用することができる。これにより、たとえば、前述の図７に示された置換後ＲＳブロックが取得される。
【０１０７】
次に、取得された置換後ＲＳブロックから情報本体のコード語および隠蔽情報語が抽出される（Ｓ２０６）。
図１０は、隠蔽情報語の抽出方法の説明図である。図１０には、置換後ＲＳブロックと隠蔽情報語が示されている。
【０１０８】
置換後ＲＳブロックは、前述のように、ＱＲコードシンボルを読み取り、ＪＩＳ規格に準じて展開することにより取得することができる。デコーダ２０は、記憶部２１ｂに記憶されている隠蔽情報語のオフセット情報と長さ情報とに基づいて、置換後ＲＳブロックにおける隠蔽情報語の位置を特定する。そして、特定した位置から隠蔽情報語を抽出する。
【０１０９】
図１１は、情報本体の抽出方法の説明図である。デコーダ２０は、置換後ＲＳブロックの誤り訂正を行うことにより、置換前ＲＳブロックを取得する。そして、置換前ＲＳブロックの先頭から終端符号までの情報を抽出し、抽出したデータを情報本体とする。
【０１１０】
次に、得られた情報本体のコード語と隠蔽情報語が出力される（Ｓ２０８）。これらの出力対象は、表示装置２３であってもよいし、プリンターなどの印刷装置２４であってもよい。
【０１１１】
なお、前述のように、情報本体のデータ語自体がインターリーブされている場合には、その後、元の順序となるように所定の手法でデータの並び替えが行われる。また、暗号化されていた場合には、所定の復号化方法で復号が行われる。
【０１１２】
次に、比較例として、標準デコーダで第１実施形態におけるＱＲコードシンボル１を読み取ったときの出力結果について説明する。標準デコーダでＱＲコードシンボル１を読み取ると、置換後ＲＳブロックのＲＳ符号に基づいて、ＲＳブロック全体の訂正が行われる。そして、情報本体部分も訂正がなされ、訂正後の情報本体が標準デコーダに表示される。標準デコーダには、前述の拡張デコーダ２０のように、置換後ＲＳブロックから隠蔽情報語を抽出する機能はないから、情報本体のみが抽出可能であり、隠蔽情報語を抽出することはできない。
【０１１３】
また、比較例として、一般的なＱＲコードシンボルを拡張デコーダ２０で読み取ったときの出力結果について説明する。拡張デコーダ２０で一般的なＱＲコードシンボルを読み取ると、これに基づいてＲＳブロックを取得することができる。一般的なＱＲコードシンボルから取得されたＲＳブロックには隠蔽情報語は含まれていない。しかしながら、ＲＳブロックを取得した時点において、拡張デコーダ２０は、読み取ったシンボル１が第１実施形態におけるＱＲコードシンボルであるのか一般的なＱＲコードシンボルであるのか判定することができない。
【０１１４】
そのため、拡張デコーダ２０は、第１実施形態における手法同様に、ＲＳブロックの隠蔽情報語が配置される位置から隠蔽情報語としてデータコード語を抽出する。その後、ＲＳブロックのＲＳ符号に基づいて、ＲＳブロック全体の訂正を行う。これにより、情報本体部分の訂正が行われ、訂正後の情報本体が拡張デコーダ２０に表示される。
【０１１５】
隠蔽情報語として読み取ったコード語が隠蔽情報語であるのか否かの判定は、訂正前のＲＳブロックと訂正後のＲＳブロックとの間に所定割合以上の差異があったときには隠蔽情報語であったと判定（すなわち、ＱＲコードシンボルは第１実施形態におけるＱＲコードシンボルであると判定）し、所定割合以上の差異がなかったときには隠蔽情報語ではなかったと判定（すなわち、ＱＲコードシンボルは一般的なＱＲコードシンボルであると判定）して隠蔽情報語を表示しないこととすることができる。これは、隠蔽情報語として置換が行われている場合には、置換前ＲＳブロックと置換後ＲＳブロッとの間の所定割合以上の差異が確実に生ずるものであるという理由に起因する。
【０１１６】
また、さらなる比較例として、仮に、一般的なＱＲコードシンボルを生成した後に、特定の隠蔽情報に対応する部分に限って図形パターンの生成処理を行って、図形パターンの上書きを行う場合を考察する。このような場合、二次元パターンを生成した後に特定の図形パターンの生成処理を行うことになるため、別途、特定の図形パターンの生成処理のための異なる処理系を用意する必要がある。また、ＱＲコードシンボルを生成した後に、さらに上書きする図形パターンの生成処理を行う必要がある。このような処理は、複数回図形パターンの生成処理を行っていることになるから処理速度の面から望ましくない。
【０１１７】
これに対し、第１実施形態であれば、拡張エンコーダ１０がデータコード語レベルで置換前データブロックを生成した後、ただちに置換後データブロックを生成する。この処理は、単一の処理系（制御部１１）のメモリ（記憶部１１ｂ）上で行われる。そして、この置換後データブロックに対して、１回のみ最終的なＱＲコードシンボル１の生成処理を行うこととしている（Ｓ１１０）。このようにデータコード語レベルで必要な処理を行うこととしているため、図形パターン生成レベルで必要な処理を行うよりも効率的かつ高速に最終的なＱＲコードシンボル１の生成を行うことができる。なお、このような利点は、後述する実施形態においても同様に言えることでもある。
【０１１８】
図１２は、第１実施形態における手法でＲＳブロックの一部を置換したときの第２の説明図である。前述の手法では、ＲＳブロックの先頭から順に隠蔽情報語が置換されていた。しかしながら、リード・ソロモン符号による訂正能力を勘案すれば、ＲＳブロックのいずれの位置を隠蔽情報語で置換してもよい。
【０１１９】
この場合、予めＲＳブロックの先頭からいくつ目の位置から隠蔽情報語で置換されるかを決めておくことができる。例えば、図１２に示すように、ＲＳブロックの先頭から７語目の位置から１３語分の隠蔽情報語で置換することとしてもよい。この場合、拡張エンコーダ１０の記憶部１１ｂおよび拡張デコーダ２０の記憶部２１ｂには、オフセット情報として置換後ＲＳブロックの予め決められた７語目の位置から隠蔽情報語が開始されることが記憶されている。また、隠蔽情報語の長さ情報として、１３語分の長さであることが記憶されている。このような場合であっても、隠蔽情報語の語数がＲＳ符号による訂正可能語数よりも少ないことから、訂正を行うことで適切に置換前ＲＳブロックを得ることができる。そして、置換前ＲＳブロックから情報本体を抽出することができる。
【０１２０】
なお、このとき、隠蔽情報語の最終語において所定の分離符号を付加することとして、置換される隠蔽情報語の最終端を規定することとしてもよい。
【０１２１】
図１３は、第１実施形態における手法でＲＳブロックの一部を置換したときの第３の説明図である。ここでは、複数に分離した隠蔽情報語でＲＳブロックを置換する。
【０１２２】
この場合、予めＲＳブロックのどの位置が隠蔽情報語で置換されるかを複数箇所決めておくことができる。例えば、図１３に示すように、ＲＳブロックの先頭から３語目の位置から３語分の隠蔽情報語で置換し、ＲＳブロックの先頭から８語目の位置から２語分の隠蔽情報語で置換し、ＲＳブロックの先頭から１１語目の位置から１語分の隠蔽情報語で置換し、ＲＳブロックの先頭から１６語目の位置から４語分の隠蔽情報語で置換し、ＲＳブロックの先頭から２２語目の位置から３語分の隠蔽情報語で置換することとしてもよい。
【０１２３】
この場合、拡張エンコーダ１０の記憶部１１ｂと拡張デコーダ２０の記憶部２１ｂには、オフセット情報および長さ情報として上記の情報が記憶されているものとする。このようにすることで、拡張デコーダ２０は、このように予め特定された位置から、それぞれの隠蔽情報語を抽出することができる。また、この場合も隠蔽情報語の語数がＲＳ符号による訂正可能語数よりも少ないことから、訂正を行うことで適切に置換前ＲＳブロックを得ることができる。そして、置換前ＲＳブロックから情報本体を抽出することができる。
【０１２４】
＝＝＝第２実施形態＝＝＝
前述の第１実施形態では、隠蔽情報語のオフセット情報、および、長さ情報などの配置に関する情報（以下、配置情報ということがある）が、予め拡張エンコーダ１０の記憶部１１ｂ、および、拡張デコーダ２０の記憶部２１ｂに記憶されていることしていた。第２実施形態では、ヘッダデータコード語（図中において「ヘッダ」）にこれら配置情報が記録される。そして、第２実施形態では、さらにこのヘッダデータコード語が置換後ＲＳブロックに含まれているものとしている。
【０１２５】
図１４は、第２実施形態におけるＲＳブロックの概念図である。図１４を前述の第１実施形態における図３と比較すると分かるように、第２実施形態では、拡張エンコーダ１０が、置換前ＲＳブロックの一部をヘッダデータコード語と隠蔽情報語とで置換し、置換後ＲＳブロックを生成する。
【０１２６】
第２実施形態において、ヘッダデータコード語と隠蔽情報語による置換は、ＲＳブロックの誤り訂正数を超えない範囲で行われる。すなわち、ヘッダデータコード語の語数と隠蔽情報語の語数との総語数は、ＲＳブロックの誤り訂正数を超えない。
【０１２７】
図１４に示されるヘッダデータコード語には、前述のように隠蔽情報語の配置情報が含まれる。よって、このヘッダデータコード語を参照することにより、隠蔽情報語の開始位置およびその長さ（語数）を特定することができる。なお、ヘッダデータコード語の位置は予め決められているものとする。また、さらにヘッダデータコード語は、隠蔽情報語のフォーマットに関する情報を含むことができる。隠蔽情報語のフォーマットに関する情報には、仮に、隠蔽情報語を暗号化したときにおける暗号鍵の情報や、隠蔽情報語をインターリーブしたときにおける配置入れ替えに関する情報が含まれる。また、隠蔽情報語について誤り検知または誤り訂正のための符号化がなされている場合には、誤り検知または誤り訂正の手法に関する情報が含まれる。
【０１２８】
図１５は、第２実施形態におけるヘッダデータコード語および隠蔽情報語の説明図である。図１５には、ヘッダデータコード語と隠蔽情報語が示されており、隠蔽情報語の一部に訂正符号語が含まれることが示されている。
【０１２９】
図１６は、第２実施形態による手法でＲＳブロックの一部を置換したときの第１の説明図である。図１６には、ＲＳブロックと隠蔽情報語とヘッダデータコード語が示されている。そして、ここでは、図１６に示されるように、ＲＳブロックは、拡張エンコーダ１０により、その先頭から隠蔽情報語で置換される。また、ＲＳブロックは、その後端がヘッダデータコード語で置換される。そして、このヘッダデータコード語には、隠蔽情報語の配置情報（この場合、先頭から開始（すなわち、オフセットがゼロである）すること、および、１１語の長さを有すること）が含まれている。
【０１３０】
このように、ＲＳブロックの一部が隠蔽情報語で置換されると、情報本体および訂正コード語の一部が消失してしまうことになる。しかしながら、ＲＳブロック単位で訂正を行うことができるため、標準デコーダでは、置換後の情報本体部分をＲＳ符号で訂正して適切に抽出し、表示できる。そして、隠蔽情報語で置換された部分は、ＱＲコードシンボル１の汚損等による誤りであるとみなされて捨てられてしまう情報となるので、標準デコーダでは表示することができない。
【０１３１】
一方、拡張デコーダ２０では、置換後ＲＳブロックから隠蔽情報語を抽出する。その際、ヘッダデータコード語から隠蔽情報語の位置を特定するための配置情報を取得する。そして、その配置情報に基づいて隠蔽情報語を抽出する。なお、隠蔽情報語には、訂正符号語が付加されているため、仮に、隠蔽情報語に汚損があったとしても、訂正符号語を用いてこれを訂正することもできる。
【０１３２】
また、隠蔽情報語についてインターリーブされている場合には、ヘッダデータコード語に含まれるインターリーブ手法についての情報に基づいて、元の順序に並べ替えを行うことができる。また、情報本体についてインターリーブされている場合にも、ヘッダデータコード語に含まれるインターリーブ手法についての情報に基づいて、元の順序に並べ替えを行うこともできる。また、隠蔽情報語について暗号化が行われている場合には、ヘッダデータコード語に含まれる暗号鍵等に基づいて復号化を行うことができる。また、前述のように、隠蔽情報語について誤り検知または誤り訂正のための符号化（例えば、ＲＳ符号化など）がなされている場合には、ヘッダデータコード語に含まれる情報に基づいて誤り訂正の手法を特定することができる。
【０１３３】
このようにして隠蔽情報語を抽出した後、拡張デコーダ２０は、置換後ＲＳブロックの訂正を行って置換前ＲＳブロックを求める。そして、置換前ＲＳブロックに含まれる情報本体部分を抽出する。そして、抽出された隠蔽情報語と情報本体部分を表示する。
【０１３４】
図１７は、第２実施形態による手法でＲＳブロックの一部を置換したときの第２の説明図である。前述の図１６の手法では、ＲＳブロックの先頭から順に隠蔽情報語で置換されていた。しかしながら、図１７に示すように、先頭以外の位置から隠蔽情報語で置換することとしてもよい。
【０１３５】
図１７に示されるような場合、ＲＳブロックの９語目から隠蔽情報語の置換が開始されることがヘッダデータコード語中のオフセット情報に含まれている。また、隠蔽情報語が１１語分の長さを有することがヘッダデータコード語中の長さ情報に含まれている。これにより、ヘッダデータコード語を参照することで、第１実施形態のときと同様に隠蔽情報語を適切に抽出することができる。
【０１３６】
これは、前述の図１３のときのように、隠蔽情報語が分散して置換される場合にも同様に適用することができる。
【０１３７】
図１８は、第２実施形態による手法でＲＳブロックの一部を置換したときの第３の説明図である。このとき、ヘッダデータコード語の位置はＲＳブロックの１３語目から開始して２語の長さを有することが予め決められているものとする。このように、隠蔽情報語が分散して置換される場合には、ヘッダデータコード語には複数の隠蔽情報語の配置情報を含むことになる。このようにすることで、ヘッダデータコード語を参照することで適切に隠蔽情報語を抽出することができる。
【０１３８】
なお、ヘッダデータコード語の位置は予め決められていたものとして説明を行ったが、ヘッダデータコード語の前後にデリミタを設けることとしてヘッダデータコード語の位置を特定することとしてもよい。
【０１３９】
なお、読み取ったＱＲコードシンボルが一般的なＱＲコードシンボルであるか第２実施形態におけるＱＲコードシンボルであるかの判定は、抽出した隠蔽情報語にヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第２実施形態におけるＱＲコードシンボルには、ヘッダデータコード語が含まれているので、拡張デコーダ２０は、隠蔽情報語を表示することとすることができる。また、一般的なＱＲコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ２０は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
【０１４０】
＝＝＝第３実施形態＝＝＝
図１９は、第３実施形態による手法でＲＳブロックの一部を置換したときの説明図である。図１９には、置換前ＲＳブロックと隠蔽情報語と暫定置換後ＲＳブロックとヘッダデータコード語と置換後ＲＳブロックが示されている。
【０１４１】
第３実施形態において、拡張エンコーダ１０は、置換前ＲＳブロックの一部を隠蔽情報語で置換する。そして、暫定置換後ＲＳブロックを生成する。なお、隠蔽情報語には、後述するように、ヘッダデータコード語によって置換されてもそれを訂正しうるだけの訂正能力を有する訂正符号語が含まれている。
【０１４２】
次に、拡張エンコーダ１０は、暫定置換後ＲＳブロックにおいて隠蔽情報語で置換した部分の一部をヘッダデータコード語で置換する。そして、置換後ＲＳブロックを生成する。その後、拡張エンコーダ１０は、生成された置換後ＲＳブロックに基づいてＱＲコードシンボルを生成する。
【０１４３】
次に、デコード手法について説明する。第３実施形態における拡張デコーダ２０は、このようにして生成されたＱＲコードシンボルを読み取り、置換後ＲＳブロックを展開する。そして、拡張デコーダ２０は、ヘッダデータコード語を抽出する。ヘッダデータコード語の位置は、第１実施形態および第２実施形態のときと同様に、予め決められた位置としておくこともできるし、ヘッダデータコード語の前後にデリミタを設けることとしてその位置を特定することとしてもよい。
【０１４４】
このようにして抽出されたヘッダデータコード語に含まれる配置情報に基づいて、隠蔽情報語の位置が特定される。そして、隠蔽情報語が抽出される。隠蔽情報語には、前述のように訂正符号語が含まれているため、この訂正符号語に基づいて訂正を行うことにより、ヘッダデータコード語によって置換された部分も適切に訂正される。そして、ヘッダデータコード語によって置換される前の隠蔽情報語が適切に抽出される。
【０１４５】
このようにすることで、まずは暫定置換後ＲＳブロックを得ることができる。次に、デコーダ２０は、置換前ＲＳブロックに含まれる訂正符号語を用いて訂正を行う。これにより、隠蔽情報語によって置換された部分も適切に訂正され、置換前ＲＳブロックを得ることができる。そして、拡張デコーダ２０は、置換前ＲＳブロックから情報本体を抽出することができる。
【０１４６】
第３実施形態において、隠蔽情報語の語数は、置換前ＲＳブロックに含まれる訂正符号語による訂正可能語数を超えない。また、第３実施形態において、ヘッダデータコード語の語数は、隠蔽情報語に含まれる訂正符号語による訂正可能語数を超えない。これにより、適切に隠蔽情報語および情報本体を抽出することができる。
【０１４７】
第３実施形態において特徴的なのは、このように隠蔽情報語で置換した部分の一部をヘッダデータコード語で置換する点である。このようにすることで、ヘッダデータコード語と隠蔽情報語が重なり合うこととなるので、ヘッダデータコード語と隠蔽情報語との総語長を短くすることができる。これにより、ＱＲコードシンボルの誤り検出・訂正能力の余力をより大きく持たせることができる。
【０１４８】
なお、第３実施形態においても第２実施形態と同様に、読み取ったＱＲコードシンボルが一般的なＱＲコードシンボルであるか第３実施形態におけるＱＲコードシンボルであるかの判定は、抽出した隠蔽情報語にヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第３実施形態におけるＱＲコードシンボルには、ヘッダデータコード語が含まれているので、拡張デコーダ２０は隠蔽情報語を表示することとすることができる。また、一般的なＱＲコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ２０は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
【０１４９】
＝＝＝第４実施形態＝＝＝
図２０は、第４実施形態による手法でＲＳブロックの一部を置換したときの説明図である。図２０には、置換前ＲＳブロックと隠蔽情報語と置換後ＲＳブロックが示されている。
【０１５０】
第４実施形態において、置換前ＲＳブロックの情報本体には、ヘッダデータコード語が含まれている。ヘッダデータコード語の前後にはデリミタ（図２０において「デリ」と記載）が配置され、これにより、情報本体における表示情報とヘッダデータコード語との切り分けが行われている。
【０１５１】
このような置換前ＲＳブロックを生成するために、第４実施形態において、拡張エンコーダ１０は、表示情報とヘッダデータコード語とデリミタを含む情報本体を生成する。ヘッダデータコード語には、後述する隠蔽情報語の配置情報が含まれている。また、拡張エンコーダ１０は、これらの情報本体（存在すればパディングコード語も含め）に基づいて、訂正コード語を生成する。そして、置換前ＲＳブロックを生成する。
【０１５２】
次に、拡張エンコーダ１０は、隠蔽情報語で置換前ＲＳブロックの一部を置換する。ここで、置換する位置は、ヘッダデータコード語に含まれる配置情報に対応する位置である。そして、置換後ＲＳブロックを生成する。その後、拡張エンコーダ１０は、置換後ＲＳブロックに基づいてＱＲコードシンボルを生成する。
【０１５３】
次に、デコード手法について説明する。第４実施形態における拡張デコーダ２０は、このようにして生成されたＱＲコードシンボルを読み取り、置換後ＲＳブロックを展開する。そして、拡張デコーダ２０は、置換前ＲＳブロックに含まれる訂正符号語に基づいて、置換後ＲＳブロックを訂正することにより置換前ＲＳブロックを得る。置換前ＲＳブロックには、前述のようにデリミタで切り分けされたヘッダデータコード語が含まれる。拡張デコーダ２０は、このヘッダデータコード語に含まれる配置情報に基づいて、置換後ＲＳブロックから隠蔽情報語の位置を特定し、抽出する。抽出された隠蔽情報語について、隠蔽情報語に含まれる訂正符号語を用いて訂正が行われることとしてもよい。
【０１５４】
このように、隠蔽情報語の配置情報を含むヘッダデータコード語を隠蔽情報語で置換して置換後ＲＳブロックを生成するので、置換後ＲＳブロックから隠蔽情報語の位置を特定することが困難となる。そして、第三者にとって、隠蔽情報語の抽出をより困難なものとすることができる。
【０１５５】
なお、第４実施形態において、読み取ったＱＲコードシンボルが一般的なＱＲコードシンボルであるか第４実施形態におけるＱＲコードシンボルであるかの判定は、抽出した置換前ＲＳブロックにヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第４実施形態における置換前ＲＳブロックには、ヘッダデータコード語が含まれているので、拡張デコーダ２０は隠蔽情報語を表示することとすることができる。また、一般的なＱＲコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ２０は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
【０１５６】
＝＝＝第５実施形態＝＝＝
図２１は、第５実施形態による手法でＲＳブロックの一部を置換したときの説明図である。図２１には、置換前ＲＳブロックと隠蔽情報語とヘッダデータコード語と置換後ＲＳブロックが示されている。
【０１５７】
第５実施形態において、置換前ＲＳブロックの情報本体には、ヘッダデータコード語の位置情報を含んだヘッダデータコード語オフセット位置情報語（図２１において「オフセット」と記載。「ヘッダ位置データコード語」に対応する）が含まれている。ヘッダオフセット位置情報語の前後には、デリミタが配置され、これにより、情報本体における表示情報とヘッダオフセット位置情報語との切り分けが行われている。
【０１５８】
このような置換前ＲＳブロックを生成するために、第５実施形態において、拡張エンコーダ１０は、表示情報とヘッダオフセット位置情報語とデリミタを含む情報本体を生成する。そして、拡張エンコーダ１０は、これらの情報本体（存在すればパディングコード語も含め）に基づいて、訂正コード語を生成する。そして、置換前ＲＳブロックを生成する。
【０１５９】
次に、拡張エンコーダ１０は、隠蔽情報語で置換前ＲＳブロックの一部を置換する。ここで、置換する位置は、ヘッダデータコード語に含まれる隠蔽情報語の配置情報に対応する位置である。ここでは、隠蔽情報語の配置情報において、ＲＳブロックの５語目から隠蔽情報語の置換が開始され、隠蔽情報語が１１語分の長さを有することの情報が含まれているものとする。そして、暫定置換後ＲＳブロックを生成する。
【０１６０】
次に、拡張エンコーダ１０は、暫定置換後ＲＳブロックにおける隠蔽情報語の一部をヘッダデータコード語で置換する。ここで、置換する位置は、前述のヘッダオフセット位置情報語に含まれるヘッダデータコード語の位置情報に対応する位置である。ここでは、ＲＳブロックの７語目から置換が行われることの情報がヘッダオフセット位置情報語に含まれるものとする。また、ヘッダデータコード語の長さは予め２語分であることが定められているものとする。そして、これらの情報に基づいて、拡張エンコーダ１０はヘッダデータコード語による置換を行い、置換後ＲＳブロックを生成する。その後、拡張エンコーダ１０は、置換後ＲＳブロックに基づいてＱＲコードシンボルを生成する。
【０１６１】
次に、デコード手法について説明する。第５実施形態における拡張デコーダ２０は、このようにして生成されたＱＲコードシンボルを読み取り、置換後ＲＳブロックを展開する。そして、拡張デコーダ２０は、ＲＳブロックに含まれる訂正符号語に基づいて、置換後ＲＳブロックを訂正することにより、置換前ＲＳブロックを得る。置換前ＲＳブロックには、前述のようにデリミタで切り分けされたヘッダオフセット位置情報語が含まれる。
【０１６２】
拡張デコーダ２０は、このヘッダオフセット位置情報語に基づいて、置換後ＲＳブロックにおけるヘッダデータコード語の位置を特定する。そして、特定した置換後ＲＳブロックの位置からヘッダデータコード語を抽出し、隠蔽情報語の配置情報を得る。
【０１６３】
拡張デコーダ２０は、隠蔽情報語の配置情報に基づいて、置換後ＲＳブロックから隠蔽情報語を抽出する。ただし、この隠蔽情報語は、ヘッダデータコード語により一部が置換されている。よって、拡張デコーダ２０は、隠蔽情報語に含まれる訂正符号語に基づいて訂正をし、ヘッダデータコード語によって置換がされる前の隠蔽情報語を得る。これにより、適切に隠蔽情報語を取得することができる。
【０１６４】
また、拡張デコーダ２０は、置換前ＲＳブロックの情報本体からヘッダオフセット位置情報語とデリミタを除いた情報語を取得する。
【０１６５】
このようにすることで、ヘッダデータコード語の位置を特定するためのヘッダオフセット位置情報語を情報本体に含めることし、このヘッダオフセット位置情報語をさらに隠蔽情報語で置換するので、隠蔽情報語の位置を特定することがより困難となる。そして、第三者にとって、隠蔽情報語を抽出することをより困難なものとすることができる。
【０１６６】
なお、前述の第２実施形態のように、ヘッダデータコード語に含まれる隠蔽情報語の配置情報に基づいて、任意の位置から隠蔽情報語を置換したり、隠蔽情報語を複数に分離させて置換することとすることもできる。また、ヘッダデータコード語の情報に基づいて、隠蔽情報語を暗号化したりインターリーブしたりすることもできる。
【０１６７】
また、ヘッダデータコード語の位置を「オフセット」に基づいて特定することとしたが、ヘッダデータコード語の位置を特定できればオフセット量で特定しなくとも、他の手法でその位置を特定してもよい。
【０１６８】
なお、第５実施形態においても第２実施形態と同様に、読み取ったＱＲコードシンボルが一般的なＱＲコードシンボルであるか第５実施形態におけるＱＲコードシンボルであるかの判定は、抽出した隠蔽情報語にヘッダデータコード語が含まれているか否かに基づいて判定することができる。すなわち、第５実施形態におけるＱＲコードシンボルには、ヘッダデータコード語が含まれているので、拡張デコーダ２０は隠蔽情報語を表示することとすることができる。また、一般的なＱＲコードシンボルには、ヘッダデータコード語が含まれていないので、拡張デコーダ２０は、隠蔽情報語を表示せず、表示対象の情報のみを表示することができる。
【０１６９】
＝＝＝第６実施形態＝＝＝
図２２は、第６実施形態による手法でＲＳブロックの一部を置換したときの第１の説明図である。図２２には、置換前ＲＳブロックと隠蔽情報語と置換後ＲＳブロックが示されている。
【０１７０】
第６実施形態において、拡張エンコーダ１０は、情報本体（存在すればパディングコード語も含め）に基づいて、訂正コード語を生成する。そして、置換前ＲＳブロックを生成する。次に、拡張エンコーダ１０は、置換前ＲＳブロックの一部を隠蔽情報語で置換する。そして、置換後ＲＳブロックを生成する。そして、置換後ＲＳブロックに基づいて、ＱＲコードシンボルを生成する。このように、第６実施形態において、ＱＲコードシンボルの生成方法は、第１実施形態とほぼ同様の手法による。
【０１７１】
次に、デコード手法について説明する。第６実施形態における拡張デコーダ２０は、このようにして生成されたＱＲコードシンボルを読み取り、置換後ＲＳブロックを展開する。そして、そして、拡張デコーダ２０は、ＲＳブロックに含まれる訂正符号語に基づいて、置換後ＲＳブロックを訂正することにより、置換前ＲＳブロックを得る。
【０１７２】
拡張デコーダ２０は、置換前ＲＳブロックと置換後ＲＳブロックとを比較する。そして、置換前ＲＳブロックと異なる部分を置換後ＲＳブロックから抽出する。このようにして抽出された情報語は隠蔽情報語とされる。また、置換前ＲＳブロックから情報本体を抽出する。置換前ＲＳブロックには、情報本体と訂正符号語の間に終端符号が設けられているため、デコーダ２０は、この終端符号に基づいて情報本体と訂正符号語とを切り分けることができる。
【０１７３】
このようにすることで、隠蔽情報語と情報本体を抽出することができる。そして、第６実施形態の手法によれば、単に置換前ＲＳブロックと置換後ＲＳブロックとを比較し、異なる部分を抽出すればよいので、隠蔽情報語の位置情報が不要となる利点がある。すなわち、仮にヘッダデータコード語を用いる場合には、ヘッダデータコード語の語数を減らすことができる。
【０１７４】
図２３は、第６実施形態における手法でＲＳブロックの一部を置換したときの第２の説明図である。ここでは、複数に分離した隠蔽情報語でＲＳブロックを置換する。
【０１７５】
例えば、図２３に示すように、隠蔽情報語を５つに分離してＲＳブロックの一部を置換することができる。このようにした場合であっても、隠蔽情報語の語数がＲＳ符号による訂正可能語数より少ないことから、訂正を行うことで適切に置換前ＲＳブロックを得ることができる。そして、この場合も置換前ＲＳブロックと置換後ＲＳブロックとの差分をとることによって、隠蔽情報語を得ることができる。また、置換前ＲＳブロックの予め特定された位置からデータ語を抽出することにより情報本体を得ることができる。
【０１７６】
このように、差分に基づいて隠蔽情報語を抽出する手法は、ＱＲコードシンボルに汚損が生じにくく、ＲＳブロックにも汚損が生じにくい場合に特に有効である。例えば、ＱＲコードシンボルの画像データファイルを生成し、これをファイルとして取り込み、隠蔽情報語等を抽出する場合には、ＱＲコードシンボルが外部に曝される機会がないため、汚損が生ずることがありえない。
【０１７７】
この手法によれば、前述のように、特段ヘッダデータコード語等を設けなくても隠蔽情報語を特定することができるという利点がある。これは、より多くの隠蔽情報語で置換をすることができるという利点になる。
【０１７８】
隠蔽情報語として読み取ったコード語が隠蔽情報語であるのか否かの判定は、第１実施形態と同様に、訂正前のＲＳブロックと訂正後のＲＳブロックとの間に所定割合以上の差異があったときには隠蔽情報語であったと判定（すなわち、ＱＲコードシンボルは第６実施形態におけるＱＲコードシンボルであると判定）し、所定割合以上の差異がなかったときには隠蔽情報語ではなかったと判定（すなわち、ＱＲコードシンボルは一般的なＱＲコードシンボルであると判定）して隠蔽情報語を表示しないこととすることができる。これは、隠蔽情報語として置換が行われている場合には、置換前ＲＳブロックと置換後ＲＳブロックとの間の所定割合以上の差異が確実に生ずるものであるという理由に起因する。
【０１７９】
ところで、差分による上記のような手法でデコードを行った場合、置換前データブロックと置換後データブロックの隠蔽情報語で置換される部分において、きわめて希にではあるが、偶然に同じ語となった部分がある場合には、その部分は差分として抽出されないという問題がある。この場合、ヘッダデータコード語、および、隠蔽情報語に含まれる各語は必ず連続で置換されることとしておく。
【０１８０】
図２４は、第６実施形態における手法でＲＳブロックの一部を置換したときの第３の説明図である。ここでは、ヘッダデータコード語の各語と隠蔽情報語の各語が連続して配置されるという規則を適用する。このような規則を適用することで、これらの語は必ず連続して置換されていることになるので、たとえ偶然に同じ語となることで欠落した語があったとしても、偶然一致してしまった語で欠落部分を埋めることで情報を補完することができる。
【０１８１】
ところで、このようにＲＳブロックの端部以外でコード語の欠落が生じた場合には単に対応する位置のデータコード語でその欠落部分を埋めればよい。しかし、ＲＳブロックの端部で欠落が生じた場合には、その欠落が先端部分で生じたのか後端部分で生じたのかを特定すること自体が困難となる。よって、この場合には、次に説明するように、端部についていくつかの補完を行って、検証を行う。
【０１８２】
図２５は、一部欠落したＲＳブロックの説明図である。図２５には、欠落のないＲＳブロックと、データコード語の先端部分が欠落したＲＳブロック（以下、先端欠落ＲＳブロックと呼ぶ）と、訂正コード語の後端部分が欠落したＲＳブロック（以下、後端欠落ＲＳブロックと呼ぶ）と、両端部分が欠落したＲＳブロック（以下、両端欠落ＲＳブロックと呼ぶ）が示されている。なお、説明の便宜上、各セル内に具体的なコード語は示されていない。これらの図において、欠落したコード語の部分は、破線で示されている。このように、ＲＳブロックの端部が欠落するケースとしては、これらの３つのケースがあることになる。
【０１８３】
これらのようなＲＳブロックについては、可能な組み合わせで先端及び後端に補完を行う。そして、全ての組み合わせについて、（１）補完されたＲＳブロックで訂正処理が機能するか、（２）訂正処理が機能したとしてその訂正結果がブロック構成構文として正しいか、の検証を行う。
【０１８４】
図２６は、先端欠落ＲＳブロックの補完の説明図である。図２６には、先端欠落ＲＳブロックに対して誤った補完が行われたＲＳブロックが示されている。先端欠落ＲＳブロックは、本来、先端部分について補完が行われるべきであるが、欠落したＲＳブロックを見ただけでは先端部分が欠落しているのか後端部分か欠落しているのかは分からない。そのため、先端部分の補完を行ったＲＳブロックと、後端部分の補完を行ったＲＳブロックとの両方を生成する。そして、補完を行った両方のＲＳブロックについて、訂正コード語を用いて訂正を行うことになる。
【０１８５】
先端部分の補完を行ったＲＳブロックは、正しいＲＳブロックとなるため、適切に訂正処理が行われ、訂正結果としてもブロック構成構文として正しい結果となる。
【０１８６】
これに対し、後端部分の補完を行ったＲＳブロックは、図２６に示されるように、想定される語長から訂正コード語の位置が推定され、その結果、誤った位置が訂正コード語の位置であるとして特定されてしまう。このように誤って訂正コード語であると認識された領域のコード語に基づいて訂正が行われるため、適切に訂正は行われないことになる。
【０１８７】
なお、ここでは、１語分の欠落が生じたものとして説明を行ったが、欠落した語数が複数語であっても、特定される訂正コード語の位置は誤った位置となることから、やはり適切に訂正は行われないことになる。
【０１８８】
図２７は、後端欠落ＲＳブロックの補完の説明図である。図２７には、後端欠落ＲＳブロックに対して誤った補完が行われたＲＳブロックが示されている。後端欠落ＲＳブロックは、本来、後端部分について補完が行われるべきであるが、やはりこの場合も、欠落したＲＳブロックを見ただけでは先端部分が欠落しているのか後端部分か欠落しているのかは分からない。そのため、この場合も、先端部分の補完を行ったＲＳブロックと、後端部分の補完を行ったＲＳブロックとの両方を生成する。そして、補完を行った両方のＲＳブロックについて訂正コード語を用いて、訂正を行うことになる。
【０１８９】
後端部分の補完を行ったＲＳブロックは、正しいＲＳブロックとなるため、適切に訂正処理が行われ、訂正結果としてもブロック構成構文として正しい結果となる。
【０１９０】
これに対し、先端部分の補完を行ったＲＳブロックは、図２７に示されるように、想定される語長から訂正コード語の位置が推定され、その結果、誤った位置が訂正コード語の位置であるとして特定されてしまう。このように誤って訂正コード語であると認識された領域のコード語に基づいて訂正が行われるため、適切に訂正は行われないことになる。
【０１９１】
なお、ここでも、１語分の欠落が生じたものとして説明を行ったが、欠落した語数が複数語であっても、特定される訂正コード語の位置は誤った位置となることから、やはり適切に訂正は行われないことになる。
【０１９２】
図２８は、両端欠落ＲＳブロックの補完の説明図である。図２８には、両端欠落ＲＳブロックに対して誤った補完が行われた２つのＲＳブロックが示されている。ここでは、１語ずつ各端部で欠落が生じていることを想定している。このような両端欠落ＲＳブロックにおいて、本来、先端部分と後端部分について１語ずつの補完が行われるべきではあるが、やはりこの場合も欠落したＲＳブロックを見ただけでは、どのような形態で欠落が生じているのかが分からない。
【０１９３】
そのため、この場合には、先端部分に２語の補完を行ったＲＳブロックと、後端部分に２語の補完を行ったＲＳブロックと、各端部分に１語ずつの補完を行ったＲＳブロックを生成することになる。そして、それぞれ補完したＲＳブロックについて、訂正ブロックを用いて訂正することになる。その後の検証方法は、先端欠落ＲＳブロックにて補完を行った場合および後端欠落ＲＳブロックにて補完を行った場合と同様であるので、説明を省略する。
【０１９４】
このようにして、考えられる全てのケースの補完を行って検証を行うことで、適切に補完がされたＲＳブロックを得ることができる。
【０１９５】
ここでは、上記の３ケースについて説明を行ったが、欠落したデータコード語の数に応じて検証するべき数が変化する。
【０１９６】
例えば、前述のように、データコード語が１語欠落する場合は、先端部分が１語欠落する場合と、後端部分が１語欠落する場合の２ケースが考えられることになる。
【０１９７】
また、データコード語が２語欠落する場合は、先端部分が２語欠落する場合と、先端部分が２語欠落しかつ後端部分が１語欠落する場合と、後端部分が２語欠落する場合の３ケースが考えられることになる。
【０１９８】
また、データコード語が３語欠落する場合は、先端部分が３語欠落する場合と、先端部分が２語欠落しかつ後端部分が１語欠落する場合と、先端部分が１語欠落しかつ後端部分が２語欠落する場合と、後端部分が３語欠落する場合の４ケースが考えられることになる。
【０１９９】
これらの規則性からすると、端部でＮ語欠落している場合には、（Ｎ＋１）種類の検証を行うことになる。そして、（Ｎ＋１）種類の検証を行った後、適切に訂正を行えたものを採用することができる。
【０２００】
このように、先端部分や後端部分に欠落が生じた場合であっても、これに対応するケースだけ補完を行ったＲＳブロックを生成し、それぞれを検証することによって、適切に正しい補完を行うことができる。なお、極めて希に、誤った補完を行ったＲＳブロックにおいて訂正機能が成立してしまう場合も有りうるが、この場合、訂正後のブロックが定められたフォーマットにしたがっていない等の不具合を有することになる。そのため、これに基づいて、正常な補完ではないと判定することができる。
【０２０１】
＝＝＝第７実施形態＝＝＝
第７実施形態では、置換前ＲＳブロックを隠蔽情報語で置換するときにおいて、マスクパターン参照子ＭＰＲで特定される語数の位置で置換が行われる。マスクパターン参照子ＭＰＲは、ＪＩＳ規格におけるマスクパターン（本説明中において「標準マスクパターン」と呼ぶ）を特定する参照子である。第７実施形態では、このマスクパターン参照子ＭＰＲを隠蔽情報語での置換位置の特定に利用することにより、第三者からの隠蔽情報語の抽出をより困難にしている。
【０２０２】
マスクパターン参照子ＭＰＲは、ＱＲコードシンボル１の形式情報ＦＩに含まれる。形式情報ＦＩには、さらに誤り訂正レベルが含まれている。なお、ＪＩＳ規格において、標準マスクパターンによるマスキングは、符号化領域のうち、形式情報ＦＩおよび型番情報ＶＩを除いた領域にのみ適用されるため、マスクパターン参照子ＭＰＲも標準マスクパターンによってマスキングされないことになる。
【０２０３】
図２９は、第７実施形態におけるＱＲコードシンボル生成方法のフローチャートである。以下、本フローチャートを参照しつつ、第７実施形態におけるＱＲコードシンボル生成方法の説明を行う。
【０２０４】
まず、ＱＲコードシンボル１に埋め込まれる情報本体および隠蔽情報語が取り込まれる（Ｓ３０２）。次に、情報本体および隠蔽情報語に基づいてＱＲコードシンボル１の型番が決定される（Ｓ３０４）。次に、情報本体のコード語に基づいてＲＳブロックが生成される（Ｓ３０６）。これらステップＳ３０２からＳ３０６における情報本体と隠蔽情報語の取り込み、型番の決定、および、ＲＳブロックの生成については第１実施形態と同様の手法が用いられるため説明を省略する。
【０２０５】
次に、マスクパターン参照子ＭＰＲの値が「０」に初期化される（Ｓ３０８）。ＪＩＳ規格のマスクパターン参照子ＭＰＲによれば、マスクパターン参照子ＭＰＲの値は０から７（「０００」から「１１１」）までの数値を有する。そこで、ここでは、マスクパターン参照子ＭＰＲの値を０から７まで変化させ、後述するステップＳ３１０からステップＳ３１４の処理を繰り返し行わせる。そのために、マスクパターン参照子ＭＰＲの値を「０」に初期化するのである。
【０２０６】
次に、マスクパターン参照子ＭＰＲで特定される位置（置換位置）で隠蔽情報語での置換が行われる（Ｓ３１０）。ここでは、置換前ＲＳブロックの先頭からマスクパターン参照子ＭＰＲの値の語数だけオフセットさせられた位置で隠蔽情報語での置換が行われる。例えば、マスクパターン参照子ＭＰＲの値が「０」である場合には、置換前ＲＳブロックの先頭から隠蔽情報語に置換がされることになる。前述のように、マスクパターン参照子ＭＰＲは０から７までの値を有することから、マスクパターン参照子ＭＰＲは隠蔽情報語の置換位置として８種類の位置を規定することができる。
【０２０７】
図３０は、第７実施形態による手法でＲＳブロックの一部を置換したときの説明図である。図３０では、マスクパターン参照子ＭＰＲの値が「６」である場合であって、置換前ＲＳブロックの先頭から６語分オフセットさせた位置で隠蔽情報語での置換がされる様子が示されている。
【０２０８】
なお、マスクパターン参照子ＭＰＲの値と同じ語数分オフセットさせた位置を隠蔽情報語での置換位置とする手法は、マスクパターン参照子ＭＰＲで置換位置を特定する最も単純な形態であり、実施形態はこれに限られない。マスクパターン参照子ＭＰＲの値に応じた位置を予め規定しておき、これに応じて置換位置が特定することとしてもよい。
【０２０９】
次に、このようにしてＲＳブロックの一部が置換された置換後ＲＳブロックに基づいて、標準マスクパターン適用前のＱＲコードシンボルが生成される（Ｓ３１２）。そして、標準マスクパターン適用前のＱＲコードシンボルに対して、マスクパターン参照子ＭＰＲで特定される標準マスクパターンが適用される（Ｓ３１４）。標準マスクパターンの適用については、ＪＩＳ規格に準ずるため説明を省略する。
【０２１０】
次に、マスクパターン参照子ＭＰＲの値が７であるか否かが判定される（Ｓ３１６）。これにより、マスクパターン参照子ＭＰＲの値が０から７までの全てのケースについて、ステップＳ３１０からステップＳ３１４までの処理を行ったか否かの判定がなされることになる。そして、ステップＳ３１６において、マスクパターン参照子ＭＰＲの値が７ではない場合には、マスクパターン参照子ＭＰＲの値をインクリメントする（Ｓ３１８）
【０２１１】
一方、ステップＳ３１６においてマスクパターン参照子ＭＰＲの値が「７」である場合には、これまでの処理で、マスクパターン参照子ＭＰＲの値を０から７まで変化させたときの全てのＱＲコードシンボルが生成されていることになる。そこで、これらの８個のＱＲコードシンボルが評価され最適なＱＲコードシンボルパターンが特定される（Ｓ３２０）。
【０２１２】
ステップＳ３２０におけるＱＲコードシンボルの評価は、ＪＩＳ規格における「マスク処理結果の評価」が適用されるため説明を省略する。この評価処理を行うことにより、モジュールが適度にばらついたＱＲコードシンボルが特定されることになる。
【０２１３】
次に、ステップＳ３２０において特定されたＱＲコードシンボルが出力される（Ｓ３２０）。ＱＲコードシンボルの出力は、表示装置１３に表示させることとしてもよいし、印刷装置１４により印刷させることとしてもよい。
【０２１４】
このようにすることで、ＱＲコードシンボルに適用された標準マスクパターンを特定するマスクパターン参照子ＭＰＲが、隠蔽情報語で置換する位置を特定することにも用いられる。標準マスクパターンが８種類存在するため、マスクパターン参照子ＭＰＲの値も８種類の数値を有する。そのため、適用される標準マスクパターンに応じて隠蔽情報語で置換する位置も変化させることができる。これにより、第三者にとっては隠蔽情報語の位置を特定することが困難となり、隠蔽情報語の抽出をより困難なものとすることができる。
【０２１５】
また、第７実施形態の手法によれば、マスクパターン参照子ＭＰＲの値を０から７まで変化させて生成した全てのＱＲコードシンボルをステップＳ３２０で評価してみるまで、どの位置に隠蔽情報語を配置したものが最適なＱＲコードシンボルとなるのか分からない。そのため、ステップＳ３２０で評価するまで、どの位置で隠蔽情報語での置換が行われたＱＲコードシンボルが採用されるのかが分からないことになる。このように、予め隠蔽情報語の置換位置を決めておくことができないので、より隠蔽情報語の位置の特定を困難なものとすることができる。そして、隠蔽情報語の抽出をより困難なものとすることができる。
【０２１６】
なお、標準マスクパターンの適用については、ステップＳ３１０の隠蔽情報語の置換処理よりも前に行わせることもできる。ただし、ＱＲコードシンボルにおけるモジュールの分散性という観点からすれば、標準マスクパターンの適用はステップＳ３１０の隠蔽情報語の置換処理よりも後に行われることが望ましい。
【０２１７】
なお、前述の第１実施形態においても、ステップＳ１０８の後に標準マスクパターンによるマスキングが行われることになる。このとき、マスクパターン参照子ＭＰＲ「０」から「７」のすべての標準マスクパターンが適用される。そして、第７実施形態におけるステップＳ３２０と同様に、これらのＱＲコードシンボル中から最適なＱＲコードシンボルとなるものが選択されることになる。
【０２１８】
標準マスクパターンによるマスキングは、符号化領域のうち形式情報ＦＩおよび型番情報ＶＩを除いた領域にのみ適用されるので、マスクパターン参照子ＭＰＲは標準マスクパターンによるマスキングの影響を受けない。よって、ＱＲコードシンボルの読み取り時において、形式情報ＦＩからマスクパターン参照子ＭＰＲを適切に読み出して、標準マスクパターンを解除することができる。
【０２１９】
次に、第７実施形態におけるＱＲコードシンボルの読み取り方法を説明する。
図３１は、第７実施形態におけるＱＲコードシンボル読み取り方法のフローチャートである。以下、本フローチャートと前述の図３０を参照しつつ、第７実施形態におけるＱＲコードシンボル読み取り方法の説明を行う。
【０２２０】
まず、拡張ＱＲコードシンボルの読み取りが行われる（Ｓ４０２）。拡張ＱＲコードシンボルの読み取りについては、第１実施形態と同様の手法が用いられるため、説明を省略する。
【０２２１】
次に、マスクパターン参照子ＭＰＲの値の読み出しが行われる（Ｓ４０４）。マスクパターン参照子ＭＰＲは、前述のように形式情報ＦＩに含まれる情報である。形式情報ＦＩは、ＱＲコードシンボル１において、標準マスクパターンによってマスキングされていない。そのため、形式情報ＦＩはＪＩＳ規格の手法で適切に読み出すことができる。そして、形式情報ＦＩに含まれるマスクパターン参照子ＭＰＲを特定することができる。
【０２２２】
次に、ＱＲコードシンボルの標準マスクパターンが解除される（Ｓ４０６）。ＱＲコードシンボル１に適用された標準マスクパターンは、マスクパターン参照子ＭＰＲによって特定することができる。そして、特定された標準マスクパターンを用いてＱＲコードシンボル１に適用された標準マスクパターンの解除が行われる。
【０２２３】
次に、標準マスクパターンが解除されたＱＲコードシンボルから複数のＲＳブロック（ここでは、置換後ＲＳブロック）が展開される。そして、マスクパターン参照子ＭＰＲに基づいて置換後ＲＳブロックにおける隠蔽情報語の位置が特定される（Ｓ４０８）。ここでは、置換後ＲＳブロックの先頭からマスクパターン参照子ＭＰＲの値の語数だけオフセットさせた位置が隠蔽情報語の先頭位置として特定される。
【０２２４】
再度、図３０を参照する。例えば、マスクパターン参照子ＭＰＲの値が「６」である場合には、図３０に示されるように、隠蔽情報語の開始位置は置換後ＲＳブロックの先頭から６語分オフセットした位置ということになる。
【０２２５】
次に、特定された隠蔽情報語の位置から隠蔽情報語が抽出される（Ｓ４１０）。また、置換後ＲＳブロックについて、リード・ソロモン符号を用いた訂正がなされる（Ｓ４１２）。リード・ソロモン符号による訂正が行われることにより、置換後ＲＳブロックは置換前ＲＳブロックへと変換される。そして、置換前ＲＳブロックから情報本体を抽出することができる。
【０２２６】
次に、得られた情報本体と隠蔽情報語が出力される（Ｓ４１４）。これらの出力は、表示装置１３に表示させることとしてもよいし、印刷装置１４により印刷させることとしてもよい。
【０２２７】
なお、上記説明によれば、マスクパターン参照子ＭＰＲに基づいて隠蔽情報語の位置を規定していたが、さらに、ＱＲコードシンボルの型番情報を利用して隠蔽情報語の位置を規定してもよい。ＱＲコードの型番は、ＪＩＳ規格において１型から４０型の４０種類を有する。よって、マスクパターン参照子ＭＰＲ（８種類）にさらに４０種類の組み合わせを適用して、計３２０種類の位置を規定することができるようになる。
【０２２８】
また、これらの組み合わせに加えて、ＱＲコードシンボルのエラー訂正のレベル情報を組み合わせてもよい。ＪＩＳ規格において、エラー訂正レベルは「Ｌ」「Ｍ」「Ｑ」「Ｈ」の４種類を有している。よって、これら４種類の組み合わせをさらに適用することで、計１２８０種類の位置を規定することができるようになる。
【０２２９】
また、特定された位置から連続して隠蔽情報語を置換することとしたが、前述の図１８のように隠蔽情報語を分散的に置換することとしてもよい。
【０２３０】
＝＝＝第８実施形態＝＝＝
図３２は、第８実施形態による手法でＲＳブロックの一部を置換したときの説明図である。第８実施形態では、前述の第２実施形態と同様に、置換前ＲＳブロックの一部がヘッダデータコード語と隠蔽情報語とで置換され、置換後ＲＳブロックが生成される。また、このとき、ヘッダデータコード語が示す位置で隠蔽情報語での置換が行われる。
【０２３１】
また、第８実施形態は、マスクパターン参照子ＭＰＲの値で置換位置が特定される点で第７実施形態と共通する。そこで、第７実施形態で用いたフローチャートの一部を変更しつつ、第８実施形態におけるＱＲコードシンボルの生成方法について説明する。
【０２３２】
ステップＳ３０２からステップＳ３０８の処理は、第７実施形態と同様である。よって、説明を省略する。第８実施形態において第７実施形態と異なるのは、ステップＳ３１０の処理である。第８実施形態では、置換前ＲＳブロックの先頭からマスクパターン参照子ＭＰＲの値と同じ語数分オフセットさせた位置を先頭位置として、ヘッダデータコード語による置換が行われる。また、ヘッダデータコード語で特定される位置で、隠蔽情報語での置換前ＲＳブロックの一部の置換が行われる。
【０２３３】
図３２では、マスクパターン参照子ＭＰＲが「２」である場合であって、置換前ＲＳブロックの先頭から２語分オフセットさせた位置でヘッダデータコード語での置換がされる様子が示されている。また、このヘッダデータコード語は、隠蔽情報語の置換位置として、置換前ＲＳブロックの先頭から８語オフセットさせた位置を表すものとする。そのため、置換前ＲＳブロックの先頭から８語オフセットさせた位置で隠蔽情報語による置換が行われている。
【０２３４】
以下、ステップＳ３１２からステップＳ３２２の処理は第７実施形態と同様であるので説明を省略する。
【０２３５】
なお、ヘッダデータコード語による置換位置と隠蔽情報語による置換位置であるが、これらの位置は互いに重ならないことが望ましい。これらが重なり合ってしまうと、ヘッダデータコード語と隠蔽情報語の少なくともいずれか一方が正確に復元できなくなってしまうためである。
【０２３６】
次に、第７実施形態で用いたフローチャートの一部を変更しつつ、第８実施形態におけるＱＲコードシンボルの読み取り方法について説明する。
【０２３７】
ステップＳ４０２からステップＳ４０６の処理は第７実施形態と同様である。よって、説明を省略する。第８実施形態において第７実施形態と異なるのは、ステップＳ４０８とステップＳ４１０の処理である。第８実施形態ではステップＳ４０８において、マスクパターン参照子ＭＰＲの値に基づいてヘッダデータコード語の位置を特定し、抽出する。そして、ステップＳ４１０において、ヘッダデータコード語を用いて隠蔽情報語の位置を特定し、隠蔽情報語の抽出を行う。
【０２３８】
以下、ステップＳ４１２からステップＳ４１４の処理は第７実施形態と同様であるので説明を省略する。
【０２３９】
このようにすることで、ＱＲコードシンボルに適用された標準マスクパターンを特定するマスクパターン参照子ＭＰＲが、ヘッダデータコード語で置換する位置を特定することにも用いられる。標準マスクパターンが８種類存在するため、マスクパターン参照子ＭＰＲの値も８種類の数値を有する。そのため、適用される標準マスクパターンに応じてヘッダデータコード語で置換する位置も変化させることができる。これにより、第三者にとってはヘッダデータコード語の位置を特定することが困難となり、隠蔽情報語の抽出をより困難なものとすることができる。
【０２４０】
また、第８実施形態の手法によれば、マスクパターン参照子ＭＰＲの値を０から７まで変化させて生成した全てのＱＲコードシンボルをステップＳ３２０で評価してみるまで、どの位置にヘッダデータコード語を配置したものが最適なＱＲコードシンボルとなるのか分からない。ステップＳ３２０で評価するまで、どの位置でヘッダデータコード語での置換が行われたＱＲコードシンボルが採用されるのかが分からないことになる。このように、予めヘッダデータコード語の置換位置を決めておくことができないので、ヘッダデータコード語の位置の特定を困難なものとすることができる。そして、ヘッダデータコード語の位置すら特定することが困難となるので、隠蔽情報語の位置を特定することはさらに困難となり、隠蔽情報語の抽出を困難なものとすることができる。
【０２４１】
＝＝＝第９実施形態＝＝＝
第９実施形態では、置換前ＲＳブロックを隠蔽情報語で置換するときにおいて、訂正コード語（ＲＳ符号）に基づいて置換する位置が特定される。以下、第１実施形態で用いたフローチャートの一部を変更しつつ、第９実施形態におけるＱＲコードシンボルの生成方法について説明する。
【０２４２】
ステップＳ１０２からステップＳ１０６の処理は、第１実施形態と同様である。よって、説明を省略する。第９実施形態で第１実施形態と異なるのは、ステップ１０６とステップＳ１０８の間に、訂正コード語に基づいて隠蔽情報語の置換位置が特定される点である。
【０２４３】
図３３は、第９実施形態による手法でＲＳブロックの一部を置換する手法を説明する第１の図である。図３３には、置換前ＲＳブロックが示されている。第９実施形態では、訂正コード語のある特定のバイト内の複数ビットに基づいて、隠蔽情報語の置換位置を特定している。具体的には、ここでは、訂正コード語の第３番目のバイトを抽出し、このバイトから下位４ビットを抽出する。そして、この下位４ビットの値を隠蔽情報語の置換位置とする。図３３では、下位４ビットの情報として「００１０」が示されている。「００１０」は十進数では「２」を表すが、ここでは、「０」を１番目の位置として特定させるので、「００１０」は、先頭から３番目の位置を表す。次に、この置換位置に基づいて隠蔽情報語での置換が行われる（Ｓ１０８）。
【０２４４】
図３４は、第９実施形態による手法でＲＳブロックの一部を置換する手法を説明する第２の図である。図３４には、置換前ＲＳブロックの先頭から３番目のバイトの位置（３語目の位置）から隠蔽情報語での置換が行われることが示されている。このようにして、訂正コード語に基づいて隠蔽情報語での置換位置が特定され、置換が行われる。
【０２４５】
このように隠蔽情報語での置換が行われると（Ｓ１０８）、置換後ＲＳブロックに基づいてＱＲコードが生成される（Ｓ１１０）。そして、標準マスクパターンによるマスキングが行われる。標準マスクパターンによるマスキングは、ＪＩＳ規格に準ずる。
【０２４６】
訂正コード語は、データコード語に基づいて求められる。そのため、データコード語が異なれば、訂正コード語も異なることになる。よって、訂正コード語に基づいて置換位置を特定することで、データコード語が異なれば置換位置も異なることとなるので、第三者にとっては隠蔽情報語の位置を特定することが困難となる。そして、隠蔽情報語の抽出をより困難なものとすることができる。
【０２４７】
次に、第１実施形態で用いたフローチャートの一部を変更しつつ、第９実施形態におけるＱＲコードシンボルの読み取り方法について説明する。
【０２４８】
ステップＳ２０２からステップＳ０４の処理は第１実施形態と同様である。よって、説明を省略する。第９実施形態において第１実施形態と異なるのは、ステップＳ２０６の処理である。第９実施形態では、訂正コード語のある特定のバイトのビットに基づいて、隠蔽情報語の置換位置を特定する。ここでは、前述のように、訂正コード語の第３番目のバイトを抽出する。そして、このバイトから下位４ビットを抽出し、この下位４ビットの表す値に基づいて隠蔽情報語の置換位置を特定する。このようにすることで、図３４に示されるように、適切に隠蔽情報語の位置を特定して、隠蔽情報語を抽出することができることになる。
【０２４９】
また、その後、訂正コード語を用いて置換後ＲＳブロックを訂正することにより、適切にデータコード語も抽出することができる。
【０２５０】
抽出したデータの結果出力は、第１実施形態と同様（Ｓ１０８）であるので説明を省略する。
【０２５１】
なお、隠蔽情報語で置換前ＲＳブロックの一部を置換する際、置換位置を特定するための訂正コード語のバイトも置換されてしまうおそれもある。このような場合には、先に訂正コード語により置換後ＲＳブロックを訂正することとしてもよい。このようにすることで、置換前ＲＳブロックを取得することができるから、置換位置を特定するための訂正コード語のバイトを適切に抽出することができる。
【０２５２】
また、上記説明では訂正コード語の第３番目のバイトを用いることとしたが、訂正コード語の他のバイトを用いることとしてもよいことは言うまでもない。また、下位４ビットを用いることで１６通りの位置を特定することができるようになるが、さらに用いるビット数を多くして、特定する位置を増やすこともできる。
【０２５３】
また、以上の説明では、隠蔽情報語の置換位置を特定するために訂正コード語を用いることとしたが、第２実施形態のヘッダデータコード語の概念を導入し、このヘッダデータコード語の位置を前述の訂正コード語により特定するようにしてもよい。誤り訂正コード語は、データコード語に基づいて求められる。そのため、データコード語が異なれば、誤り訂正コード語も異なることになる。よって、誤り訂正コード語に基づいて置換位置を特定することで、データコード語が異なれば置換位置も異なることとなるので、第三者にとってはヘッダデータコード語の位置を特定することすら困難となる。隠蔽情報語の位置はヘッダデータコード語で特定されるものであるため、隠蔽情報語の抽出をより困難なものとすることができる。
【０２５４】
＝＝＝適用例について＝＝＝
上記のようなＱＲコードシンボルは、例えば、予約販売制のイベントやコンサートなどのチケットに印刷して使用することができる。このとき、「表示情報」としては、「イベント名」、「席情報」、「予約番号」、および、「ＵＲＬ」とすることができる。一方、隠蔽情報としては、「予約時の情報」とすることができる。「予約時の情報」とは、「性別」、「年齢」、「氏名」、「免許証」などのＩＤ情報や、「パスフレーズ」を採用することができる。
【０２５５】
このような条件下において、仮に、表示情報のみを利用して新たにＱＲコードを作成するような偽造行為があったとする。この場合、このＱＲコードシンボルには、隠蔽情報が存在しない。よって、このＱＲコードシンボルは偽造されたものであると特定することができる。
【０２５６】
また、第１実施形態から第６実施形態を用いて作製したＱＲコードシンボルをそのままコピーした用いた場合には、拡張デコーダ２０によって隠蔽情報が読み出される。そして、隠蔽情報に含まれる「性別」、「年齢」、「免許証」のＩＤ情報や、「パスフレーズ」を本人と照合することにより、不正利用やなりすましを防止することができる。
【符号の説明】
【０２５７】
１０  拡張エンコーダ、
１１  制御部、１１ａ  演算部、１１ｂ  記憶部、
１３  表示装置、１４  印刷装置、１５  入力装置、
２０  拡張デコーダ、
２１  制御部、２１ａ  演算部、２１ｂ  記憶部、
２２  撮像装置、２３  表示装置、２４  印刷装置、２５  入力装置
【図１】
0005978315.tif 000002
【図２】
0005978315.tif 000003
【図３】
0005978315.tif 000004
【図４】
0005978315.tif 000005
【図５】
0005978315.tif 000006
【図６】
0005978315.tif 000007
【図７】
0005978315.tif 000008
【図８】
0005978315.tif 000009
【図９】
0005978315.tif 000010
【図１０】
0005978315.tif 000011
【図１１】
0005978315.tif 000012
【図１２】
0005978315.tif 000013
【図１３】
0005978315.tif 000014
【図１４】
0005978315.tif 000015
【図１５】
0005978315.tif 000016
【図１６】
0005978315.tif 000017
【図１７】
0005978315.tif 000018
【図１８】
0005978315.tif 000019
【図１９】
0005978315.tif 000020
【図２０】
0005978315.tif 000021
【図２１】
0005978315.tif 000022
【図２２】
0005978315.tif 000023
【図２３】
0005978315.tif 000024
【図２４】
0005978315.tif 000025
【図２５】
0005978315.tif 000026
【図２６】
0005978315.tif 000027
【図２７】
0005978315.tif 000028
【図２８】
0005978315.tif 000029
【図２９】
0005978315.tif 000030
【図３０】
0005978315.tif 000031
【図３１】
0005978315.tif 000032
【図３２】
0005978315.tif 000033
【図３３】
0005978315.tif 000034
【図３４】
0005978315.tif 000035