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