(57)【特許請求の範囲】
【請求項１】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求めることと、
前記保護符号化コードブロックに基づいて二次元コードを生成することと、
を含むことを特徴とする二次元コード生成方法。
【請求項２】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求め、前記保護符号化コードブロックに基づいて二次元コードを生成することを特徴とする二次元コード生成装置。
【請求項３】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求めることと、
前記保護符号化コードブロックに基づいて二次元コードを生成することと、
をコンピュータに行わせることを特徴とするプログラム。
【請求項４】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成されることを特徴とする二次元コード。
【請求項５】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成された二次元コードを読み取ることと、
前記二次元コードから前記保護符号化コードブロックを求めることと、
前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求めることと、
前記コードブロックから前記データコード語及び訂正コード語を抽出することと、
を含むことを特徴とする二次元コード読み取り方法。
【請求項６】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成された二次元コードを読み取り、
前記二次元コードから前記保護符号化コードブロックを求め、
前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求め、
前記コードブロックから前記データコード語及び訂正コード語を抽出することを特徴とする二次元コード読み取り装置。
【請求項７】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成された二次元コードを読み取ることと、
前記二次元コードから前記保護符号化コードブロックを求めることと、
前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求めることと、
前記コードブロックから前記データコード語及び訂正コード語を抽出することと、
をコンピュータに行わせることを特徴とするプログラム。
【請求項８】
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求め、前記保護符号化コードブロックに基づいて二次元コードを生成する二次元コード生成装置と、
生成された前記二次元コードを読み取り、前記二次元コードから前記保護符号化コードブロックを求め、前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求め、前記コードブロックから前記データコード語及び訂正コード語を抽出する二次元コード読み取り装置と、
を有することを特徴とする二次元コード管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コード生成方法、二次元コード生成装置、プログラム、二次元コード、二次元コード読み取り方法、二次元コード読み取り装置、及び、二次元コード管理システムに関する。
【背景技術】
【０００２】
図形コードを読み取り、そこに含まれる情報を取り出す二次元コードの技術として、たとえば、日本工業規格 JIS X 0510 : 2004「二次元コードシンボル−ＱＲコード−」がある。そして、さらにこのような二次元コードに開示対象情報以外の秘匿対象情報を隠蔽する技術が開発されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３１９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
秘匿対象情報を隠蔽する手法として情報そのものを暗号化することが考えられる。しかしながら、情報を暗号化したのでは、少なくとも二次元コードを読み取ることまでは可能である。そうすると、二次元コードが読み取られた後、暗号化された情報に基づく暗号化コード語が取得され、暗号解析が行われることも考え得る。そして、最終的に情報の内容が第三者に抽出され、秘匿対象情報が読み出されてしまうおそれがある。よって、二次元コードを用いて秘匿対象情報をより適切に保護することが望まれる。
【０００５】
本発明は、上記のような課題に鑑みなされたものであって、その主な目的は、二次元コードを用いて秘匿対象情報を適切に保護することにある。
【課題を解決するための手段】
【０００６】
主たる本発明は、
データコード語及び訂正コード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求めることと、
前記保護符号化コードブロックに基づいて二次元コードを生成することと、
を含むことを特徴とする二次元コード生成方法である。
【０００７】
本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
【図面の簡単な説明】
【０００８】
【図１】ＱＲコードシンボル１の説明図である。
【図２】拡張エンコーダ１０のブロック図である。
【図３】第１実施形態におけるＱＲコードシンボル生成処理の説明図である。
【図４】第１実施形態におけるＱＲコードシンボル生成方法のフローチャートである。
【図５】拡張デコーダ２０のブロック図である。
【図６】第１実施形態におけるＱＲコードシンボル読み取り処理の説明図である。
【図７】第１実施形態におけるＱＲコードシンボル読み取り処理のフローチャートである。
【発明を実施するための形態】
【０００９】
本明細書及び添付図面の記載により、少なくとも次のことが明らかにされる。
【００１０】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求めることと、
前記保護符号化コードブロックに基づいて二次元コードを生成することと、
を含むことを特徴とする二次元コード生成方法。
【００１１】
かかる二次元コード生成方法によれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００１２】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求め、前記保護符号化コードブロックに基づいて二次元コードを生成することを特徴とする二次元コード生成装置。
【００１３】
かかる二次元コード生成装置によれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００１４】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求めることと、
前記保護符号化コードブロックに基づいて二次元コードを生成することと、
をコンピュータに行わせることを特徴とするプログラム。
【００１５】
かかるプログラムによれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００１６】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成されることを特徴とする二次元コード。
【００１７】
かかる二次元コードによれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００１８】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成された二次元コードを読み取ることと、
前記二次元コードから前記保護符号化コードブロックを求めることと、
前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求めることと、
前記コードブロックから前記データコード語を抽出することと、
を含むことを特徴とする二次元コード読み取り方法。
【００１９】
かかる二次元コード読み取り方法によれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００２０】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成された二次元コードを読み取り、
前記二次元コードから前記保護符号化コードブロックを求め、
前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求め、
前記コードブロックから前記データコード語を抽出することを特徴とする二次元コード読み取り装置。
【００２１】
かかる二次元コード読み取り装置によれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００２２】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックが求められ、前記保護符号化コードブロックに基づいて生成された二次元コードを読み取ることと、
前記二次元コードから前記保護符号化コードブロックを求めることと、
前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求めることと、
前記コードブロックから前記データコード語を抽出することと、
をコンピュータに行わせることを特徴とするプログラム。
【００２３】
かかるプログラムによれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００２４】
データコード語を有するコードブロックと保護符号化用パターンとのビット単位での排他的論理和演算により前記コードブロックの保護符号化を行って保護符号化コードブロックを求め、前記保護符号化コードブロックに基づいて二次元コードを生成する二次元コード生成装置と、
生成された前記二次元コードを読み取り、前記二次元コードから前記保護符号化コードブロックを求め、前記保護符号化コードブロックと前記保護符号化用パターンとのビット単位での排他的論理和演算により前記保護符号化コードブロックを保護復号化した前記コードブロックを求め、前記コードブロックから前記データコード語を抽出する二次元コード読み取り装置と、
を有することを特徴とする二次元コード管理システム。
【００２５】
かかる二次元コード管理システムによれば、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
＝＝＝第１実施形態＝＝＝
【００２６】
以下に、第１実施形態で用いられる二次元コードについて説明を行う。以下の説明で特段のことわりのない場合には、日本工業規格 JIS X 0510 : 2004「二次元コードシンボル−ＱＲコード−」（以下、単に「ＪＩＳ規格」ということがある）に準ずる。また、このＪＩＳ規格に準ずるエンコーダを標準エンコーダといい、ＪＩＳ規格に準ずるデコーダを標準デコーダという。また、以下に示す保護符号化処理を行うことができるエンコーダを拡張エンコーダといい、保護復号化処理を行うことができるデコーダを拡張デコーダという。そして、これらを区別する。
【００２７】
また、以下の説明において、「保護符号化用パターン」は、読み出しを阻止する目的で排他的論理和を用いた保護符号化を行う際に使用されるいわば保護マスクパターンであり、ＪＩＳ規格における標準マスクパターンとは異なるものである。また、ＪＩＳ規格で規定されているマスクパターンについては、この「保護符号化用パターン」と区別するために、「標準マスクパターン」と表現するものとする。
【００２８】
また、以下の説明において、「コード語」は、８ビット長として説明するが、システムに応じて、１６ビット長とすることもできるし、１ビット長など他の長さを有するものとすることもできる。
【００２９】
図１は、ＱＲコードシンボル１の説明図である。ＱＲコードシンボル１（以下、単に、「ＱＲコード」ということもある）は、１型から４０型まで様々なサイズが用意されているが、ここでは、一例として型番「２」を例に各機能について説明する。
【００３０】
ＱＲコードシンボル１は、機能パターンと符号化領域を有する。機能パターンは、ＱＲコードのモジュール内での復号化を補助するために必要なＱＲコードシンボル位置の検索や特性の識別に必要なパターンである。符号化領域は、必要となる情報が書き込まれている領域である。
【００３１】
機能パターンは、位置検出パターンＦＰ、分離パターンＳＰ、タイミングパターンＴＰ、位置合わせパターンＡＰ、および、クワイエットゾーンＱＺを有する。
【００３２】
位置検出パターンＦＰは、ＱＲコードの少なくとも３つの隅に配置されるパターンである。読み取り時において、３つの位置検出パターンＦＰを識別することで、ＱＲコードシンボル１の方向や位置を正しく認識可能とする。
【００３３】
分離パターンＳＰは、位置検出パターンＦＰの周りに配置される１モジュール幅の明モジュールである。これにより、位置検出パターンＦＰをＱＲコードシンボル１から区別することができるようになる。
【００３４】
モジュールＭは、ＱＲコードシンボル１を構成する単位セルである。原則として、１ビットが１モジュールに相当する。なお、ここでは、ＱＲコードを構成する単位セルであるモジュールＭを複数集合させたものをモジュール群と呼ぶ。
【００３５】
タイミングパターンＴＰは、暗モジュールと明モジュールが１モジュールずつ直線状に交互に配置されたパターンである。タイミングパターンＴＰによって、ＱＲコードシンボル１のモジュール数を認識可能となるため、これによりＱＲコードの型番を識別することができる。
【００３６】
位置合わせパターンＡＰは、ＱＲコードの型番によって決められた位置に配置されるパターンである。位置合わせパターンＡＰは、大きなモジュールの場合、ＱＲコードシンボル１の位置の検索を補助する働きをする。
【００３７】
クワイエットゾーンＱＺは、ＱＲコードの周囲に設けられる最低４モジュール幅の明モジュール領域である。
【００３８】
符号化領域は、データおよび誤り訂正コード語（以下、単に「訂正コード語」ということがある）と、形式情報ＦＩを有する。また、型番の大きなものには型番情報ＶＩも付加される。形式情報ＦＩは、誤り訂正レベルと標準マスクパターンの情報を有する。標準マスクパターンの情報はマスクパターン参照子で表現される。なお、後述する、標準マスクパターンおよび保護符号化用パターンによる保護符号化は、符号化領域のうち、形式情報ＦＩおよび型番情報ＶＩを除いた領域にのみ適用される。
【００３９】
データおよび誤り訂正コード語は、実際のデータおよびデータが読み出せなかった場合の誤り訂正用の誤り訂正コード語を配置する。形式情報は、ＱＲコードシンボル１に適用する誤り訂正レベルおよび使用する標準マスクパターンに関する情報を有し、符号化領域を復号化するのに必要な符号化パターンである。
【００４０】
図２は、拡張エンコーダ１０（二次元コード生成装置に相当）のブロック図である。拡張エンコーダ１０は、後述するＱＲコードシンボル生成処理を行うことができるＱＲコードシンボル１の生成装置である。拡張エンコーダ１０は、制御部１１と表示装置１３と印刷装置１４と入力装置１５を備える。
【００４１】
制御部１１は、演算部１１ａと記憶部１１ｂを備える。演算部１１ａは中央演算装置等からなり、プログラムの実行および種々の演算を担う。記憶部１１ｂは、プログラムの実行に際して、必要なデータの記憶を担う。特に、記憶部１１ｂには、後述するＱＲコード生成処理を実行するためのプログラムが記憶されている。
【００４２】
表示装置１３は、データの入力等に際し必要な表示機能を担う。また、表示装置１３は、生成されたＱＲコードシンボル１を表示により出力する。印刷装置１４も、生成されたＱＲコードシンボル１を印刷により出力する。また、入力装置１５は、データの入力および拡張エンコーダ１０の操作に使用される。
【００４３】
拡張エンコーダ１０の構成は、一般的なコンピュータ、携帯電話、および、スマートフォン等に、後述する保護符号化処理を実行するためのプログラムをインストールすることによって実現することができる。
【００４４】
図３は、第１実施形態における拡張ＱＲコードシンボル生成処理の説明図である。図４は、第１実施形態における拡張ＱＲコードシンボル生成処理のフローチャートである。ここでは、後述するように、ＲＳブロック（「コードブロック」に相当する）に対して保護符号化処理を行って、第三者による読み取りを困難にしている。そのため、ここで生成されるＱＲコードシンボルを、拡張ＱＲコードシンボルと呼ぶことにする（単に、ＱＲコードシンボルと呼ぶこともある）。以下、これらの図を参照しながら、拡張ＱＲコードシンボル生成処理について説明する。
【００４５】
最初に、ＱＲコードシンボル１に埋め込まれる情報本体が取り込まれる（Ｓ１０２）。情報本体の取り込みは、入力装置１５を介して行ってもよいし、記憶部１１ｂに予め記憶された情報を用いてもよい。
【００４６】
次に、情報本体に基づいてＱＲコードシンボル１の型番が決定される（Ｓ１０４）。ＱＲコードシンボル１は型番に応じてトータルのコード語数が定められている。トータルのコード語数は、情報本体の語数を含むデータコード語数と、訂正コード語数と、の和である。また、ＱＲコードシンボル１の型番に応じて、データコード語と訂正コード語からなるＲＳブロックの大きさと数が定められている。そして、誤り訂正は、ＲＳブロックを単位として行われる。
【００４７】
例えば、誤り訂正レベルが「Ｈ」であって、型番が「４」の場合、トータルのコード語数は「１００」と定められている。そして、４つのＲＳブロックを含む事が定められている。１つのＲＳブロックにおけるデータコード語数は「９」であり、訂正コード語数は「１６」である。
【００４８】
データコード語数「９」と訂正コード語数「１６」の和は「２５」であり、このようなＲＳブロックが４つあるため、型番が「４」のＱＲコードシンボルは、２５×４＝１００の総コード語数を有することになる。
【００４９】
また、このときの誤り訂正可能語数は、ＲＳブロック毎に「８」である。これは、データコード語数「９」のうちの「８」を訂正する能力を有することを表す。ＲＳブロックは４つであったから、４×８＝３２の語数の総訂正能力を有することになる。１００語のうち３２語を訂正可能としているので、全体からすると３２％の訂正能力を有することになる。
【００５０】
次に、情報本体のコード語に基づいてＲＳブロックが生成される（Ｓ１０６）。ＲＳブロックは、ＪＩＳ規格にも規定されているように、データコード語とリード・ソロモン符号（以下、「ＲＳ符号」ということがある）からなるブロックである。データコード語には、情報本体、終端符号、および、パディングコード語が含まれる。また、ＪＩＳ規格に規定される他の情報が含まれることがある。ＲＳ符号は、ＲＳブロックの誤り訂正を行うための訂正符号である。ここで用いられるＲＳ符号についてもＪＩＳ規格で規定されている。ＲＳブロックを生成するため、情報本体のコード語が複数のブロックに分割される。そして、各ブロックに対して誤り訂正語が生成され、生成された訂正コード語が対応するコード語の後に付加され、ＲＳブロックが生成される。
【００５１】
次に、マスクパターン参照子ＭＰＲの値が「０」に初期化される（Ｓ１０８）。ＪＩＳ規格のマスクパターン参照子ＭＰＲによれば、マスクパターン参照子ＭＰＲの値は、０から７（「０００」〜「１１１」）までの数値を有する。そこで、ここでは、マスクパターン参照子ＭＰＲの値を０から７まで変化させ、後述するステップＳ１１０からステップＳ１１６の処理を繰り返し行わせる。そのために、マスクパターン参照子ＭＰＲの値を「０」に初期化するのである。
【００５２】
次に、保護符号化用パターンが記憶部１１ｂから取り込まれる（Ｓ１１０）。保護符号化用パターンは、前述のＲＳブロックの保護符号化に用いられるパターンである。ＲＳブロックが保護符号化用パターンによって保護符号化されると、保護符号化後ＲＳブロックとなる。保護符号化用パターンは、後述する処理により、ＲＳブロックにおけるビット列との排他的論理和を行うことに用いられる。そのため、保護符号化用パターンもビット列からなるパターンということになる。
【００５３】
なお、本実施の形態においては、保護符号化用パターンが記憶部１１ｂに予め記憶されているが、この保護符号化用パターンは、顧客（企業）毎に変えるようにしてもよいし、顧客（企業）にかかわらず統一された（唯一の）値としてもよい。
【００５４】
次に、取り込まれた保護符号化用パターンが用いられ、ＲＳブロックの保護符号化が行われる。そして、保護符号化後ＲＳブロック（「保護符号化コードブロック」に相当する）が生成される（Ｓ１１２）。図３には、ＲＳブロックと保護符号化用パターンとのビット単位での排他的論理和が計算され、保護符号化後ＲＳブロックが生成される様子が示されている。このように、ＲＳブロックは、保護符号化用パターンにより保護符号化される。ＲＳブロックは複数存在するが、これら全てのＲＳブロックに対して保護符号化が行われる。なお、このように、ビット単位での排他的論理和を行うこととしているので、保護符号化処理と後述する保護復号化処理とを排他的論理和を演算するという共通の処理とすることができる。
【００５５】
次に、保護符号化後ＲＳブロックが用いられ、ＪＩＳ規格に規定される構成方法に準じてＱＲコードシンボルが生成される（Ｓ１１４）。ただし、ここで生成されるＱＲコードシンボルは、ＪＩＳ規格による標準マスクパターン適用前のものである。標準マスクパターン適用前のＱＲコードシンボルの生成手法はＪＩＳ規格に準ずるため詳細な説明は行わないが、保護符号化後ＲＳブロックの各ビットがモジュールに変換され、これらのモジュールが対応する位置に配置されることになる。これらの複数のモジュールはモジュール群であり、モジュール群には後述する標準マスクパターンが適用されることになる。
【００５６】
次に、生成されたＱＲコードシンボルに対して、マスクパターン参照子ＭＰＲで特定される標準マスクパターンが適用される（Ｓ１１６）。標準マスクパターンの適用については、ＪＩＳ規格に準ずるため詳細な説明を省略するが、これにより、前述のようにモジュール群に対して標準マスクパターンが適用されることになる。
【００５７】
次に、マスクパターン参照子ＭＰＲの値が７であるか否かが判定される（Ｓ１１８）。これにより、マスクパターン参照子ＭＰＲの値が０から７までの全てのケースについて、ステップＳ１１０からステップＳ１１４までの処理を行ったか否かの判定がなされることになる。そして、ステップＳ１１８において、マスクパターン参照子ＭＰＲの値が７ではない場合には、マスクパターン参照子ＭＰＲの値がインクリメントされる（Ｓ１２０）。
【００５８】
一方、ステップＳ１１８において、マスクパターン参照子ＭＰＲの値が「７」である場合には、これまでの処理で、マスクパターン参照子ＭＰＲの値を０から７まで変化させたときの全てのＱＲコードシンボルが生成されていることになる。そこで、これらの８個のＱＲコードシンボルが評価され、最適なＱＲコードシンボルが特定される（Ｓ１２２）。
【００５９】
ステップＳ１２２におけるＱＲコードシンボルの評価は、ＪＩＳ規格における「マスク処理結果の評価」が適用されるため説明を省略する。この評価処理を行うことにより、モジュールが適度にばらついたＱＲコードシンボルが特定されることになる。
【００６０】
なお、上記手法によれば、８種類のＱＲコードシンボルをまとめて記憶しておき、ステップＳ１２２においてこれらのＱＲコードシンボルの評価を行うこととしたが、ＱＲコードシンボルを生成するごとに評価処理を行うこととしてもよい。そして、今回生成したＱＲコードシンボルの評価値と、前のマスクパターン参照子ＭＰＲの値によるＱＲコードシンボルの評価値との比較を行うこととしてもよい。そして、評価値の良いＱＲコードシンボルだけを記憶しておき、次のマスクパターン参照子ＭＰＲの値によるＱＲコードシンボルの生成、評価、および、評価値の比較を行うこととしてもよい。このようにすることで、記憶容量の節約を図ることができる。
【００６１】
次に、ステップＳ１２２において特定されたＱＲコードシンボルが出力される（Ｓ１２４）。ＱＲコードシンボルの出力は、表示装置１３に表示させることとしてもよいし、印刷装置１４により印刷させることとしてもよい。
【００６２】
なお、標準マスクパターンの適用については、ステップＳ１１２の保護符号化後ＲＳブロック生成処理よりも前に行わせることもできる。ただし、ＱＲコードシンボルにおけるモジュールの分散性という観点からすれば、標準マスクパターンの適用はステップＳ１１２の保護符号化後ＲＳブロック生成処理よりも後に行われることが望ましい。
【００６３】
次に、拡張ＱＲコードの読み取り処理について説明する。
【００６４】
図５は、拡張デコーダ２０（二次元コード読み取り装置に相当）のブロック図である。拡張デコーダ２０は、前述の拡張ＱＲコードシンボルの読み取り処理を行うことができる読み取り装置である。拡張デコーダ２０は、制御部２１と撮像装置２２と表示装置２３と印刷装置２４と入力装置２５を備える。なお、一般的なＱＲコードの読み取り装置では、後述する保護復号化処理を行うことができないため、拡張ＱＲコードシンボルの読み取りを適切に行うことができない。また、前述した拡張エンコーダ１０と当該拡張デコーダ２０とで、二次元コード管理システムが構成される。
【００６５】
制御部２１は、演算部２１ａと記憶部２１ｂを備える。演算部２１ａは中央演算装置等からなり、プログラムの実行および種々の演算を担う。記憶部２１ｂは、プログラムの実行に際して、必要なデータの記憶を担う。特に、記憶部２１ｂには、後述するＱＲコード読み取り処理を実行するためのプログラムが記憶されている。
【００６６】
撮像装置２２は、拡張ＱＲコードシンボルを撮像するための装置であって、例えば、ＣＣＤカメラなどである。
【００６７】
表示装置２３は、データの入力等に際し必要な表示機能を担う。また、表示装置２３は、ＱＲコードから展開された情報を表示により出力する。印刷装置２４も、展開された情報を印刷により出力する。また、入力装置２５は、データの入力および拡張デコーダ２０の操作に使用される。
【００６８】
拡張デコーダ２０の構成は、撮像装置２２を備えていれば、必ずしも専用機器でなくとも、一般的なコンピュータ、携帯電話、および、スマートフォンに、後述する拡張ＱＲコードシンボルの読み取り処理を実行するためのプログラムをインストールすることによって実現することができる。また、前述の拡張エンコーダ１０と拡張デコーダ２０とを一体化して実現することも可能である。
【００６９】
図６は、第１実施形態における拡張ＱＲコードシンボル読み取り処理の説明図である。図７は、第１実施形態における拡張ＱＲコードシンボル読み取り処理のフローチャートである。以下、これらの図を参照しながら、ＱＲコードシンボルの読み取り処理について説明する。
【００７０】
まず、拡張ＱＲコードシンボルの読み取りが行われる（Ｓ２０２）。そして、読み取った拡張ＱＲコードシンボルの形式情報ＦＩからマスクパターン参照子ＭＰＲが読み出される（Ｓ２０４）。次に、マスクパターン参照子ＭＰＲの値に基づいて、適用された標準マスクパターンが特定され、この標準マスクパターンを用いて標準マスクパターンの解除が行われる（Ｓ２０６）。標準マスクパターンの特定方法、および、解除方法は、ＪＩＳ規格に準ずるものであるため説明を省略する。これにより、前述のモジュール群が得られることになる。
【００７１】
次に、標準マスクパターンが解除された拡張ＱＲコードシンボルのモジュール群から、複数の保護符号化後ＲＳブロックが展開される（Ｓ２０８）。これら複数の保護符号化後ＲＳブロックの展開は、ＪＩＳ規格におけるＲＳブロックの展開に準ずる手法を採用することができる。これにより、例えば、前述の図６に示された保護符号化後ＲＳブロックが取得される。
【００７２】
次に、保護符号化用パターンが記憶部２１ｂから取り込まれる（Ｓ２１０）。この保護符号化パターンは、前述の拡張エンコーダ１０の記憶部１１ｂに記録されていたパターンと同一のパターンである。なお、このステップＳ２１０が実行されるのは、読み取ったＱＲコードシンボルが標準のデコード処理によってはデータコード語の抽出ができない場合である。当然、この場合のＱＲコードシンボルは通常のデコーダ（標準のデコード手段）ではデータコード語を抽出することはできない。つまり、本実施形態のように保護符号化用パターンにより保護符号化が行われたＱＲコードシンボルを読み取ろうとした場合にのみ、ステップＳ２１０移行の処理が行われ、それ以外のときは標準のデコード処理が行われることになる。
【００７３】
なお、本実施の形態においては、保護符号化用パターンが記憶部２１ｂに予め記憶されているが、この保護符号化用パターンは、顧客（企業）毎に変えるようにしてもよいし、顧客（企業）にかかわらず統一された（唯一の）値としてもよい。また、拡張エンコーダ１０と拡張デコーダ２０とが一体化して実現されている場合には、保護符号化用パターンを一つ（共通）の記憶部に記録しておけばよい。
【００７４】
次に、生成された保護符号化用パターンが用いられ、保護符号化後ＲＳブロックの保護復号化が行われる（Ｓ２１２）。図６には、保護符号化後ＲＳブロックと保護符号化用パターンとの排他的論理和が計算され、保護復号化されたＲＳブロック（つまり、保護符号化される前のＲＳブロック）が生成される様子が示されている。保護符号化後ＲＳブロックはほとんどの場合複数存在するが、これら全ての保護符号化後ＲＳブロックに対して保護復号化が行われる。
【００７５】
次に、ＲＳブロックからデータコード語の抽出が行われる（Ｓ２１４）。データコード語の抽出に際し、ＲＳ符号による誤り訂正も行われる。誤り訂正により、仮にデータコード語に汚損が生じていても、元のデータコード語へと復元することができる。そして、復元されたデータコード語が抽出される。これは、汚損などによる読み取り誤りがあったとしても、排他的論理和演算の特性から保護符号化用パターンを用いた保護復号化演算を施しても、この誤りは元のコード語の同じ位置のビットに残存することとなるため、誤り訂正符号によって適切に訂正されるためである。
【００７６】
次に、抽出されたデータコード語に含まれる情報本体が出力される（Ｓ２１６）。出力方法としては、表示装置２３に表示させたり、印刷装置２４に印刷させたりすることができる。
【００７７】
上述した通り、本実施の形態に係る二次元コード生成方法は、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）を求めることと、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて二次元コードを生成することと、を含むこととした。
【００７８】
また、本実施の形態に係る拡張エンコーダ１０は、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）を求め、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて二次元コードを生成することとした。
【００７９】
また、本実施の形態に係るプログラムは、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）を求めることと、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて二次元コードを生成することと、をコンピュータに行わせることとした。
【００８０】
また、本実施の形態に係る二次元コードは、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）が求められ、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて生成されることとした。
【００８１】
また、本実施の形態に係る二次元コード読み取り方法は、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）が求められ、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて生成された二次元コードを読み取ることと、二次元コードから保護符号化コードブロック（保護符号化後ＲＳブロック）を求めることと、保護符号化コードブロック（保護符号化後ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算により保護符号化コードブロック（保護符号化後ＲＳブロック）を保護復号化したコードブロック（ＲＳブロック）を求めることと、コードブロック（ＲＳブロック）からデータコード語を抽出することと、を含むこととした。
【００８２】
また、本実施の形態に係る拡張デコーダ２０は、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）が求められ、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて生成された二次元コードを読み取り、二次元コードから保護符号化コードブロック（保護符号化後ＲＳブロック）を求め、保護符号化コードブロック（保護符号化後ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算により保護符号化コードブロック（保護符号化後ＲＳブロック）を保護復号化したコードブロック（ＲＳブロック）を求め、コードブロック（ＲＳブロック）からデータコード語を抽出することとした。
【００８３】
また、本実施の形態に係るプログラムは、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）が求められ、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて生成された二次元コードを読み取ることと、二次元コードから保護符号化コードブロック（保護符号化後ＲＳブロック）を求めることと、保護符号化コードブロック（保護符号化後ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算により保護符号化コードブロック（保護符号化後ＲＳブロック）を保護復号化したコードブロック（ＲＳブロック）を求めることと、コードブロック（ＲＳブロック）からデータコード語を抽出することと、をコンピュータに行わせることとした。
【００８４】
また、本実施の形態に係る二次元コード管理システムは、データコード語を有するコードブロック（ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算によりコードブロック（ＲＳブロック）の保護符号化を行って保護符号化コードブロック（保護符号化後ＲＳブロック）を求め、保護符号化コードブロック（保護符号化後ＲＳブロック）に基づいて二次元コードを生成する拡張エンコーダ１０と、生成された二次元コードを読み取り、二次元コードから保護符号化コードブロック（保護符号化後ＲＳブロック）を求め、保護符号化コードブロック（保護符号化後ＲＳブロック）と保護符号化用パターンとのビット単位での排他的論理和演算により保護符号化コードブロック（保護符号化後ＲＳブロック）を保護復号化したコードブロック（ＲＳブロック）を求め、コードブロック（ＲＳブロック）からデータコード語を抽出する拡張デコーダ２０と、を有することとした。
【００８５】
そのため、二次元コードを用いて秘匿対象情報を適切に保護することが可能となる。
【００８６】
秘匿対象情報を隠蔽する手法として情報そのものを暗号化することが考えられる。しかしながら、情報を暗号化したのでは、少なくとも二次元コードを読み取ることまでは可能である。そうすると、二次元コードが読み取られた後、暗号化された情報に基づく暗号化コード語が取得され、暗号解析が行われることも考え得る。そして、最終的に情報の内容が第三者に抽出され、秘匿対象情報が読み出されてしまうおそれがある。
【００８７】
これに対し、本実施の形態においては、生成された二次元コード（拡張ＱＲコードシンボル）に、保護符号化用パターンが適用されているため、一般的なＱＲコード読み取り装置では、保護復号化処理を行うことができず、二次元コード（拡張ＱＲコードシンボル）の読み取りすら行うことができない。つまり、生成された二次元コード（拡張ＱＲコードシンボル）については、見た目は通常の（非拡張）ＱＲコードと変わらない形態を備えていても、通常のデコーダでは読み取ることができない。そのため、情報コード語そのものを暗号化する例と比べて、秘匿対象情報をより適切に保護することが可能となる。
【００８８】
また、コードブロック（保護符号化コードブロック）と保護符号化用パターンとのビット単位での排他的論理和演算により保護符号化（保護復号化）が行われるため、汚れ等により二次元コードの読み取りエラーが生じたときであっても、保護復号化された後に他の部分に波及することがない（つまり、エラーが生じたビットにしか悪影響が及ぼされない）というメリットを有する。
＝＝＝その他の実施の形態＝＝＝
【００８９】
上記の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは言うまでもない。特に、以下に述べる実施形態であっても、本発明に含まれるものである。
【００９０】
また、上記実施の形態においては、二次元コードとして標準的なＱＲコードを例に挙げて説明したが、これに限定されるものではなく、国際公開第２０１５／６４３３４号や特開２００９−９５４７号公報に記載されているような拡張されたＱＲコードでもよい。また、ＱＲコードに限定されるものではなく、他の二次元コード（例えば、ＤａｔａＭａｔｒｉｘ、ＰＤＦ４１７等）でも構わない。本発明は、これらのいずれの二次元コードにも適用可能である。
【００９１】
また、上記実施の形態においては、保護符号化用パターンが記憶部１１ｂ（記憶部２１ｂ）に予め記憶されていることとしたが、これに限定されるものではない。例えば、保護符号化用パターンを生成するための関数が記憶部１１ｂ（記憶部２１ｂ）に記録されており、ユーザーにより入力された入力値（パスコード）を関数に代入することにより、保護符号化用パターンを生成するようにしてもよい。
【００９２】
以下で、三角関数（ＳＩＮ関数）を例に挙げて、具体的に説明する。
【００９３】
ここで用いられる関数を例えば次のように定義する。
「入力値としてＡＳＣＩＩ表記の数字文字列を、表記する数字が１０進数であるとしてｎとする三角関数ＳＩＮ（ｎ）の値を求め、この絶対値（ＳＩＮ関数は−１から＋１の間の値を出力する）の小数点以下の数字を必要な長さの１６進数の数列として出力する関数」
そして、例えば、保護符号化される情報文字列、および、入力値を以下とする。
保護符号化される情報文字列（ASCII表記）：Hello 
保護符号化される情報文字列（１６進数表記）：0x48656C6C6F
入力値（ASCII表記）：7505
このとき、出力値（保護符号化用パターン）は、以下となる。
出力値：8191520442・・・(=sin(7505)=-0.8191520442・・・)
【００９４】
これらを用いた保護符号化処理は次のようになる。情報文字列「Hello」は、１６進数表記すると「0x48656C6C6F」であった。出力値（保護符号化用パターン）は、１６進数表記で「0x8191520442」であった。これら両者の論理的排他和(XOR)をとると、「0xC9F43E682D」となる。つまり、上記保護符号化処理により、情報文字列「Hello」は、「0xC9F43E682D」という全く意味をなさないデータコード語へと保護符号化される。
【００９５】
なお、上記では、関数として三角関数（ＳＩＮ関数）を例に挙げて説明したが、これに限定されるものではなく、例えば、疑似乱数発生関数、ハッシュ関数（ＳＨＡ−１、ＭＤ５など）、暗号化関数（ＤＥＳ、ＡＥＳなど）、数理関数（対数関数など）を採用することが可能である。
【００９６】
また、入力値の選択を入力者に任せるのではなく、顧客（企業）毎に予め入力値を決めておくようにしてもよい。
【符号の説明】
【００９７】
１  ＱＲコードシンボル、
１０  拡張エンコーダ、
１１  制御部、１１ａ  演算部、１１ｂ  記憶部、
１３  表示装置、１４  印刷装置、１５  入力装置、
２０  拡張デコーダ、
２１  制御部、２１ａ  演算部、２１ｂ  記憶部、
２２  撮像装置、２３  表示装置、２４  印刷装置、２５  入力装置
【図１】
0006709607.tif 000002
【図２】
0006709607.tif 000003
【図３】
0006709607.tif 000004
【図４】
0006709607.tif 000005
【図５】
0006709607.tif 000006
【図６】
0006709607.tif 000007
【図７】
0006709607.tif 000008