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