(57)【特許請求の範囲】
【請求項１】
一部または全部が暗号化されたデータを二次元コードのコード仕様でコード化したデータコード語と、このデータコード語の誤りを検出し訂正し得る誤り訂正データを前記コード仕様でコード化した誤り訂正コード語と、を記録してなり、且つ前記データコード語及び前記誤り訂正コード語がいずれも、前記コード化に用いられる単位セルである明暗モジュールを配列したパターンとして構成された二次元コードであって、
前記データの解読に用いる鍵データをコード化した鍵コードパターンを備え、
前記鍵コードパターンは、前記明暗モジュールを用いて構成されており、前記データコード語および前記誤り訂正コード語の少なくとも一方に上書きした構成で重複して記録されていることを特徴とする二次元コード。
【請求項２】
前記鍵コードパターンは、前記データコード語をデコードするのに要する機能パターンを避けて配置されていることを特徴とする請求項１記載の二次元コード。
【請求項３】
一部または全部が暗号化されたデータを二次元コードのコード仕様でコード化したデータコード語と、このデータコード語の誤りを検出し訂正し得る誤り訂正データを前記コード仕様でコード化した誤り訂正コード語と、を記録しており、前記コード化に用いられる単位セルである明暗モジュールを用いたパターンに前記データの解読に用いる鍵データをコード化した鍵コードパターンを、前記データコード語および前記誤り訂正コード語の少なくとも一方に重複して記録されている二次元コードをデコードするとともに、前記暗号化されたデータを前記鍵データを用いて解読する二次元コードの読取装置であって、
前記データコード語の誤りを検出する誤り検出手段と、
前記誤り検出手段により検出された誤りの発生した位置が、前記鍵コードパターンが記録されている範囲情報で予め有するものに基づいて特定される所定範囲内に存在する場合、この所定範囲内に記録されている前記鍵コードパターンを取得する鍵コードパターン取得手段と、
前記鍵コードパターン取得手段により取得された前記鍵コードパターンをデコードして前記鍵データを生成する鍵データデコード手段と、
前記鍵データデコード手段によりデコードされた前記鍵データを用いて前記暗号化されたデータを解読する暗号解読手段と、
を備えることを特徴とする二次元コードの読取装置。
【請求項４】
前記鍵コードパターン取得手段は、前記誤りの発生した位置が前記所定範囲内に複数存在する場合に限って、前記所定範囲内に記録されている前記鍵コードパターンを取得することを特徴とする請求項３記載の二次元コードの読取装置。
【請求項５】
前記鍵コードパターンは、前記データコード語をデコードするのに要する機能パターンを避けて配置されていることを特徴とする請求項３又は請求項４に記載の二次元コードの読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コードおよびその読取装置に関するものである。
【背景技術】
【０００２】
一部または全部が暗号化されたデータを二次元コードのコード仕様でコード化したデータコード語と、このデータコード語の誤りを検出し訂正し得る誤り訂正データをコード仕様でコード化した誤り訂正コード語と、を記録している二次元コードとして、例えば、下記特許文献１に開示される「２次元コード」がある。
【０００３】
これによると、二次元コードとして記録されたデータに秘匿性を持たせるため、暗号鍵を特定可能な文字列情報を、当該二次元コードを構成する暗色の単位セルの形状に対応させた構成にする。例えば、１０ドット×１０ドットにより構成される単位セルに対して２ドット×２ドット分の欠落領域とその欠落領域の数と位置とによって１０種類の形状を構成しそれぞれの形状に対応して１０種類の文字（例えば０，１〜９の数字）に対応づけることで、暗号鍵を特定可能な文字列を構成する。
【特許文献１】特開２００６−４３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に開示される技術によると、単位セルの異形状に対応させた文字列の組み合わせから、暗号鍵の特定は可能にはなるものの、このような欠落領域を有する異形状セルを紙やフィルム等の表示媒体に印刷する場合には、印刷精度を高める必要や、印刷に用いられるインクや紙について印刷の掠れやインクの滲みあるいはインクの乗りといった印刷特性の面においても技術的に要求されるものが高くなる。
【０００５】
このため、汎用性の高いラベルプリンタやラベル用紙等では対応し難いことから、設備コストやランニングコストの増加を招いてしまうという問題がある。
【０００６】
また、このような外見上違和感のある異形状セルが二次元コードに含まれていることに起因して、当該二次元コードが暗号化されていることを認識し得る使用者に対しては、当該暗号の解読を試みようとする不用意な動機を与える可能性があることから、セキュリティ上の問題も生じ得る。
【０００７】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、設備コストやランニングコストの増加を招くことなく、また二次元コードの利用者には暗号化されていることを認識され難い二次元コードおよびその読取装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、特許請求の範囲に記載の請求項１の二次元コードでは、一部または全部が暗号化されたデータを二次元コードのコード仕様でコード化したデータコード語と、このデータコード語の誤りを検出し訂正し得る誤り訂正データを前記コード仕様でコード化した誤り訂正コード語と、を記録してなり、且つ前記データコード語及び前記誤り訂正コード語がいずれも、前記コード化に用いられる単位セルである明暗モジュールを配列したパターンとして構成された二次元コードであって、前記データの解読に用いる鍵データをコード化した鍵コードパターンを備え、前記鍵コードパターンは、前記明暗モジュールを用いて構成されており、前記データコード語および前記誤り訂正コード語の少なくとも一方に上書きした構成で重複して記録されていることを技術的特徴とする。ここで、「モジュール」とは、当該二次元コードを構成する最小構成要素のことで、「明暗モジュール」とは、当該モジュールが明色（例えば白色等の明度の高い色）と暗色（例えば黒色等の明度の低い色）の２種類で構成される場合における明色のモジュール（明モジュール）と暗色のモジュール（暗モジュール）との双方を表す概念である。
【０００９】
特許請求の範囲に記載の請求項２の二次元コードでは、請求項１記載の二次元コードにおいて、前記鍵コードパターンは、前記データコード語をデコードするのに要する機能パターンを避けて配置されていることを技術的特徴とする。
【００１０】
特許請求の範囲に記載の請求項３の二次元コードの読取装置では、一部または全部が暗号化されたデータを二次元コードのコード仕様でコード化したデータコード語と、このデータコード語の誤りを検出し訂正し得る誤り訂正データを前記コード仕様でコード化した誤り訂正コード語と、を記録しており、前記コード化に用いられる単位セルである明暗モジュールを用いたパターンに前記データの解読に用いる鍵データをコード化した鍵コードパターンを、前記データコード語および前記誤り訂正コード語の少なくとも一方に重複して記録している二次元コードをデコードするとともに、前記暗号化されたデータを前記鍵データを用いて解読する二次元コードの読取装置であって、前記データコード語の誤りを検出する誤り検出手段と、前記誤り検出手段により検出された誤りの発生した位置が、前記鍵コードパターンが記録されている範囲情報で予め有するものに基づいて特定される所定範囲内に存在する場合、この所定範囲内に記録されている前記鍵コードパターンを取得する鍵コードパターン取得手段と、前記鍵コードパターン取得手段により取得された前記鍵コードパターンをデコードして前記鍵データを生成する鍵データデコード手段と、前記鍵データデコード手段によりデコードされた前記鍵データを用いて前記暗号化されたデータを解読する暗号解読手段と、を備えることを技術的特徴とする。
【００１１】
特許請求の範囲に記載の請求項４の二次元コードの読取装置では、請求項３記載の二次元コードの読取装置において、前記鍵コードパターン取得手段は、前記誤りの発生した位置が前記所定範囲内に複数存在する場合に限って、前記所定範囲内に記録されている前記鍵コードパターンを取得することを技術的特徴とする。
特許請求の範囲に記載の請求項５の二次元コードの読取装置では、請求項３又は請求項４に記載の二次元コードの読取装置において、前記鍵コードパターンは、前記データコード語をデコードするのに要する機能パターンを避けて配置されていることを特徴とする。
【発明の効果】
【００１２】
請求項１の発明では、コード化に用いられる単位セルである明暗モジュールを用いたパターンにデータの解読に用いる鍵データをコード化した鍵コードパターンを、データコード語および誤り訂正コード語の少なくとも一方に上書きした構成で重複して記録している。これにより、鍵コードパターンは、二次元コードのデータコード語を構成する単位セルである明暗モジュールを用いて構成されるので、前述した特許文献１に開示されるような異形状セルを必要としない。このため、当該二次元コードを構成するデータコード語やその誤り訂正コード語を記録するのに必要な印刷技術によりこのような鍵コードパターンも印刷できるので、特に印刷精度を高める必要や特殊な印刷特性を必要としない。また、このような鍵コードパターンは、データコード語および誤り訂正コード語の少なくとも一方に重複して記録されるので、視覚的にこれらのコード語と識別することが困難になる。したがって、設備コストやランニングコストの増加を招くことなく、また二次元コードの利用者には暗号化されていることを認識され難くすることができる。
【００１３】
請求項２、５の発明では、鍵コードパターンは、データコード語をデコードするのに要する機能パターンを避けて配置されている。これにより、当該二次元コードを読み取る読取装置においては、そのデコード処理の妨げになることなく、鍵コードパターンによる鍵データを読取装置に読み込ませることができる。
【００１４】
請求項３の発明では、検出手段によりデータコード語の誤りを検出し、誤り検出手段により検出された誤りの発生した位置が、鍵コードパターンが記録されている範囲情報で予め有するものに基づいて特定される所定範囲内に存在する場合、この所定範囲内に記録されている鍵コードパターンを鍵コードパターン取得手段により取得する。そして、鍵コードパターン取得手段により取得された鍵コードパターンを鍵データデコード手段によりデコードして鍵データを生成し、鍵データデコード手段によりデコードされた鍵データを用いて暗号化されたデータを暗号解読手段により解読する。これにより、データコード語および誤り訂正コード語の少なくとも一方に鍵コードパターンが重複して記録されていない通常の二次元コードを読み取ったときには、偶然そのような所定範囲内でデータコード語の誤りが発生する場合を除いて、鍵コードパターンではないコードパターンを鍵コードパターンであると誤って読み取ることを防止することができる。したがって、このような鍵コードパターンを含む二次元コードと含まない通常の二次元コードとを区別してこれらのデータをデコードすることができる。
【００１５】
請求項４の発明では、鍵コードパターン取得手段は、誤りの発生した位置が所定範囲内に複数存在する場合に限って、所定範囲内に記録されている鍵コードパターンを取得することから、例えば、所定範囲内で偶然、データコード語の誤りが発生しても、そのような偶然が同一の所定範囲内で複数箇所以上に発生しない限り、当該所定範囲内に記録されている鍵コードパターンを取得することはない。したがって、このような鍵コードパターンを含む二次元コードと含まない通常の二次元コードとの区別をより高精度に行ったうえでこれらのデータをデコードすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の二次元コードおよびその読取装置の実施形態について図を参照して説明する。まず、本発明の二次元コードに係る実施形態を図１〜図３に基づいて説明する。なお本実施形態では、二次元コードとして、ＱＲコードを例示して説明するが、当該二次元コードにコード化されたデータをデコードするのに要する機能パターンと、このデータおよびそれに付随する情報をコード化したデータパターンと、を記録している二次元コードであれば、例えば、データマトリックスコード、マキシコード、ベリコード、カルラコード、ＣＰコード等であっても本発明を適用することができる。
【００１７】
図１に示すように、本実施形態に係るＱＲコード１０は、ＱＲコードの基本仕様（日本工業規格；ＪＩＳ  Ｘ  ０５１０：２００４、以下これを単に「ＪＩＳ規格」という。）にほぼ準拠して構成されるもので、ファインダパターン１２、アライメントパターン１３、タイミングパターン１４等からなる機能パターンと、データパターン１５と、誤り訂正パターン１６と、鍵パターン１８と、から構成されている。なお、図１に示すＱＲコード１０は、単位モジュール１１を４５行４５列のマトリックス状に配置した７型に相当し、誤り訂正レベルＨは設定されている。
【００１８】
ファインダパターン１２は、切り出しシンボルや位置合わせパターンとも称されるもので、ＱＲコード１０の３箇所の隅に位置する正方形に配置される複数の単位モジュール１１の集合体で、ＱＲコードの位置、大きさ、傾きを検出可能に構成されて記録されている。具体的には、例えば黒色の単位モジュール１１を３行３列のマトリックス状に配置した３×３暗モジュールと、これを取り囲むように白色の単位モジュール１１を５行５列のマトリックス状に配置した５×５明モジュールと、さらにこれらの周囲を取り囲むように黒色の単位モジュール１１を７行７列のマトリックス状に配置した７×７暗モジュールと、により構成される。このため、ファインダパターン１２を横断または縦断するように明暗情報を走査すると、暗、明、暗、明、暗の順番で同色モジュールの連続比率が１：１：３：１：１となることを利用して当該画像範囲が当該ファインダパターン１２であることや当該ファインダパターン１２の中心位置を検出している。つまり、ファインダパターン１２によって３６０度全方向でＱＲコード１０の検出を可能にしている。
【００１９】
アライメントパターン１３も、正方形に配置される複数の単位モジュール１１の集合体で、ＱＲコード１０の歪みを補正可能に構成されて記録されており、３箇所のファインダパターン１２によって規定される正方形範囲内の所定箇所に位置している。具体的には、１単位モジュール１１分の独立した例えば黒色の１×１暗モジュールと、この１×１暗モジュールの周囲を囲む８個の白色の３×３明モジュールと、この正方形状の３×３明モジュールの周囲を囲む１６個の黒色の５×５暗モジュールとから構成されている。このアライメントパターン１３により、中心座標を検出を容易にしている。
【００２０】
タイミングパターン１４は、各単位モジュール１１の中心座標を求めるためのタイミング抽出を可能にする、白色や黒色の単位モジュール１１が繰り返し現れる単位モジュール１１の繰り返しパターンで、白色の１×１明モジュールと黒色の１×１暗モジュールとを直線状に交互に配置されて構成されている。例えば、ＱＲコード１０が歪んだり、単位モジュール１１のピッチに誤差が生じている場合、単位モジュール１１の中心座標を補正するために用いられる。タイミングパターン１４は、アライメントパターン１３の中心を通るように、ＱＲコード１０の縦方向および横方向のそれぞれに記録されている。
【００２１】
データパターン１５は、例えば、単位モジュール１１を４行２列に配置して構成されるもので、ビット０〜ビット７の８ビット分のデータを表現可能にしている。図１では、データコード語Ｄ１〜Ｄ６６の６６語で構成される例が図示されている。このデータパターン１５の一部または全部は、後述するように、所定の暗号鍵（鍵データ）により暗号化されたデータ（以下「暗号データ」という。）をＱＲコードのデータパターン化したものである。そのため、通常仕様の二次元コードリーダで、ＱＲコード１０を読み取っても、この暗号化された部分のデータは、意味不明な文字列としてデコードされる。
【００２２】
誤り訂正パターン１６も、データパターン１５と同様に、例えば、単位モジュール１１を４行２列に配置して構成されて８ビット分のデータを表現可能にするもので、データパターン（データコード語）１５に対して例えばリードソロモン誤り訂正のアルゴリズムを実行するために必要とする誤り訂正データを構成している。図１では、誤り訂正コード語Ｅ１〜Ｅ１３０の１３０語で構成される例が図示されている。
【００２３】
なお、データパターン１５および誤り訂正パターン１６は、ファインダパターン１２、アライメントパターン１３およびタイミングパターン１４が配置されている機能パターン領域以外のデータパターン領域に記録されている。また、ＱＲコード１０の周囲には、上述したファインダパターン１２の輪郭や存在をＱＲコード１０の読取装置が認識する必要から、４モジュール幅（４個分の単位モジュール１１）のクワイエットゾーンが確保されている。
【００２４】
ＪＩＳ規格に準拠するＱＲコードは、例えば、このように構成されるが、本実施形態に係るＱＲコード１０は、図１に示すように、例えば、誤り訂正パターン１６に対して上書きして重複するように、鍵パターン１８が重ねて配置されている。図１に示す例では、誤り訂正パターン１６のうちの、Ｅ４５，Ｅ６８，Ｅ１１８の部分に重複して鍵パターン１８を配置している。
【００２５】
この鍵パターン１８は、データパターン１５のうち暗号化された部分の暗号データを復号するために用いられるもので、例えば、誤り訂正パターン１６やデータパターン１５に上書きをするように重ねて配置されている。このように鍵パターン１８を誤り訂正パターン１６等に重ねて配置することで、重なった誤り訂正パターン１６の一部は、データが壊れることなるが、これにより壊れた当該部分のデータはＱＲコードが有する誤り訂正機能により訂正される。そのため、鍵パターン１８が配置される最大範囲は、当該ＱＲコードの誤り訂正レベルによって決定される。
【００２６】
即ち、ＪＩＳ規格によると、ＱＲコード１０の誤り訂正レベルが「Ｌ」に設定されている場合には、リードソロモン誤り訂正による復元能力が７％であることから、データパターン１５および誤り訂正パターン１６の全体に対して７％の範囲まで鍵パターン１８を配置することができる。また、誤り訂正レベルが「Ｍ」に設定されている場合には復元能力が１５％であることから全体の１５％の範囲まで鍵パターン１８を配置することができ、また誤り訂正レベルが「Ｑ」に設定されている場合には復元能力が２５％であることから全体の２５％の範囲まで鍵パターン１８を配置することができる。さらに、本実施形態の例のように、誤り訂正レベルが「Ｈ」に設定されている場合には復元能力が３０％であることから全体の３０％の範囲、つまり５８語（＝（６６語＋１３０語）×０．３）相当が占める面積の範囲まで鍵パターン１８をこれらに重複して配置することができる。
【００２７】
鍵パターン１８の配置例としては、例えば図２に示すように、誤り訂正パターン領域またはデータパターン領域において、データパターン１５または誤り訂正パターン１６を横方向にまたがるように配置される鍵パターン１８α（破線αの範囲）、データパターン１５または誤り訂正パターン１６を縦方向にまたがるように配置される鍵パターン１８β（破線βの範囲）またはデータパターン１５または誤り訂正パターン１６を四方向にまたがるように配置される鍵パターン１８γ（破線γの範囲）がある。なお、ここでいう「横方向」とは、データパターン１５や誤り訂正パターン１６を構成する４行２列の単位モジュール１１に対する列方向（短手方向）を意味し、また「縦方向」とは、同４行２列の単位モジュール１１に対する行方向（長手方向）を意味する。
【００２８】
また、図示されていないが、横方向の鍵パターン１８αと縦方向の鍵パターン１８βとが混在するもの、横方向の鍵パターン１８αと四方向の鍵パターン１８γとが混在するもの、縦方向の鍵パターン１８βと縦方向の鍵パターン１８βとが混在するものや、横方向の鍵パターン１８αと縦方向の鍵パターン１８βと四方向の鍵パターン１８γとが混在するもの、といったこれらの組み合わせであっても良い。
【００２９】
なお、図２に示す例のように、誤り訂正パターン領域またはデータパターン領域において、鍵パターン１８α等が複数箇所に点在する場合には、点在する鍵パターン１８α等の合計面積が先に述べた鍵パターン１８が配置される最大範囲（Ｌ：７％、Ｍ：１５％、Ｑ：２５％、Ｈ：３０％）内にある必要がある。また、誤り訂正パターン領域およびデータパターン領域は、図３に示すとおりで、ファインダパターン１２等の機能パターンを除いた範囲で、鍵パターン１８α等は優先的に誤り訂正パターン領域から配置される。これにより、後述する当該ＱＲコード１０を読み取る二次元コードリーダ２０においては、そのデコード処理の妨げになることなく、鍵パターン１８による鍵データを当該二次元コードリーダ２０に読み込むことが可能となる。
【００３０】
次に、ＱＲコード１０の生成方法を図４および図５に基づいて説明する。なお、この生成方法は、例えば、パーソナルコンピュータ（以下「パソコン」という。）等の情報処理装置により行われるもので、ここでは図略のパソコンにより生成されて、当該パソコンに接続されたラベルプリンタからラベルにＱＲコードが印刷されて出力されるものとして説明する。
【００３１】
図４に示すように、まずステップＳ０１１によりＱＲコードとしてコード化するデータを取り込むデータ取込処理が行われる。このデータは、例えば、図５に示すようなデータフォーマットに従って構成されている。図５に示す開示データＡおよび開示データＢは、暗号化する必要のないデータで、また秘匿データＣおよび秘匿データＤは、第三者には開示したくない（秘密にしたい）暗号化する必要のあるデータである。なお、秘匿データＣ等の前には、秘匿識別子と秘匿データ全体のデータ長が格納されている。
【００３２】
そして、この取り込んだデータの一部または全部を次のステップＳ０１３により暗号化する処理が行われる。このステップＳ０１３による暗号化処理は、前述した所定の暗号鍵を用いて行われ、図５に示すデータの例では、秘匿データＣおよび秘匿データＤが暗号化の対象となる。
【００３３】
続くステップＳ０１５の全体データパターン生成処理では、ステップＳ０１３により暗号化された暗号データ（秘匿データＣ，Ｄ）と暗号化されていない非暗号データ（開示データＡ，Ｂ）とからなる全体データを、ＪＩＳ規格の仕様に基づいてＱＲコードのデータパターン１５および誤り訂正パターン１６として生成する処理、つまりパターン化処理が行われる。なお、このＱＲコードのデータパターン１５および誤り訂正パターン１６は、印刷されて出力されるものではなく、当該パソコンのメモリ空間に記憶されている。
【００３４】
次にステップＳ０１７では鍵データパターン生成処理が行われる。この処理は、前述した所定の暗号鍵である鍵データをＱＲコードのパターンとして生成するもので、これにより生成されたパターンが前述した鍵パターン１８、１８α、１８β、１８γ（以下「鍵パターン１８等」という。）に相当する。
【００３５】
ステップＳ０１９では、パターンデータ合成処理が行われる。即ち、ステップＳ０１７により生成された鍵パターン１８等を、ステップＳ０１５により生成されたデータパターン１５および誤り訂正パターン１６に上書きする処理が行われる。この上書きは、メモリ空間上で行われるもので、前述したように、誤り訂正パターン領域から優先して誤り訂正パターン１６に鍵パターン１８等が重ねて配置、つまり上書きされる。
【００３６】
このようにして合成されたパターンデータは、ステップＳ０２１によってラベルプリンタに出力されることで、本実施例に係るＱＲコード１０がラベルに印刷される。なお、ここでは、出力装置として、ラベルプリンタを想定して説明したが、これに限られることはなく、紙やフィルム等の印刷媒体に印刷可能なプリンタの他に、液晶ディスプレィ等の表示媒体にＱＲコード１０を出力する構成を採っても良い。
【００３７】
以上説明したように、本実施形態に係るＱＲコード１０によると、ＱＲコードのコード化に用いられる単位モジュール１１である明モジュールと暗モジュール（明暗モジュール）を用いたパターンに所定の暗号鍵（鍵データ）をコード化した鍵パターン１８等を、データパターン１５（データコード語）および誤り訂正パターン１６（誤り訂正コード語）の少なくとも一方に重複して記録している。
【００３８】
これにより、鍵パターン１８等は、ＱＲコード１０のデータパターン１５を構成する単位モジュール１１である明暗モジュールを用いて構成されるので、前述した特許文献１に開示されるような異形状セルを必要としない。このため、当該ＱＲコード１０を構成するデータパターン１５やその誤り訂正パターン１６を印刷可能なラベルプリンタ等によりこのような鍵パターン１８も印刷（記録）できるので、特に印刷精度を高める必要や特殊な印刷特性を必要としない。
【００３９】
また、このような鍵パターン１８等は、データパターン１５および誤り訂正パターン１６の少なくとも一方に重複して、さりげなく印刷（記録）されるので、視覚的にこれらのパターンと識別することが困難になる。これにより、例えば、福袋のように、中身は異なっても商品の外観が統一されており外見では区別できずしかも開封できないもの等を、商品管理する場合に、中身の商品情報を暗号データにした当該ＱＲコード１０が印刷されたラベル等を貼付することで、後述の二次元コードリーダ２０では読めても、買い物客個人の携帯電話機ではＱＲコード読取機能があっても当該ＱＲコード１０の暗号データを読むことができず福袋の中身を知られずにすむといったアプリケーション例を構成できる。
【００４０】
このように本実施形態に係るＱＲコード１０では、設備コストやランニングコストの増加を招くことなく、ＱＲコード１０の利用者には暗号化されていることを認識され難くすることができる。
【００４１】
次に、本発明の二次元コードの読取装置に係る二次元コード（ＱＲコード）リーダ２０の構成等を図６〜図９を参照して説明する。なお、図６には、本実施形態に係る二次元コードリーダ２０のハードウェア構成例を示すブロック図が図示されている。
【００４２】
図６に示すように、二次元コードリーダ２０は、主に、照明光源２１、受光センサ２３、結像レンズ２２等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示器４６等のマイコン系と、電源スイッチ４１、バッテリ４９等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されており、ハードウェア的には一般仕様のＱＲコードリーダ（読取装置）と同様に構成されている。
【００４３】
光学系は、照明光源２１、受光センサ２３、結像レンズ２２等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、図略のケースの読取口を介してラベルＰに向けて照明光Ｌｆを照射可能に構成されている。このラベルＰには、前述したＱＲコード１０が印刷されている。
【００４４】
受光センサ２３は、ラベルＰやＱＲコード１０に照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。受光センサ２３は、結像レンズ２２を介して入射する入射光をこの受光面２３ａで受光可能に図略のプリント配線板に実装されている。
【００４５】
結像レンズ２２は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
【００４６】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等から構成されている。このマイコン系は、その名の通り、マイコンとして機能し得る制御回路４０およびメモリ３５と中心に構成される。
【００４７】
光学系の受光センサ２３から出力される画像信号は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ３５に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００４８】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またＲＯＭには、後述するデコード処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００４９】
制御回路４０は、二次元コードリーダ２０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなり、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置と接続可能に構成されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等が接続されている。
【００５０】
これにより、例えば、電源スイッチ４１や操作スイッチ４２の監視や管理、またインジケータとして機能するＬＥＤ４３の点灯・消灯、ビープ音やアラーム音を発生可能なブザー４４の鳴動のオンオフ、さらには読み取ったＱＲコードによるコード内容を画面表示可能な液晶表示器４６の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース４８の通信制御等を可能にしている。なお、通信インタフェース４８に接続される外部装置には、当該二次元コードリーダ２０の上位システムに相当するホストコンピュータＨＳＴ等が含まれる。
【００５１】
電源系は、電源スイッチ４１、バッテリ４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、バッテリ４９から供給される駆動電圧の導通や遮断が制御されている。なお、バッテリ４９は、所定の直流電圧を発生可能な二次電池で、例えば、リチウムイオン電池等がこれに相当する。また、バッテリ４９によることなく、例えば、通信インタフェース４８を介して接続されるホストコンピュータＨＳＴ等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該バッテリ４９は不要となる。
【００５２】
このように二次元コードリーダ２０を構成することによって、例えば、電源スイッチ４１がオンされて所定の自己診断処理等が正常終了し、ＱＲコード１０の読み取りが可能な状態になると、照明光Ｌｆの発光を指示する操作スイッチ４２（例えばトリガースイッチ）の入力を受け付ける。これにより、利用者がトリガースイッチを引いてオンにすることで、制御回路４０が同期信号を基準に照明光源２１に発光信号を出力するので、当該発光信号を受けた照明光源２１は、ＬＥＤを発光させて照明光Ｌｆを照射する。
【００５３】
すると、ＱＲコード１０に照射された照明光Ｌｆが反射し、その反射光Ｌｒが読取口を介して結像レンズ２７に入射するため、受光センサ２３の受光面２３ａには、ＱＲコード１０の像が結像される。これにより、ＱＲコード１０の像が受光センサ２３を露光するため、上述したマイコン系によって画像処理された当該ＱＲコード１０の画像データが、メモリ３５の画像データ蓄積領域を介して、次に説明するデコード処理に渡される。
【００５４】
ここで、デコード処理を図７〜図９に基づいて説明する。なお、図７には、デコード処理の流れを示すフローチャートが図示されている。また図８には、図７に示す誤り位置検出処理の流れを示すフローチャートが図示されている。また、図９には、図７に示す誤り位置一致判定処理の概念を示す説明図が図示されている。
【００５５】
図７に示すように、デコード処理は、二次元コードリーダ２０の電源投入により起動する制御回路４０およびメモリ３５によって開始され、まずステップＳ１０１により画像データ取込処理が行われる。この処理は、メモリ３５の画像データ蓄積領域に蓄えされた画像データを読み込むものである。
【００５６】
ステップＳ１０３では、全体デコード処理が行われる。この処理は、ＪＩＳ規格に従ってＱＲコード１０を構成するファインダパターン１２、アライメントパターン１３、タイミングパターン１４および誤り訂正パターン１６に基づいて、データパターン１５をデコードするものである。
【００５７】
なお、ＱＲコード１０では、前述したように、データパターン１５の一部（秘匿データＣ，Ｄ）を暗号化していることから、開示データＡ，Ｂは意味のある文字列としてデコードできても、暗号データについてはこのステップＳ１０３では意味不明な文字列としてデコードされる。また、誤り訂正パターン１６やデータパターン１５に重ねて鍵パターン１８等を配置して印刷（記録）していることから、この処理では「データ誤り」が必ず発生する。このため、次のステップＳ１０５によりこのデータ誤りが発生する位置を検出等している。なお、ステップＳ１０５はその詳細が図８に図示されているため、ここからは図８を参照しながら説明する。
【００５８】
図８に示すように、誤り位置検出処理では、まずステップＳ２０１により、誤り検出処理が行われる。この処理は、データパターン１５および誤り訂正パターン１６について、ＪＩＳ規格によるリードソロモン誤り検出のアルゴリズムに従って行われる。例えば、図１に示す例では、誤り訂正パターン１６のうちの、Ｅ４５，Ｅ６８，Ｅ１１８の部分に重複して鍵パターン１８を配置しているため、これに対応するデータパターン１５について誤りが検出される。
【００５９】
そして、このステップＳ２０１より誤りが検出されると（Ｓ２０３；Ｙｅｓ）、続くステップＳ２０５により、リードソロモン誤り訂正アルゴリズムによって当該データ誤りのあるデータパターン１５に対して誤り訂正された後、ステップＳ２０７による誤り位置記憶処理によって誤り検出された位置（ＱＲコードのコード配置に相当するもの）が記憶される。一方、このステップＳ２０１より誤りが検出されなければ（Ｓ２０３；Ｎｏ）、ステップＳ２０９に処理を移行する。
【００６０】
そして、ステップＳ２０９により全てのデータパターン１５について誤り検出されたか否かが判断され、全データが終了していなければ（Ｓ２０９；Ｎｏ）、ステップＳ２０１に戻って次のデータパターン１５について誤り検出処理が行われる。
【００６１】
ステップＳ２０９により全データが終了したと判断されると（Ｓ２０９；Ｙｅｓ）、本誤り位置検出処理を終了して、図７のステップＳ１０７に処理を移行する。
【００６２】
図７に戻ると、ステップＳ１０７により誤り位置分析処理が行われる。この処理は、前述した誤り位置検出処理の誤り位置記憶処理（Ｓ２０７）によって記憶された各誤り位置を、例えば図９に示すように分析する。なお、図９(A) は、デコードして読み取れるデータパターン１５を模式的に一列につなげたもので、図９(B) は予め予定している誤り発生位置を模式的に示したもの、図９(C) 〜図９(G) は実際に発生した誤り位置を模式的に示したものである。
【００６３】
ステップＳ１０７では、例えば、図９(B) に示すように、鍵パターン１８等を重複配置されていることにより、データパターン１５のうち、Ｂ３，Ｂ４，Ｂ７の位置に予め誤り検出されることが予定されている場合、これらの位置と誤り検出された位置（ＱＲコードのコード配置に相当するもの）とを比較する。なお、予め誤り検出されることが予定されている位置（範囲情報）は、当該二次元コードリーダ２０の工場調整時や出荷時等にメモリ３５に記憶されている。
【００６４】
これにより、例えば、図９(C) に示すように、予め誤り検出されることが予定されている位置（Ｂ３，Ｂ４，Ｂ７）と、誤り検出された位置（Ｃ３，Ｃ４，Ｃ７）とが完全に一致した場合には、これらＣ３，Ｃ４，Ｃ７は、いずれも鍵パターン１８等が配置されていることによるものであると推測されるので、続くステップＳ１０９では誤りが特定範囲に集中していると判断し（Ｓ１０９；Ｙｅｓ）、さらにステップＳ１１１では鍵パターン１８等の位置に一致していると判断して（Ｓ１１１；Ｙｅｓ）、ステップＳ１１３に処理を移行する。
【００６５】
これに対し、例えば、図９(D) に示すように、予め誤り検出されることが予定されている位置（Ｂ３，Ｂ４，Ｂ７）とは関連性がないような位置に誤り検出された位置（Ｄ２，Ｄ６）がばらついている場合には、これらＤ２，Ｄ６は、いずれも鍵パターン１８等が配置されていることによるものではなく、全く別の要因によるデータ誤りであると推測されるので、続くステップＳ１０９では誤りが特定範囲に集中していないと判断して（Ｓ１０９；Ｎｏ）、ステップＳ１１７に処理を移行する。
【００６６】
また、図９(E) や図９(F) に示すように、予め誤り検出されることが予定されている位置（Ｂ３，Ｂ４，Ｂ７）と、誤り検出された位置（Ｅ３，Ｅ４，Ｅ５，Ｅ７）や（Ｆ３，Ｆ４，Ｅ７，Ｆ８）とが完全には一致しないが予定されている位置（Ｂ３，Ｂ４，Ｂ７）を含んでいる場合には、これらＥ３，Ｅ４，Ｅ５，Ｅ７やＦ３，Ｆ４，Ｅ７，Ｆ８は、いずれも鍵パターン１８等が配置されていることによるものであると推測されるので、続くステップＳ１０９では誤りが特定範囲に集中していると判断し（Ｓ１０９；Ｙｅｓ）、さらにステップＳ１１１では鍵パターン１８等の位置に一致していると判断して（Ｓ１１１；Ｙｅｓ）、ステップＳ１１７に処理を移行する。
【００６７】
さらに、例えば、図９(G) に示すように、予め誤り検出されることが予定されている位置（Ｂ３，Ｂ４，Ｂ７）と、誤り検出された位置（Ｇ３，Ｇ４，Ｇ５）とが一部一致した場合には、図９(D) の場合と同様に、鍵パターン１８等が配置されていることによるものではないと推測されるので、続くステップＳ１０９では誤りが特定範囲に集中していると判断されても（Ｓ１０９；Ｙｅｓ）、ステップＳ１１１では鍵パターン１８等の位置に一致していないと判断して（Ｓ１１１；Ｎｏ）、ステップＳ１１７に処理を移行する。
【００６８】
ステップＳ１１３では、鍵パターン１８等を取得する処理が行われ、これにより得られた画像データを次のステップＳ１１５により鍵データをデコードする。
【００６９】
続くステップＳ１１７では、ステップＳ１１５によりデコードされた鍵データ、つまり所定の暗号鍵を用いて暗号データをデコードすることによって、ステップＳ１０３では意味不明な文字列としてデコードされた暗号データを秘匿データＣ，Ｄとしてデコードすることが可能となる。
【００７０】
ステップＳ１１９では、ステップＳ１０３によりデコードされたデータ（開示データＡ，Ｂ）とステップＳ１１７によりデコードされたデータ（秘匿データＣ，Ｄ）と、を液晶表示器４６に出力したり、通信インタフェース４８を介してホストコンピュータＨＳＴに出力するデータ出力処理が行われる。
【００７１】
以上説明したように、本実施形態に係る二次元コードリーダ２０によると、制御回路４０やメモリ３５（以下「制御回路４０等」という。）によりデータパターン１５の誤りを検出し（Ｓ１０５，２０３）、検出された誤りの発生した位置が、鍵パターン１８等が記録されているために予め誤り検出されることが予定されている位置（範囲情報）で予め有するものに基づいて特定される所定範囲内に存在する場合（Ｓ１１１；Ｙｅｓ）、この所定範囲内に記録されている鍵パターン１８等を制御回路４０等により取得する（Ｓ１１３）。そして、取得された鍵パターン１８等を制御回路４０等によりデコードして所定の暗号鍵（鍵データ）を生成し（Ｓ１１５）、所定の暗号鍵を用いて暗号化されたデータを制御回路４０等により解読する（Ｓ１１７）。
【００７２】
これにより、データパターン１５および誤り訂正パターン１６の少なくとも一方に鍵パターン１８等が重複して記録されていない通常のＱＲコードを読み取ったときには、偶然そのような所定範囲内でデータパターン１５の誤りが発生する場合を除いて、鍵パターン１８等ではないコードパターンを鍵パターン１８等であると誤って読み取ることを防止することができる。したがって、このような鍵パターン１８等を含むＱＲコード１０と含まない通常のＱＲコードとを区別してこれらのデータをデコードすることができる。
【００７３】
なお、図９(C) 〜図９(G) に示すような誤りの発生した位置が、予め誤り検出されることが予定されている所定範囲内に複数存在する場合に限って、ステップＳ１０９以降の処理を実行するように構成しても良い。これにより、例えば、所定範囲内で偶然、データパターン１５の誤りが発生しても、そのような偶然が同一の所定範囲内で複数箇所以上に発生しない限り、所定範囲内に記録されている鍵パターン１８等を取得することはない。したがって、このような鍵パターン１８等を含むＱＲコード１０と含まない通常のＱＲコードとの区別をより高精度に行ったうえでこれらのデータをデコードすることができる。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施形態に係るＱＲコードの構成例を示す説明図である。
【図２】本発明の実施形態に係るＱＲコードの他の構成例を示す説明図である。
【図３】ＱＲコードの一般的な構成を示す説明図である。
【図４】本実施形態に係るＱＲコードの生成方法を示すフローチャートである。
【図５】図４に示すＱＲコードの生成方法により情報処理されるデータのフォーマット例を示す説明図である。
【図６】本発明の実施形態に係る二次元コードリーダの構成例を示すブロック図である。
【図７】本実施形態に係る二次元コードリーダによるデコード処理の流れを示すフローチャートである。
【図８】図７に示す誤り位置検出処理の流れを示すフローチャートである。
【図９】図７に示す誤り位置一致判定処理の概念を示す説明図である。
【符号の説明】
【００７５】
１０、１０’…ＱＲコード（二次元コード）
１１…単位モジュール（単位セル）
１２…ファインダパターン（機能パターン）
１３…アライメントパターン（機能パターン）
１４…タイミングパターン（機能パターン）
１５…データパターン（データコード語）
１６…誤り訂正パターン（誤り訂正コード語）
１８、１８α、１８β、１８γ…鍵パターン（鍵コードパターン）
２０…二次元コードリーダ（二次元コードの読取装置）
３５…メモリ（誤り検出手段、鍵コードパターン取得手段、鍵データデコード手段、暗号解読手段）
３６…アドレス発生回路
３８…同期信号発生回路
４０…制御回路（誤り検出手段、鍵コードパターン取得手段、鍵データデコード手段、暗号解読手段）
４６…液晶表示器
４８…通信インタフェース
Ｓ２０１（誤り検出手段）、Ｓ１１３（鍵コードパターン取得手段）、Ｓ１１５（鍵データデコード手段）、Ｓ１１７（暗号解読手段）
【図１】
0005023949.tif 000002
【図２】
0005023949.tif 000003
【図３】
0005023949.tif 000004
【図４】
0005023949.tif 000005
【図５】
0005023949.tif 000006
【図６】
0005023949.tif 000007
【図７】
0005023949.tif 000008
【図８】
0005023949.tif 000009
【図９】
0005023949.tif 000010