【新規性喪失の例外の表示】特許法第30条第2項適用 1.公開物 卒業論文「二次元コードを利用した携帯電話で復号可能な秘密分散法」 2.公開日 平成24年2月10日 3.公開場所 筑波大学理工学群工学システム学類 平成23年度卒業研究論文発表会 4.公開者 本庄 俊太郎(指導教員 古賀 弘樹) 〔刊行物等〕 1.発行者名 一般社団法人電子情報通信学会 2.刊行物名 電子情報通信学会技術研究報告 信学技報 3.巻数等 Vol.112 No.58、第35頁〜第40頁 4.発行日 2012年(平成24年)5月18日 〔刊行物等〕 1.公開物 「A(2,2)−Threshold Scheme Based on a Two−Dimentional Code with Decodability by Cellular Phones」(ポスターセッション) 2.公開日 2012年(平成24年)7月4日 3.集会名 ISIT 2012−IEEE International Symposium on Information Theory 4.公開場所 米国マサチューセッツ州ケンブリッジ(Cambridge,MA,USA) 5.公開者 本庄 俊太郎、古賀 弘樹
(58)【調査した分野】(Int.Cl.,DB名)
前記第1の分散二次元コードシンボル列を生成する際、2t個のシンボルから構成され、前記第1の分散二次元コードシンボル列の誤り訂正データシンボル列である第1の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置し、
前記第2の分散二次元コードシンボル列を生成する際、2t個のシンボルから構成され、前記第2の分散二次元コードシンボル列の誤り訂正データシンボル列である第2の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置する、
ことを特徴とする請求項1に記載の二次元コードの生成方法。
前記二次元コードシンボル列、前記第1の分散二次元コードシンボル列および前記第2の分散二次元コードシンボル列は、その末尾に、前記所定のマトリックスに配置可能なシンボル数から9tを引いた残りのシンボル数分の付加データシンボル列を有することを特徴とする請求項1乃至5のいずれかに記載の二次元コードの生成方法。
前記所定の手順では、前記二次元コードシンボル列の前記第1及び第2の黒色データシンボル列中のシンボルを他のシンボル列中のシンボルと交換することを特徴とする請求項8に記載の二次元コードの生成方法。
前記所定のマトリックスを構成するモジュールのうち前記第1のビットが配置されたモジュールを黒く、前記第1のビットの反対の第2のビットが配置されたモジュールを白くなるように印刷する手法により、前記第1及び第2の二次元コードのうち一方を白紙に印刷し、他方を透明シートに印刷することを特徴とする請求項1乃至10のいずれかに記載の二次元コードの生成方法。
【発明の概要】
【発明が解決しようとする課題】
【0008】
二次元コードの新たな応用として、次のような例が考えられる。同じ大きさの二次元コードQRx,QRyを透明なシートに印刷しておき、二次元コードQRxを商品Aに付し、二次元コードQRyを別の商品Bにそれぞれ付しておく。商品A,B両方を購入した人は、二次元コードQRxとQRyを重ね合わせた二次元コードQRzを携帯端末等の読取り装置を用いて読み取ることで、特別な情報を得る。商品としては、例えば、書籍やカードゲームのカードなどが挙げられる。
【0009】
また、二次元コードの別の応用例として、秘密分散法への応用が考えられる。秘密分散法とは、秘密情報を複数人で分散共有する技術である。従来の秘密分散法として、Shamirのしきい値分散法(非特許文献1)や、視覚復号型の秘密分散法(非特許文献2)などがあげられる。
【0010】
Shamirのしきい値分散法は、n個のシェア(分散情報)のうち、t個以上からは秘密情報が復号できるが、t−1個以下では秘密情報は全く得られないという手法である。秘密情報は通常、計算機を用いた復号処理を行い復号される。
【0011】
視覚復号型の秘密分散法は、画像情報に適用可能な秘密分散法であり、例えば(2,2)しきい値型の場合は、二枚の透明なシートに印刷されたシェアを用意し、それらを重ねるだけで秘密情報が視覚的に復元できる。一枚のシェアからは秘密画像の情報は全く得られず、また、計算機を用いずに復号できるという利点がある。しかし、隠せる情報が少なく、復号時に文字情報以外の雑音成分が生じるという短所がある。
【0012】
本発明は、上記の技術的認識に基づいてなされたものであり、重ね合わせることによって、新たな情報を有し、かつ通常の読取り装置で読取り可能な二次元コードが得られる2つの二次元コードの生成方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の一態様に係る二次元コードの生成方法は、
第1の情報をt個のシンボルからなる第1の文字データシンボル列に変換し、
第2の情報をt個のシンボルからなる第2の文字データシンボル列に変換し、
第3の情報をt個のシンボルからなる第3の文字データシンボル列に変換し、
4t個のシンボルから構成され、所定のマスク処理によって第1のビットのみとなる黒色データシンボル列を生成し、
2t個のシンボルから構成され、一様ランダムなデータが格納されたランダムデータシンボル列を生成し、
先頭の前記第1の文字データシンボル列に続いて前記黒色データシンボル列および前記ランダムデータシンボル列を所定の順序で配置し、所定の誤り訂正符号により計算され2t個のシンボルで構成される誤り訂正データシンボル列を付加することにより、二次元コードシンボル列を生成し、
前記二次元コードシンボル列と同じ数のシンボルを有し、先頭に前記第2および第3の文字データシンボル列がそれぞれ配置された第1及び第2の分散二次元コードシンボル列であって、両者の論理和をとることにより前記二次元コードシンボル列の前記黒色データシンボル列、前記ランダムデータシンボル列および前記誤り訂正データシンボル列が前記二次元コードシンボル列と同じ位置にそれぞれ現れるようにシンボルが配置された、第1及び第2の分散二次元コードシンボル列を生成し、
前記第1の分散二次元コードシンボル列を用いて第1の二次元コードを生成し、前記第2の分散二次元コードシンボル列を用いて第2の二次元コードを生成する、
ことを特徴とする。
【0014】
また、前記二次元コードの生成方法において、
前記第1の分散二次元コードシンボル列を生成する際、2t個のシンボルから構成され、前記第1の分散二次元コードシンボル列の誤り訂正データシンボル列である第1の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置し、
前記第2の分散二次元コードシンボル列を生成する際、2t個のシンボルから構成され、前記第2の分散二次元コードシンボル列の誤り訂正データシンボル列である第2の誤り訂正データシンボル列を、前記二次元コードシンボル列の前記黒色データシンボル列に対応するシンボル列内に配置してもよい。
【0015】
また、前記二次元コードの生成方法において、
前記黒色データシンボル列は、いずれも2t個のシンボルから構成される第1の黒色データシンボル列および第2の黒色データシンボル列からなり、
前記第1の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第1の黒色データシンボル列に対応する位置に前記第1の誤り訂正データシンボル列を配置し、前記第2の黒色データシンボル列に対応する位置に前記第2の黒色データシンボル列を配置し、
前記第2の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第1の黒色データシンボル列に対応する位置に前記第1の黒色データシンボル列を配置し、前記第2の黒色データシンボル列に対応する位置に前記第2の誤り訂正データシンボル列を配置してもよい。
【0016】
また、前記二次元コードの生成方法において、
前記ランダムデータシンボル列は、いずれもt個のシンボルから構成される第1のランダムデータシンボル列および第2のランダムデータシンボル列からなり、
前記第1の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第1のランダムデータシンボル列に対応する位置に前記第1のランダムデータシンボル列を配置し、前記第2のランダムデータシンボル列に対応する位置に、前記所定のマスク処理によって第2のビットのみとなる白色データシンボル列を配置し、
前記第2の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第2のランダムデータシンボル列に対応する位置に前記第2のランダムデータシンボル列を配置し、前記第1のランダムデータシンボル列に対応する位置に、前記所定のマスク処理によって前記第2のビットのみとなる白色データシンボル列を配置するようにしてもよい。
【0017】
また、前記二次元コードの生成方法において、
前記誤り訂正データシンボル列は、いずれもt個のシンボルから構成される第1の誤り訂正データシンボル列および第2の誤り訂正データシンボル列からなり、
前記第1の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第1の誤り訂正データシンボル列に対応する位置に前記第1の誤り訂正データシンボル列を配置し、前記第2の誤り訂正データシンボル列に対応する位置に、前記所定のマスク処理によって第2のビットのみとなる白色データシンボル列を配置し、
前記第2の分散二次元コードシンボル列を生成する際、前記二次元コードシンボル列の前記第2の誤り訂正データシンボル列に対応する位置に前記第2の誤り訂正データシンボル列を配置し、前記第1の誤り訂正データシンボル列に対応する位置に、前記所定のマスク処理によって前記第2のビットのみとなる白色データシンボル列を配置するようにしてもよい。
【0018】
また、前記二次元コードの生成方法において、
前記二次元コードシンボル列、前記第1の分散二次元コードシンボル列および前記第2の分散二次元コードシンボル列は、その末尾に、前記所定のマトリックスに配置可能なシンボル数から9tを引いた残りのシンボル数分の付加データシンボル列を有するようにしてもよい。
【0019】
本発明の一態様に係る二次元コードの生成方法は、
第1の情報をt個のシンボルからなる第1の文字データシンボル列に変換し、
第2の情報をt個のシンボルからなる第2の文字データシンボル列に変換し、
第3の情報をt個のシンボルからなる第3の文字データシンボル列に変換し、
4t個のシンボルから構成され、所定のマスク処理によって第1のビットのみとなる黒色データシンボル列を生成し、
先頭の前記第1の文字データシンボル列に続いて前記黒色データシンボル列を配置し、所定の誤り訂正符号により計算され2t個のシンボルで構成される誤り訂正データシンボル列を付加することにより、二次元コードシンボル列を生成し、
前記二次元コードシンボル列と同じ数のシンボルを有し、先頭に前記第2および第3の文字データシンボル列がそれぞれ配置された第1及び第2の分散二次元コードシンボル列であって、両者の論理和をとることにより前記二次元コードシンボル列の前記黒色データシンボル列および前記誤り訂正データシンボル列が前記二次元コードシンボル列と同じ位置にそれぞれ現れるようにシンボルが配置された、第1及び第2の分散二次元コードシンボル列を生成し、
前記第1の分散二次元コードシンボル列を用いて第1の二次元コードを生成し、前記第2の分散二次元コードシンボル列を用いて第2の二次元コードを生成する、
ことを特徴とする。
【0020】
本発明の一態様に係る二次元コードの生成方法は、
第1の情報をt個のシンボルからなる第1の文字データシンボル列に変換し、
第2の情報をt個のシンボルからなる第2の文字データシンボル列に変換し、
第3の情報をt個のシンボルからなる第3の文字データシンボル列に変換し、
先頭の前記第1の文字データシンボル列に続いて、いずれも2t個のシンボルから構成された空の第1及び第2の黒色データシンボル列と、いずれもt個のシンボルから構成され一様ランダムなデータが格納された第1及び第2のランダムデータシンボル列と、いずれもt個のシンボルから構成された空の第1及び第2の誤り訂正データシンボル列とを配置した後、所定の手順でシンボルの配置変更を行い、
前記空の第1及び第2の黒色データシンボル列のシンボルが所定のマスク処理によって第1のビットのみとなるように前記空の第1及び第2の黒色データシンボル列のシンボルにデータを順次格納し、その後、所定の誤り訂正符号により計算された誤り訂正データを前記空の第1及び第2の誤り訂正データシンボル列のシンボルに順次格納することにより、二次元コードシンボル列を生成し、
先頭の前記第2の文字データシンボル列に続いて、前記二次元コードシンボル列の前記第2の黒色データシンボル列と、2t個のシンボルから構成された空の第3の誤り訂正データシンボル列と、t個のシンボルから構成された空の第1の白色データシンボル列と、前記二次元コードシンボル列の前記第1のランダムデータシンボル列と、t個のシンボルから構成された空の第2の白色データシンボル列と、前記二次元コードシンボル列の前記第1の誤り訂正データシンボル列とを配置した後、前記所定の手順でシンボルの配置変更を行い、
前記空の第1及び第2の白色データシンボル列のシンボルが前記所定のマスク処理によって第2のビットのみとなるように前記空の第1及び第2の白色データシンボル列のシンボルにデータを順次格納し、その後、前記所定の誤り訂正符号により計算された誤り訂正データを前記空の第3の誤り訂正データシンボル列のシンボルに順次格納することにより、第1の分散二次元コードシンボル列を生成し、
先頭の前記第3の文字データシンボル列に続いて、2t個のシンボルから構成された空の第4の誤り訂正データシンボル列と、前記二次元コードシンボル列の前記第1の黒色データシンボル列と、前記二次元コードシンボル列の前記第2のランダムデータシンボル列と、t個のシンボルから構成された空の第3の白色データシンボル列と、前記二次元コードシンボル列の前記第2の誤り訂正データシンボル列と、t個のシンボルから構成された空の第4の白色データシンボル列とを配置した後、前記所定の手順でシンボルの配置変更を行い、
前記空の第3及び第4の白色データシンボル列のシンボルが前記所定のマスク処理によって第2のビットのみとなるように前記空の第3及び第4の白色データシンボル列のシンボルにデータを順次格納し、その後、前記所定の誤り訂正符号により計算された誤り訂正データを前記空の第4の誤り訂正データシンボル列のシンボルに順次格納することにより、第2の分散二次元コードシンボル列を生成し、
前記第1の分散二次元コードシンボル列を用いて第1の二次元コードを生成し、前記第2の分散二次元コードシンボル列を用いて第2の二次元コードを生成する、
ことを特徴とする。
【0021】
また、前記二次元コードの生成方法において、
前記所定の手順では、前記二次元コードシンボル列の前記第1及び第2の黒色データシンボル列中のシンボルを他のシンボル列中のシンボルと交換するようにしてもよい。
【0022】
また、前記二次元コードの生成方法において、
前記第1の情報は秘密情報を含み、前記第2及び第3の情報は公開情報を含むようにしてもよい。
【0023】
また、前記二次元コードの生成方法において、
前記所定のマトリックスを構成するモジュールのうち前記第1のビットが配置されたモジュールを黒く、前記第1のビットの反対の第2のビットが配置されたモジュールを白くなるように印刷する手法により、前記第1及び第2の二次元コードのうち一方を白紙に印刷し、他方を透明シートに印刷するようにしてもよい。
【0024】
また、前記二次元コードの生成方法において、
前記第1及び第2の二次元コードはQRコードであってもよい。
【発明の効果】
【0025】
本発明によれば、重ね合わせることによって、新たな情報を有し、かつ通常の読取り装置で読取り可能な二次元コードが得られる2つの二次元コードの生成方法を提供することができる。
【発明を実施するための形態】
【0027】
以下、図面を参照しながら、本発明の実施形態に係る二次元コードの生成方法について説明する。なお、以下の説明では二次元コードとしてQRコードを例にとるが、本発明は他の二次元コードの生成にも適用可能である。
【0028】
図1は、本実施形態に係る二次元コードの生成方法のフローチャートである。
図2は、本実施形態に係る二次元コードシンボル列の構成例を示している。以下、
図1のフローチャートに沿って説明する。
【0029】
まず、第1の情報(例えば秘密情報)をt個のシンボルからなる文字データシンボル列Szに変換し、同様にして、第2及び第3の情報(例えば公開情報)についても、t個のシンボルからなる文字データシンボル列Sx及び文字データシンボル列Syにそれぞれ変換する(ステップS1)。ここで、シンボル数tは、後述の誤り訂正データシンボル列Pによる最大誤り訂正可能シンボル数である。
【0030】
文字データシンボル列Sx,Sy,Szにおいては、モード(数字モード、英数字モード、漢字モード等)を判別するためのモード指示子が先頭に配置され、それに続いて、モードに応じて長さの異なる文字数指示子が配置される。そして、文字数指示子の後に、変換した文字データが連結される。最後に、データの末尾であることを示す終端パターン(“0000”)が配置される。1シンボルは8ビットで構成される。終端パターン以降の余ったシンボルは任意のデータで埋める。
【0031】
図2に示すように、二次元コードシンボル列のシンボル数を二次元コードのマトリックスの使用可能なシンボル数に合わせるために、後述の二次元コードシンボル列Z、分散二次元コードシンボル列XおよびYの末尾に付加データシンボル列Aを付加してもよい。この付加データシンボル列Aのシンボル数は、二次元コードの所定の型番に対応するマトリックスの使用可能なシンボル数から9tを引いた残りのシンボル数である。例えば、型番および誤り訂正レベルをそれぞれ4型(使用可能シンボル数:100)及びレベルLとすると、t=10となるため、付加データシンボル列Aのシンボル数は10(=100−9×10)となる。なお、付加データシンボル列Aには、例えばX,Y,Z間で共通のデータが格納される。その他、X及びYの付加データシンボル列に任意のデータIx,Iyをそれぞれ格納し、Zの付加データシンボル列にIxとIyの論理和のデータを格納してもよい。
【0032】
次に、黒色データシンボル列Bを生成する(ステップS2)。この黒色データシンボル列Bは、二次元コードとして印刷されたときに黒く印刷される部分である。黒色データシンボル列Bは、
図2に示すように、4t個のシンボルから構成される。また、黒色データシンボル列Bには、所定のマスク処理によって、ビット“1”のみとなるように構成されたビット列が格納される。マスク処理は、明暗のモジュールのバランスを整えるためにシンボルを配置した部分に掛けられるものである。本実施形態では、ビット“1”が黒として印刷され、ビット“0”が白として印刷されることを前提としている。なお、これとは反対に、ビット“0”が黒として印刷され、ビット“1”が白として印刷される場合には、黒色データシンボル列Bには、所定のマスク処理によって“0”のみとなるように構成されたビット列が格納される。
【0033】
次に、2t個のシンボルから構成されるランダムデータシンボル列Rを生成する(ステップS3)。このランダムデータシンボル列Rには一様ランダムなデータ、即ち一様分布に従う乱数データが格納される。また、ランダムデータシンボル列Rは、
図2に示すように、いずれもt個のシンボルから構成されるランダムデータシンボル列Rx及びランダムデータシンボル列Ryが連結されたものである。
【0034】
次に、誤り訂正データシンボル列Pを計算する(ステップS4)。この誤り訂正データシンボル列Pは、先頭の文字データシンボル列Szに続いて、黒色データシンボル列Bおよびランダムデータシンボル列Rを配置したデータシンボル列に対し、所定の生成多項式を有するReed−Solomon符号を適用して計算される。
【0035】
また、誤り訂正データシンボル列Pは、
図2に示すように、2t個のシンボルで構成されており、いずれもt個のシンボルから構成される誤り訂正データシンボル列Px及び誤り訂正データシンボル列Pyが連結されたものである。
【0036】
次に、計算された誤り訂正データシンボル列Pを、文字データシンボル列Sz、黒色データシンボル列Bおよびランダムデータシンボル列Rが配置されたデータシンボル列に付加することにより、
図2に示す二次元コードシンボル列Zを生成する(ステップS5)。この二次元コードシンボル列Zを所定のマトリックスに配置して所定のマスクをかけて得られたQRコードからは、通常の読取り装置を用いて、文字データシンボル列Szに格納された情報を読み取ることができる。
【0037】
図3は、上記の方法で生成した二次元コードシンボル列Zを用いて生成された二次元コードQRzを示している。
図3のQRコードは、二次元コードシンボル列Zを所定の型番(4型)に対応するマトリックス(33×33モジュール)に所定の順序、即ちマトリックスの右下から順に二列に配置して得られたものである。
図3に示す二次元コードQRzは、マトリックスの右端領域に第1の情報Szとして“SECRET INFO”を含んでいる。よって、通常の読取り装置により二次元コードQRzを読み取ると、“SECRET INFO”が読み出される。
【0038】
なお、上記のデータシンボル列においては、文字データシンボル列Szに続いて、ランダムデータシンボル列R、黒色データシンボル列Bの順に配置してもよい。即ち、ランダムデータシンボル列Rおよび黒色データシンボル列Bの配置順序は任意である。
【0039】
また、前述の付加データシンボル列Aを付加している場合には、データシンボル列に付加データシンボル列Aも加えて、誤り訂正データシンボル列Pを計算する。この場合、誤り訂正データシンボル列Pが二次元コードシンボル列Zの中間に位置するため、QRコード仕様書に規定された方法では誤り訂正シンボル列を計算することができない。そこで、Reed−Solomon符号の巡回性を利用する。即ち、誤り訂正データシンボル列Pが最終シンボル、即ち多項式の最低次数側に位置するようにシンボル列を巡回させ、仕様書と同じように訂正符号を計算する。その後、元の位置までシンボル列を巡回させて戻す。
【0040】
次に、文字データシンボル列Sxを有する分散二次元コードシンボル列X、及び文字データシンボル列Syを有する分散二次元コードシンボル列Yを生成する(ステップS6)。以下、2つの分散二次元コードシンボル列X,Yの生成方法について詳細に説明する。
【0041】
図2に示すように、分散二次元コードシンボル列X及びYは、二次元コードシンボル列Zと同じ数のシンボルを有する。
【0042】
まず、分散二次元コードシンボル列Xの先頭に文字データシンボル列Sxを配置し、分散二次元コードシンボル列Yの先頭に文字データシンボル列Syを配置する。付加データシンボル列Aがある場合には、
図2に示すようにシンボル列の末尾に配置する。
【0043】
次に、分散二次元コードシンボル列X(Y)のうちランダムデータシンボル列Rに対応するシンボル列には二次元コードシンボル列Zのランダムデータシンボル列Rの一部を格納するとともに、分散二次元コードシンボル列X(Y)のうち誤り訂正データシンボル列Pに対応するシンボル列には二次元コードシンボル列Zの誤り訂正データシンボル列Pの一部を格納する。
【0044】
より正確には、
図2からわかるように、分散二次元コードシンボル列X,Yにおいて、文字データシンボル列Sx,Sy以降のシンボルは、分散二次元コードシンボル列Xと分散二次元コードシンボル列Yの論理和をとることにより、黒色データシンボル列B、ランダムデータシンボル列R及び誤り訂正データシンボル列Pが二次元コードシンボル列Zと同じ位置に現れるように配置されている。換言すれば、分散二次元コードシンボル列X,Yを重ね合わせることにより、文字データシンボル列Sz以外のシンボルが再現されるように、二次元コードシンボル列Zのシンボルを分散二次元コードシンボル列X及び分散二次元コードシンボル列Yに分散して配置する。以下、この分散配置の一例について説明する。
【0045】
ランダムデータシンボル列Rの分散配置の詳細は次の通りである。即ち、分散二次元コードシンボル列Xを生成する際、二次元コードシンボル列Zのランダムデータシンボル列Rxに対応する位置にランダムデータシンボル列Rxを配置し、ランダムデータシンボル列Ryに対応する位置に、所定のマスク処理によってビット“0”のみとなるように構成された白色データシンボル列W
1を配置する。また、分散二次元コードシンボル列Yを生成する際、二次元コードシンボル列Zのランダムデータシンボル列Ryに対応する位置にランダムデータシンボル列Ryを配置し、ランダムデータシンボル列Rxに対応する位置に、所定のマスク処理によってビット“0”のみとなるように構成された白色データシンボル列W
2を配置する。
【0046】
誤り訂正データシンボル列Pの分散配置の詳細は次の通りである。即ち、分散二次元コードシンボル列Xを生成する際、二次元コードシンボル列Zの誤り訂正データシンボル列Pxに対応する位置に誤り訂正データシンボル列Pxを配置し、誤り訂正データシンボル列Pyに対応する位置に、所定のマスク処理によってビット“0”のみとなるように構成された白色データシンボル列W
3を配置する。また、分散二次元コードシンボル列Yを生成する際、二次元コードシンボル列Zの誤り訂正データシンボル列Pyに対応する位置に誤り訂正データシンボル列Pyを配置し、誤り訂正データシンボル列Pxに対応する位置に、所定のマスク処理によってビット“0”のみとなるように構成された白色データシンボル列W
4を配置する。
【0047】
黒色データシンボル列Bの分散配置の詳細は次の通りである。即ち、分散二次元コードシンボル列Xを生成する際、二次元コードシンボル列Zの黒色データシンボル列B
1に対応する位置に誤り訂正データシンボル列Cxを配置し、黒色データシンボル列B
2に対応する位置に黒色データシンボル列B
2を配置する。ここで、黒色データシンボル列B
1は、
図2に示すように、黒色データシンボル列Bの前半部分(シンボル数:2t個)である。また、誤り訂正データシンボル列Cxは、Reed−Solomon符号により計算された分散二次元コードシンボル列Xの誤り訂正データシンボル列(シンボル数:2t個)である。
【0048】
また、分散二次元コードシンボル列Yを生成する際、二次元コードシンボル列Zの黒色データシンボル列B
1に対応する位置に黒色データシンボル列B
1を配置し、黒色データシンボル列B
2に対応する位置に誤り訂正データシンボル列Cyを配置する。ここで、黒色データシンボル列B
2は、
図2に示すように、黒色データシンボル列Bの後半部分(シンボル数:2t個)である。誤り訂正データシンボル列Cyは、Reed−Solomon符号により計算された分散二次元コードシンボル列Yの誤り訂正データシンボル列(シンボル数:2t個)である。
【0049】
なお、誤り訂正データシンボル列Cx,Cyはいずれも分散二次元コードシンボル列の中間に位置するので、前述の誤り訂正データシンボル列Pと同様にReed−Solomon符号の巡回性を利用して計算する。CxはSx,B
2,W
1,Rx,W
3,Px,Aからなるデータシンボル列に対して計算され、CyはSy,B
1,Ry,W
2,Py,W
4,Aからなるデータシンボル列に対して計算される。
【0050】
なお、黒色データシンボル列B、ランダムデータシンボル列R及び誤り訂正データシンボル列Pを分散二次元コードシンボル列X,Yに分散配置する方法としては、上記のように二次元コードシンボル列Zの各シンボル列を半分ずつコピーする方法に限らず、XとYの論理和をとることにより二次元コードシンボル列Zのシンボル列が再現される分散方法であれば他の方法でもよい。
【0051】
また、黒色データシンボル列Bが所定のマスク処理によってビット“0”のみとなるように構成されている場合には、白色データシンボル列W
1〜W
4は所定のマスク処理によってビット“1”のみとなるように構成する。
【0052】
次に、分散二次元コードシンボル列Xを用いて二次元コードQRxを生成し、分散二次元コードシンボル列Yを用いて二次元コードQRyを生成する(ステップS7)。
【0053】
より詳しくは、QRコード仕様書に規定された方法に従って、分散二次元コードシンボル列Xを所定のマトリックスに配置し、所定のマスク処理を施すことにより二次元コードQRxを生成する。分散二次元コードシンボル列Yについても同様にして二次元コードQRyを生成する。
【0054】
図4は、上記の方法により生成された二次元コードQRx,QRyを示している。
図4(a)の二次元コードQRxは、第2の情報として“WELCOME”を含んでいる。一方、
図4(b)の二次元コードQRyは、第3の情報として“U.TSUKUBA”を含んでいる。したがって、通常の読取り装置により二次元コードQRx及びQRyを読み取ると、それぞれ“WELCOME”及び“U.TSUKUBA”が読み出される。
【0055】
図5は、二次元コードQRxと二次元コードQRyを重ね合わせたもの、即ち両者の論理和をとった二次元コードQRxyを示している。この二次元コードQRxyは、例えば、二次元コードQRx及びQRyのうち一方を白紙に印刷し、他方を透明シートに印刷し、それらを重ね合わせることにより得られる。あるいは、二次元コードQRx及びQRyの両方を透明シートに印刷し、重ね合わせて白い台紙の上に置いてもよい。なお、ここで用いる印刷手法では、マトリックスを構成するモジュール(セル)のうちビット“1”(第1のビット)が配置されたモジュールを黒く印刷し、ビット“0”(第2のビット)が配置されたモジュールを白くなるように印刷する。
【0056】
二次元コードQRxyの右端領域に含まれる文字データは、前述の第2の情報と第3の情報の論理和であって、Szに含まれる第1の情報ではない。しかし、QRコードの誤り訂正能力によりSzのデータが訂正され、QRzの文字データ“SECRET INFO”を読み出すことができる。即ち、シンボル数2tの誤り訂正データシンボル列Pによりシンボル数tの文字データシンボル列の誤りが訂正される結果、
図3の二次元コードQRzと同じ文字列が読み出される。
【0057】
上記のように、二次元コードQRx、QRyは、通常の読取り装置により、各々に格納された情報を読み出すことが可能である。即ち、二次元コードQRxからは第2の情報(
図4の例では“WELCOME”)を読み出し、QRyからは第3の情報(
図4の例では“U.TSUKUBA”)を読み出すことができる。さらに、二次元コードQRxと二次元コードQRyを重ね合わせて得られる二次元コードQRxyからは、二次元コードQRzと同じ情報を通常の読取り装置で読み取ることができる。
【0058】
このように、本実施形態に係る二次元コードの生成方法によれば、重ね合わせて得られる二次元コードから読み取れる情報とは異なる情報を有する2つの二次元コードを生成することができる。また、いずれの二次元コードの読取りに対しても、特殊な読取り装置を用意する必要がないという利点を有する。
【0059】
よって、例えば、二次元コードQRx、QRyがそれぞれに付された2つの商品を購入することで、新たに特別な情報を得るような仕組みを実現することができる。また、二次元コードQRx及びQRyのいずれか一方を鍵として用いることもできる。この場合、例えば、鍵としての二次元コードを特定の者に対して電子メール等で配送する形態が考えられる。
【0060】
さらに、本発明は、秘密情報を複数人で分散共有する技術である秘密分散法に応用することができる。この場合、(2,2)しきい値型を構成すること、即ち2枚のQRコードが揃えば秘密情報が復号できるが、片方のQRコードからは秘密情報が全く得られないことが保証される必要がある。この点については、シンボル列Sx,Sy,Sz,Rx,Ry がそれぞれ独立であり、かつランダムデータシンボル列Rx,Ryに格納されたランダムなデータが一様分布に従うならば、二次元コードシンボル列Zのフォーマットを知っており、二次元コードQRx,QRyのいずれか一方を手にした攻撃者に対し、第1の情報は一切漏れないことが数学的に証明可能である。なお、埋め込み可能な秘密情報のデータシンボル数は、QRコードのランダム誤り訂正可能シンボル数tに等しい。
【0061】
安全性の確保された秘密分散法を利用して、経済的な価値を有するもの(金券等)の真贋のチェックや認証等にも本発明を利用することができる。この場合、二次元コードQRx及びQRyのいずれか一方を金券等に印刷しておく。確認者は他方の二次元コードを有し、金券等に印刷された二次元コードに重ね合わせる。もし所定の情報を読取ることができれば、本物と判断することができる。認証の場合についても、IDカード等に印刷されたQRコードと、確認者の有するQRコードとを重ね合わせることで同様に認証を行うことが可能である。
【0062】
次に、シンボルの配置順序の変更について説明する。
図4からわかるように、上記の方法で生成された二次元コードQRx,QRyでは、黒いモジュールや白いモジュールが連続して現れる部分が存在する。このため、情報の読み取りは可能であるものの、二次元コードとしては不自然にみえる場合がある。そこで、黒いシンボル及び白いシンボルを全体的に分散して配置させる方法について以下に説明する。
【0063】
本方法では、
図6に示すように、シンボル単位でシンボルの配置を変更する。
【0064】
この配置変更は、二次元コードシンボル列Z、分散二次元コードシンボル列X,Yの間でシンボルの位置を同期させて行う。即ち、
図6に示すように、ある二次元コードシンボル列でシンボルの配置を変更した場合、他の2つの二次元コードシンボル列についても、対応する位置のシンボルの配置を変更する。このように本方法のシンボルの配置変更においては、X,Y及びZ間で縦の関係は維持される。
【0065】
なお、QRコードの場合、文字データシンボル列Sx,Sy,Szは二次元コードシンボル列の最初に配置しなければならないため、文字データシンボル列中のシンボルについては配置変更を行わない。
【0066】
また、二次元コードシンボル列Zの黒色データシンボル列中のシンボルを他のシンボル列中のシンボルと交換するのが好ましい。これにより、黒色データシンボル列による黒いモジュールが連続する部分を減らすことができる。
【0067】
以下、本方法の詳細について説明する。
【0068】
まず、前述の生成方法と同様に、第1の情報、第2の情報及び第3の情報をいずれもt個のシンボルからなる文字データシンボル列Sz,Sx及びSyにそれぞれ変換する。
【0069】
次に、二次元コードシンボル列Zを生成する。具体的には、まず、
図6に示すように、先頭の文字データシンボル列Szに続いて、いずれも2t個のシンボルから構成された空の黒色データシンボル列B
1,B
2と、いずれもt個のシンボルから構成され一様ランダムなデータが格納されたランダムデータシンボル列Rx,Ryと、いずれもt個のシンボルから構成された空の誤り訂正データシンボル列Px,Pyとを配置する。ここで、黒色データシンボル列B
1,B
2及び誤り訂正データシンボル列Px,Pyは情報の格納されていない空のシンボル列である。
【0070】
図6において、かっこ付きのシンボル列は、シンボルの配置変更を行う前は空であり、シンボルの配置変更を行った後にデータが格納されるものを示している。
【0071】
その後、所定の手順に従って、シンボルの配置変更を行う。この配置変更は、任意の方法により、任意の数のシンボルに対して行ってよい。
【0072】
次に、空の黒色データシンボル列B
1,B
2のシンボルが所定のマスク処理によってビット“1”のみとなるように、空の黒色データシンボル列B
1,B
2のシンボルにデータを順次格納する。
【0073】
なお、本方法では、QRコードのマスクが位置により変化することを考慮して、シンボルの配置変更を行ってから、黒色データシンボル列にデータを格納する方法を採っている。シンボルの配置変更方法によっては、黒色データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。
【0074】
次に、Reed−Solomon符号により計算された誤り訂正データを空の誤り訂正データシンボル列Px,Pyのシンボルに順次格納する。シンボルの配置変更方法によっては、誤り訂正データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。
【0075】
なお、誤り訂正データシンボル列が分散している場合、符号全体を巡回させてもQRコード仕様書の方法で誤り訂正データを計算することができない。そこで、本方法では、Reed−Solomon符号の消失訂正のアルゴリズムを用いる。誤り位置の分かっている2t個のシンボルを訂正できるこのアルゴリズムは、シンボル位置の配置の問題に利用可能である。即ち、シンボル配置変更によって分散した誤り訂正データシンボル列を、2t個のシンボルの消失とみなして、訂正データを計算することが可能である。つまり、二次元コードシンボル列Zが全体として符号語になるように、空の誤り訂正データシンボル列に格納するデータを決める。
【0076】
上記方法により、二次元コードシンボル列Zを生成する。
【0077】
次に、分散二次元コードシンボル列X,Yを生成する。具体的には、まず、先頭の文字データシンボル列Sxに続いて、二次元コードシンボル列Zの黒色データシンボル列B
2と、2t個のシンボルから構成された空の誤り訂正データシンボル列Cxと、t個のシンボルから構成された空の白色データシンボル列W
1と、二次元コードシンボル列Zのランダムデータシンボル列Rxと、t個のシンボルから構成された空の白色データシンボル列W
3と、二次元コードシンボル列Zの誤り訂正データシンボル列Pxとを配置する。黒色データシンボル列B
2、ランダムデータシンボル列Rx及び誤り訂正データシンボル列Pxについては、二次元コードシンボル列Z内の対応データをコピーする。
【0078】
その後、二次元コードシンボル列Zに施した手順と同じ手順で、シンボルの配置変更を行う。
【0079】
次に、白色データシンボル列W
1,W
3のシンボルが所定のマスク処理によってビット“0”のみとなるように、空の白色データシンボル列W
1,W
3のシンボルにデータを順次格納する。シンボルの配置変更方法によっては、白色データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。
【0080】
次に、Reed−Solomon符号により計算された誤り訂正データを空の誤り訂正データシンボル列Cxのシンボルに順次格納する。シンボルの配置変更方法によっては、誤り訂正データシンボル列は分散するが、分散したシンボルにデータを順次格納していく。Cxに格納する誤り訂正データは、前述のReed−Solomon符号の消失訂正のアルゴリズムを用いて計算する。
【0081】
上記の方法により、分散二次元コードシンボル列Xを生成する。同様にして分散二次元コードシンボル列Yを生成する。
【0082】
図7(a),(b)は、上記のようにしてシンボルの配置変更を行って生成した二次元コードQRx’及びQRy’を示している。
図4(a),(b)の二次元コードに比べて同じ色で占められる領域が減少している。いずれの二次元コードからも
図4の二次元コードQRx,QRyと同じ文字列を読み取ることができる。
【0083】
図8(a)は、二次元コードQRx’及びQRy’の論理和をとった二次元コードQRxy’を示している。通常の読取り装置を用いて二次元コードQRxy’を読み取ると、
図5のQRxyと同じ文字列を読み取ることができる。
図8(b)は二次元コードQRxy’の誤り訂正後の二次元コードQRz’を示している。
【0084】
以上、本発明の二次元コードの生成方法に係る実施形態について説明した。上記の実施形態の説明では、ランダムデータシンボル列Rには一様ランダムなデータを格納したが、安全性が要求されない場合には、ランダムデータシンボル列を省き、その分だけ文字データシンボル列の長さを長くしてもよい。さらに、二次元コードシンボル列Zと分散二次元コードシンボル列X,Yとに共通なデータを有する付加データシンボル列を文字データシンボル列に統合してもよい。この場合には、(2,2)しきい値型が構成されないため安全性を確保できないが、安全性よりも情報量が要求される用途には好適である。また、QRコード以外の二次元コードを生成する場合には、誤り訂正符号として、Reed−Solomon符号以外の誤り訂正符号(tシンボルのランダム誤りを訂正可能なもの)を用いてもよい。
【0085】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。