【実施例1】
【0021】
本実施例の二次元コード1は、QRコード(登録商標)に本発明を適用したものであり、基本的な構成はQRコードと共通している。具体的には、
図1(a)に示すように、二次元コード1は、正方形のモジュール4を、縦横に21個ずつマトリクス状に配置してなるものである。二次元コード1のモジュール4は、明色(白色)に配色された明色モジュール4aと、暗色(黒色)に配色された暗色モジュール4bとからなる。
図1(b)に示すように、二次元コード1は、機能パターン7と符号化領域8とからなる。機能パターン7は、モジュール4の配色パターンが予め定められている領域であり、二次元コード1の光学的読取りを補助する位置検出パターン11、分離パターン12、タイミングパターン13などによって構成される。また、符号化領域8は、各モジュール4の配色パターンによってデータを記録する領域であり、データコード語及び誤り訂正コード語が記録されるデータコード領域14と、形式情報及び型番情報を示すコードが配置される形式情報コード領域15とによって構成される。データコード領域14は8個のモジュールからなるシンボル16に区画されており、1つのシンボル16の明暗パターンによって1つのデータコード語又は誤り訂正語が記録されるよう構成される。誤り訂正コード語はシンボル単位で誤り訂正可能なリードソロモン符号である。これらの構成は、QRコードのJIS規格(JIS X 0510:2004)に準拠したものであるため詳細な説明は省略する。
【0022】
データコード領域14には、通常マスク処理と暗号化マスク処理の二種類のマスク処理が施されている。通常マスク処理は、二次元コードの読出を容易とすることを目的とするものであり、QRコードで実施されているマスク処理と同じものである。すなわち、通常マスク処理では、8種類の生成条件から明色と暗色のモジュールからなる8つのマスクパターンを生成し、いずれかのマスクパターンをデータコード領域14と重ねて、XOR演算によるモジュール4の色反転を行う。具体的には、マスクパターンの「1(暗色)」と重なる箇所について、データコード領域14のモジュール4を「0(明色)」から「1(暗色)」、または「1(暗色)」から「0(明色)」に変換する。使用するマスクパターンは、シミュレーションの結果、読取容易性の評価が最良であったものに決定される。かかるマスク処理は、QRコードのJIS規格(JIS X 0510:2004)に準拠したものであるため詳細な説明は省略する。
【0023】
暗号化マスク処理は、ランダムに生成された256ビットの暗号化キーから暗号化マスクパターンを生成し、当該マスクパターンをデータコード領域14と重ねてXOR演算を行って、データコード領域14の一部モジュール4の色を反転させる。具体的には、暗号化マスクパターンの「1(暗色)」と重なる箇所について、データコード領域14のモジュール4を「0(明色)」から「1(暗色)」、または「1(暗色)」から「0(明色)」に変換する。暗号化マスクパターンは、暗号化キーのビットパターンを、処理対象のデータコード領域14の形状と一致するようにマトリクス状に配列することで生成される。本実施例の二次元コード1は、データコード領域14が、208ビット(8ビット×26シンボル)であるため、暗号化キーの先頭から208ビットを所定の順序でマトリクス状に配列することで暗号化マスクパターンが生成される。データコード領域14が256ビット以上である場合は、暗号化キーのビットパターンを繰り返し使用することで、暗号化マスクパターンを生成する。
【0024】
以下に、本実施例の二次元コード1の生成方法を具体的に説明する。
上述のように、本実施例の二次元コード1は、本発明をQRコードに適用したものであり、二次元コード1の生成方法は、既存のQRコードの生成方法に、暗号化マスク処理を組み込むことによって実現される。具体的には、二次元コード1は、以下の(1)〜(4)のステップを経ることで生成できる。
【0025】
(1)データの準備及び圧縮
二次元コード1に収容するデータを種別(英数、漢字、バイナリー)に応じて圧縮し、8ビット単位のデータコード語を生成する。
(2)誤り訂正コード語の生成
データコード語の8ビットを1シンボルとして、リードソロモン符号を算出して誤り訂正コード語を生成する。
(3)暗号化マスク処理
上述のように、暗号化キーをデータコード領域14に合わせてマトリクス状に配置することで、暗号化マスクパターンを生成する。生成済みの暗号化キーがない場合は、256ビットのビットパターンをランダムに生成して暗号化キーとして使用する。そして、そして、生成した暗号化マスクパターンとデータコード領域14と重ねてXOR演算を行い、データコード領域14の色(ビットパターン)を一部モジュール4で反転させる。
(4)通常マスク処理
上述のように、8種類のマスクパターンから最適なマスクパターンを生成し、当該マスクパターンと、暗号化マスク処理をした後のデータコード領域14とを重ねてXOR演算を行い、データコード領域14の色(ビットパターン)を部分的に反転させる。また、かかる通常マスク処理で仕様したマスクパターンの種別を、形式情報コード領域15に追加する。
【0026】
以上のように、かかる二次元コード1の生成方法では、通常マスク処理の前に、暗号化マスクパターンをデータコード領域14とXOR演算することによってデータを暗号化する。このように、かかる生成方法は、二次元コードの生成過程で通常マスク処理と類似の方法で、データを暗号化するため、二次元コードの生成前にデータを暗号化する従来方法に比べて、データの暗号化と二次元コード生成に要する演算量を減少させることができる。
【0027】
次に、本実施例の二次元コード1の読取方法について説明する。
本実施例の二次元コード1の読取方法は、既存のQRコードの生成方法に、暗号化マスクパターンによる暗号化を復号する暗号化マスク復号処理を組み込むことによって実現される。具体的には、二次元コード1は、以下の(1)〜(6)のステップを経ることで読み取ることができる。
(1)画像入力、画像抽出
撮像装置によって、二次元コード1を含む画像を撮像し、二次元コード1に含まれる機能パターン7を基に二次元コード1を検出し、二次元コード1の画像を抽出する。
(2)モジュール色の識別
二次元コード1の画像から、符号化領域8の各モジュール4の画像を切り出し、モジュール4の色の識別を行い、符号化領域8の全てのモジュール4の色データを得る。
(3)通常マスク復号処理
形式情報コード領域15に記録された種類のマスクパターンを、データコード領域14と重ね合わせてXOR演算を行う。かかる処理により、上記通常マスク処理で反転されたデータコード領域14の色(ビットパターン)を復元する。
(4)暗号化マスク復号処理
暗号化キーをデータコード領域14に合わせてマトリクス状に配置することで、暗号化マスクパターンを生成する。かかる処理では、二次元コード1の生成時に使用した暗号化キーを用いて、暗号化マスク処理の時と同一の暗号化マスクパターンを生成することが必要である。そして、生成した暗号化マスクパターンとデータコード領域14と重ねてXOR演算を行う。かかる処理により、上記暗号化マスク処理で反転されたデータコード領域14の色(ビットパターン)を復元する。
(5)誤り訂正処理
データコード領域14のビットパターンについて、リードソロモン符号の誤り訂正処理を行い、誤りがあれば訂正する。
(6)データコード語の復号
データコード語を種別(英数、漢字、バイナリー)に合わせて復号し、収容されたデータを復元する。
【0028】
以上のように、かかる二次元コード1の読取方法では、通常マスク復号処理の後に、暗号化マスクパターンをデータコード領域14とXOR演算することによって暗号化されたデータを復号する。このように、かかる読取方法は、二次元コードの読取過程で通常マスク復号処理と類似の方法で、データを復号するため、二次元コードの読取後に暗号化データを復号する従来方法に比べて、二次元コードの読取りと、暗号化データの復号に要する演算量を減少させることができる。
【0029】
上述のように、暗号化マスクパターンは、暗号化キーのランダムなビットパターンから生成されるため、データコード領域14の個々のモジュールの色が、暗号化マスクパターンとのXOR演算で反転する確率は1/2である。したがって、暗号化マスク処理で、1つのシンボルに含まれる8個のモジュール4の色が反転されず全て維持される確率は1/256となり、本実施例では、暗号化マスク処理によって、平均99%以上のシンボルは、少なくとも1個のモジュール4の色が反転することとなる。したがって、本実施例の二次元コード1は、上記暗号化マスク復号処理をすることなく、データコード語の復号を試みた場合、誤り訂正処理において、略全てのシンボルで読み誤りが発生することとなる。QRコードの誤り訂正機能は、最大の訂正能力の場合でも、全体の略30%以上のシンボルに誤りが生じると訂正不能となるため、暗号化マスク復号処理を省いて、通常のQRコードと同様の読取方法を行った場合は、誤り訂正処理で訂正不能となって読取処理が途中終了することとなる。このように、暗号化マスク処理では、データコード領域14を構成する略全てのシンボル16で1個以上のモジュール4の色が反転するため、暗号化マスク処理による暗号化が、誤り訂正機能によって訂正されることはない。
【0030】
また、上述のように、暗号化マスク復号処理をすることなく、既存の二次元コードの読取方法で、本実施例の二次元コード1の読取りを試みた場合、誤り訂正処理で誤り訂正機能を上回る誤りが検知されて、二次元コード1の読取りが途中終了してしまう。従来の暗号化方法であれば、既存の二次元コードの読取方法で暗号化データが得られるため、汎用の暗号解読プログラムで暗号化データの復号を試みることができるが、本実施例では、暗号化マスク復号処理をしなければ、データを読み出すことができないため、汎用の暗号解読プログラムによる攻撃に強いという利点がある。
【0031】
また、本実施例の二次元コード1にあって、暗号化マスク処理で用いる暗号化マスクパターンは、2
208通り存在する。これはラウンドロビン攻撃によって正しい暗号化マスクパターンを適用される可能性は無視できるほど小さい。なお、二次元コード1は、リードソロモン符号による誤り訂正機能を備えているため、完全に正しい暗号化マスクパターンでなくても、誤り訂正機能により復号できる場合があるが、2
208通りの暗号化マスクパターンであれば、誤り訂正機能の影響を加味しても、十分な計量的安全性を確保できる。なお、本実施例は、データコード領域14の容量が208ビットであるため、暗号化マスクパターンが2
208通りであるが、暗号化キーは256ビットであるため、データコード領域の容量が256ビット以上の二次元コードの場合は、2
256通りの暗号化マスクパターンを適用できるため、計量的安全性はさらに高くなる。このように、本実施例の二次元コード1は十分な秘匿性を有している。
【0032】
また、上記二次元コード1の読取処理では、誤り訂正処理をパスしてデータコード語が復号されるのは、リードソロモン符号の誤り訂正で誤りを検出しなかった場合と、検出した誤りを訂正できた場合である。ここで、本実施例の二次元コード1に対して、暗号化キーを順次試していくラウンドロビン攻撃を行った場合、暗号化マスクパターンとは異なるマスクパターンを適用した場合でも、誤り訂正処理をパスして、元データと異なるデータが復号される場合が存在する。本実施例の二次元コード1では、訂正能力を最も高く設定する場合でも、データコード領域14に、2
72とおり(9シンボル=72ビット)のデータコード語を記録可能であるため、ラウンドロビン攻撃では、正しいデータ以外にも、2
72−1とおりのデータが復号される可能性がある。このように、本実施例の二次元コード1では、暗号化キーを順次試すラウンドロビン攻撃を試みたとしても、誤ったデータが復号される可能性が非常に高いため、正しいデータが復号がなされる可能性が極めて低く、安全性が高い。この安全性は、正しい復号解を得るのに莫大な時間かかる計算量的安全性に基づくものではなく、パターンマスク手法の情報理論的安全性である。
【実施例2】
【0033】
本実施例は、多値化二次元コード2に本発明を適用したものである。
本実施例の多値化二次元コード2は、QRコード(登録商標)と互換性を有するものである。具体的には、
図2(a)に示すように、多値化二次元コード2は、正方形のモジュール4を、縦横に21個ずつマトリクス状に配置してなるものである。この二次元コード1のモジュール4は、明色と暗色のみで構成されるものではないが、その基本構造は、QRコードに準拠したものとなっている。すなわち、
図2(b)に示すように、二次元コード1は、QRコードと同様に、機能パターン7と符号化領域8とからなる。そして、機能パターン7は、位置検出パターン11、分離パターン12、タイミングパターン13などによって構成され、また、符号化領域8は、データコード領域14と形式情報コード領域15とによって構成される。そして、データコード領域14は8個のモジュールからなるシンボル16に区画されており、1つのシンボル16の明暗パターンによって1つのデータコード語又は、リードソロモン符号である誤り訂正語が記録されるよう構成される。これらの構成は、実施例1の二次元コード1と同じであり、また、QRコードのJIS規格(JIS X 0510:2004)に準拠したものであるため詳細な説明は省略する。
【0034】
モノクロ画像であるため
図2(a)では十分に表されていないが、多値化二次元コード2を構成する各モジュール4は、RGB値の異なる複数種類の基準色のいずれかに配色される。
図3に示すように、本実施例では、基準色は16種類存在し、各基準色に対して、2進数表記で0000から1111までの基準色コードが付されている。16種類の基準色のうち8種類は明色基準色に分類され、その他の8種類は、暗色基準色に分類される。明色基準色は全て輝度が0.75以上であり、暗色基準色は、全て輝度が0.25以下である。すなわち、輝度0.75が本発明に係る明色閾値に相当し、輝度0.25が本発明に係る暗色閾値に相当する。既存一般のQRコード用の読取装置は、QRコードの読取時に、反射率や輝度の値に基づいて、各モジュールが白色(明色)と黒色(暗色)のいずれであるかを判定するだけであるから、既存一般の読取装置では、高輝度の明色基準色で配色されたモジュールは、白色(明色)と識別される明色モジュール4aとなり、低輝度の暗色基準色で配色されたモジュールは、黒色(暗色)と識別される暗色モジュール4bとなる。本実施例では、明色モジュール4aと暗色モジュール4bの輝度差を0.5以上と大きな値にすることにより、QRコード用の読取装置が、明色モジュール4aと暗色モジュール4bとを確実に識別できるようにしている。
【0035】
上述のように、QRコード用の読取装置は、各モジュール4が明色と暗色のいずれであるかだけを識別するが、基準色の識別機能を備えた専用の読取装置(以下、専用読取装置という)を用いた場合は、各モジュール4の配色を識別することができる。本実施例では、
図3に示すように、各基準色間のRGB値の差が大きくなるように16種類の基準色を選択し、これにより、専用読取装置が各モジュール4がいずれの基準色であるかを正確に識別し得るようにしている。
【0036】
このように、本実施例の多値化二次元コード2にあっては、符号化領域8の各モジュール4が16種類の基準色で配色されるため、明暗二色の二次元コードでは1モジュール当たり1ビットの情報しか記録できないのに対し、本実施例の多値化二次元コード2では1モジュール当たり4ビットの情報を記録できる。ここで、本実施例にあって、各モジュール4が明色基準色と暗色基準色のいずれであるかは、QRコード用の読取装置でも識別可能であり、また、各モジュール4が明色基準色と暗色基準色のうち、どの基準色であるかは、QRコード用の読取装置では識別できない。このため、本実施例にあっては、各モジュール4が、明色基準色と暗色基準色のいずれであるかの情報によって、QRコード用の読取装置でも読取可能な汎用データを記録し、各モジュール4が、明色基準色と暗色基準色のうち、どの基準色であるかの情報によって、専用読取装置でしか読み取ることのできない専用データを記録している。
【0037】
具体的には、汎用データは、QRコードの規格にしたがった二次元コードの情報であり、符号化領域8に、明色基準色と暗色基準色とによる明暗二値のパターンとして記録される。かかる多値化二次元コード2をQRコード用の読取装置に読み取らせた場合、当該読取装置は、各モジュール4の色を詳細に識別することなく、明色モジュール4aを白色(明色)と、暗色モジュール4bを黒色(暗色)と識別し、通常のQRコードの読取処理によって、汎用データが復号される。
図4(a)は、本実施例の多値化二次元コード2であり、
図4(b)は、
図4(a)の多値化二次元コード2にあって、明色基準色を全て白塗りとし、暗色基準色を全て黒塗りとして得られたQRコード3である。このQRコード3は、モジュールの明暗二値パターンによって多値化二次元コード2と同じ汎用データを記録したものであるから、QRコード用の読取装置で
図4の多値化二次元コード2とQRコード3とを読み取った場合には、いずれも同じ汎用データが読み取られることとなる。すなわち、本実施例の多値化二次元コード2は、QRコード用の読取装置に対しては、QRコードの同等品として機能し得るものであり、QRコードと互換性を有するものとなっている。
【0038】
汎用データが各モジュール4の明暗二値のパターンとして記録されるのに対し、専用データは、符号化領域8にあって、各モジュール4が明色基準色と暗色基準色のうち、どの基準色であるかの情報によって記録される。明色基準色と暗色基準色は、夫々8種類ずつ存在するため、専用データは、モジュール4ごとに3ビット記録することができる。すなわち、本実施例の多値化二次元コード2には、汎用データの3倍の容量の専用データを記憶できる。汎用データの記憶容量は、同じモジュール数のQRコード3の記憶容量と同じであるから、本実施例の多値化二次元コード2では、QRコードの4倍の記憶密度が実現される。
【0039】
また、本実施例では、多値化二次元コード2に、3セットの専用データを記録し得るよう構成されている。3セットの専用データの情報は、符号化領域8の異なるモジュール4に記録されるのではなく、符号化領域8の各モジュール4に重複するように記録される。具体的には、符号化領域8の各モジュール4に専用データを3ビット記録し得るところ、各モジュール4に、各セットの専用データが、1ビットずつ計3ビット記録される。すなわち、多値化二次元コード2に専用データを1セット記録する場合は、当該専用データが各モジュール4に1ビットずつ記録される。また、3セットの専用データを多値化二次元コード2に記録する場合は、各モジュール4に、1ビットの専用データが3セット分(3ビット)記録されることとなる。ここで、本実施例の多値化二次元コード2にあっては、各セットの専用データについて、暗号化マスクパターンを用いた暗号化が行われている。かかる専用データの記録態様は、多値化二次元コード2の生成方法によって詳述する。
【0040】
以下に、上記多値化二次元コード2の生成方法について説明する。
図5は、上記多値化二次元コード2を生成するフローチャートである。まず、ステップS100では、多値化二次元コード2に記録すべきデータセットの準備を行う。データセットとは、1セットの汎用データDS0と、1〜3セットの専用データDS1、DS2,DS3である。
【0041】
次のステップS110では、汎用データDS0について、通常のQRコードの生成手続に則って二次元コード化し、QRコードの配色パターンに相当するコードA0を生成する。すなわち、このコードA0は、汎用データDS0を記録するQRコード3(
図3(b参照))の情報そのものであり、このコードA0には、機能パターン7及び符号化領域8を構成する各モジュール4の明暗二値パターンが含まれる。この手続は、QRコードの手続であるため、詳細な説明は省略する。
【0042】
次のステップS120,S130では、専用データDS1,DS2,DS3について、上記実施例1の二次元コード1の生成手続に則って二次元コード化し、二次元コードの配色パターンに相当するコードA1,A2,A3を夫々生成する。すなわち、このコードA1,A2,A3は、専用データDS1,DS2,DS3を記録する実施例1の二次元コードの情報そのものである。したがって、各専用データDS1,DS2,DS3は、かかるステップS120,S130において、実施例1で説明した暗号化マスク処理によって暗号化される。なお、各専用データDS1,DS2,DS3を暗号化する暗号化マスク処理では、夫々異なる暗号化キーから生成された暗号化マスクパターンが用いられる。また、コードA1,A2,A3の生成時には、上記コードA0と合成し得るように、コードA0と同じバージョンのQRコードの規格に沿うようにする。専用データDS1,DS2,DS3のコード化は、上記実施例1の二次元コード1の生成方法と同じであるため、詳細な説明は省略する。
【0043】
ステップS130までの手続によって、1セットの汎用データDS0と、1〜3セットの専用データDS1,DS2,DS3とを夫々記録する、データ上の二次元コードA0,A1,A2,A3が得られる。上述のように、これらの二次元コードA0〜A3は、夫々の機能パターンと符号化領域が重なり合うように同一バージョンで生成される。これらの二次元コードA0〜A3について、重なり合うモジュールごとに夫々の色を合成し、上記多値化二次元コード2のモジュール4の配色パターンに変換するのがステップS200の符号化処理である。
【0044】
符号化処理S200では、二次元コードA0,A1,A2,A3を合成することにより、多値化二次元コード2の各モジュール4の配色を決定する。具体的には、生成する多値化二次元コード2の一辺のモジュール数をNとすると、多値化二次元コード2全体では、N
2個のモジュール4が存在し、二次元コードA0,A1,A2,A3にも、N
2個のモジュールの配色パターンが存在する。このN
2個のモジュール4全てについての配色を1つずつ決定する。より具体的には、QRコードの、縦のモジュールのインデックスをI,横のモジュールのインデックスをJとすると、I=1からN、J=1からNまでの組合せで全てのモジュールを表現できる。I,Jで示されるモジュールの色をC(I,J)で表現する。また、コードをA0,A1,A2,A3をKで示すとすると、C(I,J,K)で示すことが可能となる。ここで、Kは0から3である。
【0045】
図6は、符号化処理の処理内容を示したフローチャートである。ステップS210では、IとJで指定されるモジュール4について、それが機能パターン7を構成するモジュール4であるか否かを判定する。そして、機能パターン7を構成するモジュール4であると判定した場合は、ステップS220で、当該モジュール4の位置に基づいて配色を決定する。一方、符号化領域8を構成するモジュール4であると判定した場合は、次のステップS230で二次元コードA0〜A3の配色パターンを読み込む。具体的には、C(I,J,K)(Kは0から3)の配色データを読み込み、各モジュールが0か1(白か黒)かを識別する。次に、ステップS240では、二次元コードA0,A1,A2,A3の当該モジュールの配色パターンを結合する。具体的には、4セットの二次元コードA0,A1,A2,A3を記録する場合は、例えば白白黒白(0010)のように、各セットの当該モジュールの色の組合せを作る。この4つの色の組合せが、1個のモジュール4に記録する汎用データ及び専用データの記録単位となる。次に、ステップS250では、モジュール4の配色を決定するための符号化テーブルの選択を行う。符号化テーブルは、
図6に示すように、モジュール4に記録するデータと当該モジュール4の基準色コードとを1対1に対応付けしたものである。この符号化テーブルは、常に同じものを使用することもできるが、対応付けの異なる複数種類の符号化テーブルを選択的に用いて、使用した符号化テーブルの内容を知る者を制限することで、専用データの秘匿性を高めることができる。そして、ステップS260では、選択した符号化テーブルを用いて、記録単位となる4つの色の組合せからモジュール4の配色を決定する。ステップS270では、すべてのモジュール4について、上記の処理が完了したかを判定し、すべてのモジュール4の処理が完了した場合は符号化処理を終了する。
【0046】
このように、本実施例の多値化二次元コード2は、汎用データDS0及び専用データDS1,DS2,DS3を夫々二次元コード化し、データ上の二次元コードA0,A1,A2,A3を合成して多値化二次元コード2の配色を決定することによって生成される。ここで、専用データDS1、DS2,DS3については、二次元コードA1,A2,A3に変換する際に、実施例1と同様の暗号化マスク処理によって暗号化されるため、かかる生成方法によれば、実施例1の二次元コード1の生成方法と同様に、少ない演算量で、専用データDS1、DS2,DS3を暗号化できるという利点がある。
【0047】
次に、本実施例の多値化二次元コード2を専用読取装置で読み取る際の読取方法を説明する。
多値化二次元コード2は、以下の(1)〜(6)のステップを経ることで読み取ることができる。
(1)画像入力、画像抽出
撮像装置によって、多値化二次元コード2を含む画像を撮像し、多値化二次元コード2に含まれる機能パターン7を基に多値化二次元コード2を検出し、多値化二次元コード2の画像を抽出する。
(2)モジュール色の識別
多値化二次元コード2の画像から、符号化領域8の各モジュール4の画像を切り出し、モジュール4が16種類のどの基準色であるかを識別し、符号化領域8の全てのモジュール4の色データを得る。
(3)色の復号
予め記憶された復号テーブルに基づいて、識別した各モジュール4の基準色を4ビットのデータに復号する。復号テーブルは、多値化二次元コード2の生成時に使用した符号化テーブル(
図7参照)と略同内容のものであり、かかる復号テーブルによって、各モジュール4の基準色コードは、黒黒白黒(1101)などの、モジュール単位で記録された4つの色の組合せ(ビットパターン)に変換される。
(4)データの結合
モジュール4ごとに復号した4ビットのデータをデータセットごとに結合して、各データセットのデータDS0〜DS3をコード化した二次元コードA0〜A3を得る。
(5)専用データの復号
専用データを記録する二次元コードA1,A2,A3を、実施例1の二次元コード1の読取方法と同様にして、専用データDS1、DS2,DS3に復号する。すなわち、かかるステップにおいて、暗号化マスク復号処理が実行されることにより、暗号化マスクパターンによって暗号化された専用データDS1、DS2,DS3が復号される。なお、上述のように、専用データDS1、DS2,DS3は、異なる暗号化キーから生成された暗号化マスクパターンを用いて暗号化されているため、3セット全ての専用データDS1、DS2,DS3を復号するためには、二次元コードA1,A2,A3の生成時に使用した、3種類の暗号化キーの情報が必要となる。
(6)汎用データの復号
汎用データを記録するQRコードA0を、通常のQRコードの復号手順にしたがって汎用データDS0に復号しする。
【0048】
このように、本実施例の多値化二次元コード2は、専用読取装置によって、各モジュール4が16種類の基準色のいずれであるかを識別し、各モジュール4に記憶された4ビットのデータを結合して得られるデータ上の二次元コードA0,A1,A2,A3を個々に復号することにより、全てのセットのデータDS0、DS1、DS2,DS3を読み取ることができる。
【0049】
また、本実施例にあっては、専用データを記録する二次元コードA1,A2,A3は、実施例1の二次元コード1と同様に、暗号化マスク処理によってデータコード領域14に記録されるデータが暗号化されているため、暗号化マスク処理で用いた暗号化キーがなければ専用データDS1、DS2,DS3を読み取ることはできない。暗号化マスク処理による暗号化は実施例1で述べたように十分な秘匿性を有しているため、かかる多値化二次元コード2に記録された専用データDS1、DS2,DS3は高い秘匿性を有している。
【0050】
なお、本発明の実施形態は、上記実施例の形態に限定されず適宜変更可能である。例えば、上記実施例は、最も一般的なQRコードに本発明を適用した例であるが、本発明はQRコード以外の二次元コードにも適用可能である。また、上記実施例の多値化二次元コード2は、モジュールを多種類の基準色で配色したものであるが、本発明は、モジュールを微細な領域に細分して、サブモジュール単位で配色する多値化二次元コードにも適用できる。
【0051】
また、上記実施例では、暗号化マスク処理で、1セットの暗号化マスクパターンをデータコード領域14と重ねてXOR演算を行っているが、かかる方法に替えて、複数の暗号化キーから複数セットの暗号化マスクパターンを生成し、各暗号化マスクパターンをデータコード領域14に重ねて順番にXOR演算を行うようにしてもよい。かかる構成とすれば、暗号化マスク処理で用いた複数の暗号化キーを特定し、かつ、XOR演算を行った順序も特定しなければ、データを復号できないため、暗号強度を高めることができる。
【0052】
また、実施例2の多値化二次元コード2では、複数セットの専用データについて、夫々異なる暗号化キーを用いて暗号化マスク処理を行っているが、かかる構成では、利用者が複数セットの専用データを復号するためには、複数の暗号化キーを所持しなければならず、専用データのセット数(層数)が増大すると、暗号化キーの管理が煩雑になる。そこで、多数の専用データセットについて、セット毎に異なる暗号化キーで暗号化マスク処理を行う場合は、各暗号化マスク処理で使用する複数の暗号化キーをまとめて暗号化した暗号化キーデータを生成し、当該暗号化キーデータを多値化二次元コードの所定領域に記録することが提案される。かかる構成とすれば、複数の暗号化キーを所持していなくても、暗号化キーデータを復号するための一つの復号キーさえ所持していれば、暗号化マスク処理で暗号化された各データを復号できるため、暗号キーの管理が容易となる。