特許第6600905号(P6600905)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社テララコード研究所の特許一覧

特許6600905二次元コード、多値化二次元コード及び二次元コードの生成方法
<>
  • 特許6600905-二次元コード、多値化二次元コード及び二次元コードの生成方法 図000002
  • 特許6600905-二次元コード、多値化二次元コード及び二次元コードの生成方法 図000003
  • 特許6600905-二次元コード、多値化二次元コード及び二次元コードの生成方法 図000004
  • 特許6600905-二次元コード、多値化二次元コード及び二次元コードの生成方法 図000005
  • 特許6600905-二次元コード、多値化二次元コード及び二次元コードの生成方法 図000006
  • 特許6600905-二次元コード、多値化二次元コード及び二次元コードの生成方法 図000007
  • 特許6600905-二次元コード、多値化二次元コード及び二次元コードの生成方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6600905
(24)【登録日】2019年10月18日
(45)【発行日】2019年11月6日
(54)【発明の名称】二次元コード、多値化二次元コード及び二次元コードの生成方法
(51)【国際特許分類】
   G06K 19/06 20060101AFI20191028BHJP
   G06K 1/12 20060101ALI20191028BHJP
   G09C 5/00 20060101ALI20191028BHJP
【FI】
   G06K19/06 037
   G06K19/06 075
   G06K19/06 140
   G06K1/12 A
   G09C5/00
【請求項の数】3
【全頁数】16
(21)【出願番号】特願2015-82020(P2015-82020)
(22)【出願日】2015年4月13日
(65)【公開番号】特開2015-212934(P2015-212934A)
(43)【公開日】2015年11月26日
【審査請求日】2018年3月16日
(31)【優先権主張番号】特願2014-82731(P2014-82731)
(32)【優先日】2014年4月14日
(33)【優先権主張国】JP
【新規性喪失の例外の表示】特許法第30条第2項適用 特許法第30条第2項適用,コンピュータセキュリティシンポジウム2013論文集(2013年10月14日)一般社団法人情報処理学会発行、第809−816ページに発表、2013年10月23日かがわ国際会議場において開催されたコンピュータセキュリティシンポジウム2013で発表、2014年暗号と情報セキュリティシンポジウム予稿集(CD−ROM)(2014年1月)一般社団法人電子情報通信学会発行で発表、2014年暗号と情報セキュリティシンポジウム概要集(2014年1月)一般社団法人電子情報通信学会発行で発表、2014年1月24日城山観光ホテルにおいて開催された2014年暗号と情報セキュリティシンポジウムで発表
(73)【特許権者】
【識別番号】309031606
【氏名又は名称】株式会社テララコード研究所
(74)【代理人】
【識別番号】100084043
【弁理士】
【氏名又は名称】松浦 喜多男
(74)【代理人】
【識別番号】100142240
【弁理士】
【氏名又は名称】山本 優
(74)【代理人】
【識別番号】100135460
【弁理士】
【氏名又は名称】岩田 康利
(72)【発明者】
【氏名】寺浦 信之
【審査官】 甲斐 哲雄
(56)【参考文献】
【文献】 特開2007−042054(JP,A)
【文献】 特開2009−093443(JP,A)
【文献】 特開2007−206762(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 19/06
G06K 1/12
G09C 5/00
(57)【特許請求の範囲】
【請求項1】
4種類以上の色で配色されることにより、2ビット以上を記憶可能なモジュールをマトリクス状に配置してなるものであり、
複数のモジュールによって構成され、2セット以上のデータを記憶するデータコード領域を備え、
該データコード領域を構成する各モジュールは、明色のモジュールと、暗色のモジュールとに大別され、前記明色のモジュールは2種類以上の明色基準色で配色され、また、前記暗色のモジュールは2種類以上の暗色基準色で配色されており、
データコード領域は、
各モジュールが明色基準色と暗色基準色のいずれで配色されているかによって、1セットの汎用データを記録し、
各モジュールが明色基準色と暗色基準色のうち、どの基準色であるかによって、汎用データとは異なる1セット又は複数セットの専用データを記録し、
データコード領域を構成する各モジュールは、データコード領域が記憶する各セットのデータを1ビットずつ記憶するよう構成されており、
少なくとも1セットの専用データに対して、暗号化マスクパターンとXOR演算させて、ビットパターンの一部を反転させる暗号化が行われており、
前記暗号化マスクパターンは、所定長さの暗号化キーから所定の方法で生成されたものであることを特徴とする多値化二次元コード。
【請求項2】
請求項1に記載の多値化二次元コードの生成方法であって、
汎用データを記録する二次元コードのデータを生成するステップと、
専用データをセット毎に記録する1又は複数の二次元コードのデータを生成するステップと、
所定長さの暗号化キーから前記暗号化マスクパターンを生成するステップと、
前記専用データを記録する二次元コードのデータの少なくとも1つ対して、前記暗号化マスクパターンを重ねてXOR演算し、暗号化するステップと、
汎用データを記録する前記二次元コードと、専用データを記録する前記二次元コードとを、重なり合うモジュール毎に合成して、多値化二次元コードの各モジュールの配色パターンに変換するステップと
を含むことを特徴とする多値化二次元コードの生成方法。
【請求項3】
請求項1に記載の多値化二次元コードの読取方法であって、
多値化二次元コードを撮像して、多値化二次元コードの画像を取得するステップと、
多値化二次元コードの画像から、各モジュールの配色を識別するステップと、
予め記憶された復号テーブルに基づいて、識別した各モジュールの配色を複数ビットのデータに復号するステップと、
モジュールごとに復号した複数ビットのデータを、各セットのデータごとに結合して、各セットのデータを記録する二次元コードのデータを取得するステップと、
専用データを記録する二次元コードのデータのうち、暗号化マスクパターンで暗号化されたものについて、前記暗号化マスクパターンと重ねてXOR演算するステップと、
専用データを記録する二次元コードのデータを復号して、1又は複数セットの専用データを取得するステップと、
汎用データを記録する二次元コードのデータを復号して、1セットの汎用データを取得するステップと
を含むことを特徴とする多値化二次元コードの読取方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のモジュールによって構成される二次元コードに関する。
【背景技術】
【0002】
二次元コードにあって、現在普及しているものは、基本単位となるモジュールに明色又は暗色を割り当てて情報を記録している。こうした明暗の二次元コードは規格が統一されており、規格化された二次元コードであれば、携帯電話等の読取装置でデータを読み取って、誰でも記録された内容を知り得るように構成されている。
【0003】
また、代表的な二次元コードであるQRコード(登録商標)では、モジュールの明暗パターンの読取りを容易にするマスク処理を行っている。このマスク処理は符号化領域(形式情報及び型番情報を除く)で、データを表すパターンとマスクパターンとで順にXOR演算による明暗変換を行う処理である。マスクパターンは8種類用意されており、全てのマスクパターンをデータパターンとXOR演算し、その中で、最も読取容易となるマスクパターンが採用される。
【0004】
また、二次元コードのデータを限られた者しか読み取ることができないように、記録するデータを暗号化することが提案されている。現在、暗号化の手法として採用されているのは、二次元コードに記憶すべきデータを暗号鍵で暗号化してから二次元コードに記憶させておき、二次元コードの読取りにより得られる暗号化データを、復号鍵を知る者のみが復号できるようにする手法である。
【0005】
また、発明者は、1つのモジュールに2ビット以上のデータを記憶可能とした多値化二次元コードを提案している。具体的には、モジュールを微細な領域(サブモジュール)に細分して、サブモジュール単位で配色してなる多値化二次元コードを提案している(例えば、非特許文献1)。また、モジュールを4種類以上の色で配色した多値化二次元コードも提案している(例えば、非特許文献2)。かかる多値化二次元コードに記憶されるデータは、1セットの汎用データと1セット以上の専用データとからなる。汎用データは、モジュールの明暗二値パターンよって記憶されるものであり、既存の二次元コードリーダーでも読取可能である。専用データは、モジュールの微細領域の明暗パターンや、多種類の配色パターンによって記憶されるものであり、専用の二次元コードリーダーでのみ読取可能である。
【0006】
また、上記の多値化二次元コードにあっては、個々のモジュールに記録可能な2ビット以上のデータを、複数セットの1ビットデータに読み替える符号化テーブル方式が提案されている。この符号化テーブル方式では、多値化二次元コードの生成時に用いた符号化テーブルを、復号する側が共有していなければ、正しく復号することができない。このため、多値化二次元コードでは、かかる符号化テーブルを暗号の共通鍵として使用できる。
【先行技術文献】
【特許文献】
【0007】
【非特許文献1】第11回情報科学技術フォーラム講演論文集DVD 571〜578頁 発行所:電子情報通信学会 2012年8月21日発行
【非特許文献2】コンピュータセキュリティシンポジウム2012論文集CD 309〜316頁 発行所:情報処理学会 2012年10月23日発行
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、上記従来の暗号方式は、データを暗号化する処理と、暗号化したデータから二次元コードを生成する処理とが分離している。また、二次元コードの読取処理と、読み取った暗号化データを復号する処理も分離している。このため、従来の暗号方式では、二次元コードの生成処理や読取処理とは別に、暗号化・復号プログラムが必要で、二次元コードの作成が煩雑となる。また、暗号化データ自体は、汎用の暗号解読プログラムで解読を試みることができる。
【0009】
また、上記多値化二次元コードにおいて、符号化テーブルを用いた暗号方式では、1つのモジュールに記憶し得るビット数が少ない場合、符号化テーブルが簡単なものになってしまうため、ラウンドロビン攻撃に対して脆弱となり、秘匿性が不十分となる。
【0010】
本発明はかかる現状に鑑みて為されたものであり、秘匿性が高く、暗号化や復号の手間も少ない二次元コード及び多値化二次元コードの提供を目的とする。
【課題を解決するための手段】
【0011】
本発明は、明色のモジュールと暗色のモジュールとをマトリクス状に配置してなる二次元コードであって、少なくともデータコード語と誤り訂正コード語が記録されるデータコード領域に対して、暗号化マスクパターンとXOR演算させて、一部モジュールの色を反転させてなる暗号化が行われており、前記暗号化マスクパターンは、所定長さの暗号化キーから所定の方法で生成されたものであることを特徴とする二次元コードである。
【0012】
かかる構成にあっては、二次元コードの生成時に行われる通常のマスク処理と同様のXOR演算によって暗号化・復号が可能であるため、個別の暗号化プログラムを用いる従来構成に比べて、二次元コードの生成時や読取時の手間が少ないという利点がある。また、本発明の二次元コードでは、適度な長さの暗号化キーを使用すれば、ラウンドロビン攻撃に耐え得るほど多くの暗号化マスクパターンを生成できるため、十分な秘匿性を確保できる。また、本発明では、暗号化キーがわからなければ、二次元コードからデータを読み取ることができないため、汎用の暗号解読プログラムを用いた暗号解読が困難であるという利点もある。
【0013】
本発明にあって、前記誤り訂正コード語はリードソロモン符号であり、前記データコード領域は、8個以上のモジュールによって構成されるシンボル単位で誤り訂正コード語を用いて誤り訂正可能に構成されており、前記暗号化マスクパターンを用いた暗号化では、前記データコード領域の略全てのシンボルについて、1つ以上のモジュールの色が反転されていることが提案される。
【0014】
リードソロモン符号を用いた誤り訂正機能では、読み誤りが生じたシンボルが全体の30%までであれば、誤りを訂正して正しいデータを読み取り可能である。このため、暗号化マスクパターンによってモジュールの色が全く反転していないシンボルが多い場合は、暗号化マスクパターンによる暗号化が、誤り訂正機能によって復号される可能性がある。しかしながら、1つのシンボルに含まれる8個以上のモジュールの色を、1/2の確率でランダムに反転させれば、99%以上の確率で1個以上のモジュールの色を反転させることができるため、かかる構成では、ランダムに生成した暗号化マスクパターンを用いた場合でも、データコード領域を構成する略全てのシンボルで1個以上のモジュールの色を反転させることが可能となる。したがって、かかる構成によれば、不規則な暗号化マスクパターンを用いて暗号化したデータが、リードソロモン符号を用いた誤り訂正機能によって復号されるおそれがなくなる。
【0015】
本発明の別の態様として、4種類以上の色で配色されることにより、及び/又は、微細な領域に細分化されることにより、2ビット以上を記憶可能なモジュールをマトリクス状に配置してなるものであり、複数のモジュールによって構成され、2セット以上のデータを記憶するデータコード領域を備え、該データコード領域を構成する各モジュールは、各セットのデータを1ビットずつ記憶するよう構成されており、少なくとも1セットのデータに対して、暗号化マスクパターンとXOR演算させて、ビットパターンの一部を反転させる暗号化が行われており、前記暗号化マスクパターンは、所定長さの暗号化キーから所定の方法で生成されたものであることを特徴とする多値化二次元コードが提案される。
【0016】
かかる構成にあっては、多値化二次元コードに記憶するデータの暗号化や復号は、上述のように、通常のマスク処理と同様のXOR演算によって暗号化・復号が可能であるため、比較的簡単にデータを暗号化し、復号することができる。また、上述のように、適度な長さの暗号化キーを使用すれば、ラウンドロビン攻撃に耐え得るほど多くの暗号化マスクパターンを生成できるため、十分な秘匿性を確保できる。
【0017】
また、本発明の別の態様は、明色のモジュールと暗色のモジュールとをマトリクス状に配置してなり、データコード語と誤り訂正コード語が記録されるデータコード領域を備える二次元コードの生成方法であって、所定長さの暗号化キーから前記データコード領域と重なり得る暗号化マスクパターンを生成するステップと、該暗号化マスクパターンを前記データコード領域と重ねてXOR演算することにより、前記データコード領域の一部モジュールの色を反転させるステップとを備えることを特徴とする二次元コードの生成方法である。かかる方法によれば、上述のように、秘匿性が高い二次元コードを容易に生成可能となる。
【発明の効果】
【0018】
以上に述べたように、本発明の二次元コード及び多値化二次元コードは、秘匿性が高く、暗号化や復号の手間も少ないものとなる。また、本発明の二次元コードの生成方法によれば、データの秘匿性が高い二次元コードを容易に生成できる。
【図面の簡単な説明】
【0019】
図1】(a)は実施例1の二次元コード1の概略図であり、(b)は実施例1の二次元コード1の各領域を機能別に模様分けして示す説明図である。
図2】(a)は実施例2の多値化二次元コード2の概略図であり、(b)は実施例2の多値化二次元コード2の各領域を機能別に模様分けして示す説明図である。
図3】16種類の基準色の内容を示す図表である。
図4】(a)は実施例2の多値化二次元コード2であり、(b)は実施例2の多値化二次元コード2と互換性を有するQRコード3である。
図5】実施例2の多値化二次元コード2の生成方法を示すフローチャートである。
図6】符号化処理の処理内容を示すフローチャートである。
図7】実施例2に係る符号化テーブルを示す図表である。
【発明を実施するための形態】
【0020】
本発明の実施形態を、以下の実施例に従って説明する。
【実施例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にあって、暗号化マスク処理で用いる暗号化マスクパターンは、2208通り存在する。これはラウンドロビン攻撃によって正しい暗号化マスクパターンを適用される可能性は無視できるほど小さい。なお、二次元コード1は、リードソロモン符号による誤り訂正機能を備えているため、完全に正しい暗号化マスクパターンでなくても、誤り訂正機能により復号できる場合があるが、2208通りの暗号化マスクパターンであれば、誤り訂正機能の影響を加味しても、十分な計量的安全性を確保できる。なお、本実施例は、データコード領域14の容量が208ビットであるため、暗号化マスクパターンが2208通りであるが、暗号化キーは256ビットであるため、データコード領域の容量が256ビット以上の二次元コードの場合は、2256通りの暗号化マスクパターンを適用できるため、計量的安全性はさらに高くなる。このように、本実施例の二次元コード1は十分な秘匿性を有している。
【0032】
また、上記二次元コード1の読取処理では、誤り訂正処理をパスしてデータコード語が復号されるのは、リードソロモン符号の誤り訂正で誤りを検出しなかった場合と、検出した誤りを訂正できた場合である。ここで、本実施例の二次元コード1に対して、暗号化キーを順次試していくラウンドロビン攻撃を行った場合、暗号化マスクパターンとは異なるマスクパターンを適用した場合でも、誤り訂正処理をパスして、元データと異なるデータが復号される場合が存在する。本実施例の二次元コード1では、訂正能力を最も高く設定する場合でも、データコード領域14に、272とおり(9シンボル=72ビット)のデータコード語を記録可能であるため、ラウンドロビン攻撃では、正しいデータ以外にも、272−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個のモジュール4が存在し、二次元コードA0,A1,A2,A3にも、N個のモジュールの配色パターンが存在する。このN個のモジュール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では、複数セットの専用データについて、夫々異なる暗号化キーを用いて暗号化マスク処理を行っているが、かかる構成では、利用者が複数セットの専用データを復号するためには、複数の暗号化キーを所持しなければならず、専用データのセット数(層数)が増大すると、暗号化キーの管理が煩雑になる。そこで、多数の専用データセットについて、セット毎に異なる暗号化キーで暗号化マスク処理を行う場合は、各暗号化マスク処理で使用する複数の暗号化キーをまとめて暗号化した暗号化キーデータを生成し、当該暗号化キーデータを多値化二次元コードの所定領域に記録することが提案される。かかる構成とすれば、複数の暗号化キーを所持していなくても、暗号化キーデータを復号するための一つの復号キーさえ所持していれば、暗号化マスク処理で暗号化された各データを復号できるため、暗号キーの管理が容易となる。
【符号の説明】
【0053】
1 二次元コード
2 多値化二次元コード
3 QRコード
4 モジュール
4a 明色モジュール
4b 暗色モジュール
7 機能パターン
8 符号化領域
11 位置検出パターン
12 分離パターン
13 タイミングパターン
14 データコード領域
15 形式情報コード領域
16 シンボル
図1
図2
図3
図4
図5
図6
図7