JP2012089179A - Creating program of two-dimensional code, and two-dimensional code - Google Patents
Creating program of two-dimensional code, and two-dimensional code Download PDFInfo
- Publication number
- JP2012089179A JP2012089179A JP2012026480A JP2012026480A JP2012089179A JP 2012089179 A JP2012089179 A JP 2012089179A JP 2012026480 A JP2012026480 A JP 2012026480A JP 2012026480 A JP2012026480 A JP 2012026480A JP 2012089179 A JP2012089179 A JP 2012089179A
- Authority
- JP
- Japan
- Prior art keywords
- code
- data
- secret
- bit
- secret data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 abstract description 97
- 239000000945 filler Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 240
- 230000008569 process Effects 0.000 description 226
- 238000012937 correction Methods 0.000 description 28
- 238000006243 chemical reaction Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 19
- 238000005286 illumination Methods 0.000 description 13
- 238000000605 extraction Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000003384 imaging method Methods 0.000 description 7
- 230000010365 information processing Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 239000004973 liquid crystal related substance Substances 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000007257 malfunction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 244000025254 Cannabis sativa Species 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 235000019687 Lamb Nutrition 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004092 self-diagnosis Methods 0.000 description 1
Images
Abstract
Description
本発明は、秘密にして隠しておきたいデータ(以下「秘匿データ」または「秘匿するデータ」という)を含む二次元コードの生成プログラム及び二次元コードに関するものである。 The present invention relates to a two-dimensional code generation program and a two-dimensional code including secret data (hereinafter referred to as “confidential data” or “confidential data”).
秘匿データを含んだ二次元コードを生成したり読み取る技術として、例えば、下記特許文献1に開示される「情報送信方法及び携帯端末」がある。この従来技術では、送信側の携帯端末は、キー入力装置から入力された暗号キーにより送信データを暗号化しそれをQRコード(登録商標)に変換してQRコードを生成しそれを表示装置の画面に表示する(特許文献1;段落0020,0021、図4)。
As a technique for generating or reading a two-dimensional code including confidential data, for example, there is an “information transmission method and portable terminal” disclosed in
これに対し、受信側の携帯端末では、送信側の携帯端末の画面に表示されたQRコードの画像をカメラ等により読み込んでQRコードが暗号化されているか否かを判断した後、暗号化されている場合には暗号キーを要求する。そして、QRコードを逆変換するとともに入力された暗号キーにより送信データを復号して復元データを画面表示する(特許文献1;段落0022、図5)。
On the other hand, in the mobile terminal on the reception side, the QR code image displayed on the screen of the mobile terminal on the transmission side is read by a camera or the like to determine whether the QR code is encrypted, and then encrypted. If so, request an encryption key. Then, the QR code is reversely converted and the transmission data is decrypted with the input encryption key to display the restored data on the screen (
しかしながら、上記特許文献1に開示される「情報送信方法及び携帯端末」によると、暗号化されているものをQRコードに逆変換した場合には、通常、暗号化されたデータそのものは文字情報として意味をなさないものであるため、携帯端末等の画面に表示される情報は意味不明なものであったり、画面表示の制御等に影響を与え得る制御コードに相当する情報であったりする。
However, according to the “information transmission method and portable terminal” disclosed in
このため、意味不明な情報である場合には、当該携帯端末等の使用者に不信感を与え得るという問題や、それが暗号化された情報であることを認識し得る使用者には対しては、解読を試みようとする不用意な動機を与える可能性があることから、セキュリティ上の問題を生じ得る。 For this reason, in the case of unclear information, the problem of being distrustful to the user of the mobile terminal or the user who can recognize that it is encrypted information. Can give rise to security problems because they can be inadvertently motivated to attempt to decipher.
また、制御コードに相当する情報である場合には、画面表示が乱れたり、その他のシステム上の問題にもつながり得るという問題がある。 Further, in the case of information corresponding to a control code, there is a problem that the screen display is disturbed and may lead to other system problems.
本発明は、上述した課題を解決するためになされたもので、その目的とするところは、一般仕様の読取装置で読み取る利用者には秘匿データの存在を認識し得ない二次元コードの生成プログラム及び二次元コードを提供することにある。 The present invention has been made in order to solve the above-described problems, and an object of the present invention is to generate a two-dimensional code that cannot be recognized by a user who reads with a general-purpose reading device. And providing a two-dimensional code .
上記目的を達成するため、第1の発明は、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置するとともに、前記コード領域の空き部分にデータを表さない埋め草コードを配置する二次元コードの生成装置として、コンピュータを機能させるためのプログラムであって、秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする。 To achieve the above object, according to a first aspect of the present invention, when the total number of disclosed data codes encoded as code words representing disclosed data is less than a capacity that can be accommodated in a code area in which code words are to be arranged, An end identification code indicating the end of a code string formed by the disclosed data code arranged in the code area is arranged at the end of the code string, and a padding code that does not represent data is arranged in an empty part of the code area. As a two-dimensional code generating device, a program for causing a computer to function, replacing a secret data code encoded as a code word representing data to be concealed with a part or all of the padding code, It is arranged after the end identification code.
請求項2の発明は、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置するとともに、前記コード領域の空き部分にデータを表さない埋め草コードを配置する二次元コードであって、秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする。 The invention of
請求項1の発明によって生成される二次元コードは、秘匿するデータを表すコード語としてコード化された秘匿データコードを埋め草コードの一部または全部に代えて、終端識別コードの後に配置する。一般に、二次元コードの読取装置は、二次元コードのデコード処理において、コード領域に配置されたデータコードの先頭からコード列の終端を示す終端識別コードまでを読み取ってデコードするアルゴリズム仕様に設定されているため、通常、終端識別コードの後に配置される埋め草コード等は読み取りの対象にならない。このため、終端識別コードの後に、埋め草コードの一部または全部に代えて配置されるデータコードは、たとえそれが読み取り可能なコード語であっても、一般仕様の読取装置ではデコードすることはないので、終端識別コードの後に秘匿したいデータコード(秘匿データコード)を配置することにより、終端識別コードの前に配置されたデータコードは読み取ることはできても、当該秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからないので、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。
The two-dimensional code generated by the invention of
請求項2の発明によれば、請求項1と同様の効果を奏する二次元コードを実現できる。 According to the invention of
以下、本発明の実施形態について図を参照して説明する。なお、以下説明する各実施形態では、二次元コードの例として、QRコードを挙げるが、本発明に係る二次元コードはこれに限られることはなく、例えば、データマトリクス、マキシコード、CPコード、PDF417やRSSコンポジット等であってもQRコードと同様に本発明を適用することができる。 Embodiments of the present invention will be described below with reference to the drawings. In each embodiment described below, a QR code is given as an example of a two-dimensional code. However, the two-dimensional code according to the present invention is not limited to this, for example, a data matrix, a maxi code, a CP code, Even in the case of PDF417, RSS composite, etc., the present invention can be applied similarly to the QR code.
[第1実施形態]
まず、本発明の第1実施形態に係るQRコードプリンタ10の構成を、図1を参照して説明する。なお、図1(A) には、本第1実施形態に係るQRコードプリンタ10とそれに接続されるパーソナルコンピュータ(以下「パソコン」という)1とを示す説明図が図示されており、また図1(B) には、QRコードプリンタ10のハードウェア構成例を示すブロック図が図示されている。
[First Embodiment]
First, the configuration of the
図1(A) に示すように、QRコードプリンタ10は、ケーブル5を介してパソコン1に接続されることにより、パソコン1から出力されて当該QRコードプリンタ10に入力される英数字、漢字や記号等の文字データ(以下これらを「印刷データ」と総称する)に基づいてQRコードを生成してラベルP等に印刷する機能を有するものである。なお、ここでいう「QRコード」とは、日本工業規格(JIS)の二次元コードシンボル−QRコード−基本仕様(JIS X 0510:2004)に従うものである。
As shown in FIG. 1 (A), the
パソコン1は、パソコン本体2およびディスプレイ3により構成されており、パソコン本体2は、図略の、MPU、メインメモリ(主記憶装置)、ハードディスク(補助記憶装置)、入出力インタフェース、通信インタフェース、キーボード、ポインティングデバイス等からなる情報処理装置で、またディスプレイ3は、パソコン本体2に接続されることによりパソコン本体2から出力される情報を画面表示可能な情報表示装置である。
The
なお、このパソコン本体2には、QRコードプリンタ10のデバイスドライバがインストールされて(組み込まれて)おり、当該パソコン1の利用者が、QRコードとしてラベルPに印刷したい文字等を含んだ印刷データを、パソコン本体2からQRコードプリンタ10に対して任意に出力可能にしている。
The personal computer
これに対し、QRコードプリンタ10は、図1(B) に示すように、主に、MPU11、メモリ12、インタフェース13、ローラ制御部14、ヘッド制御部15、ローラ17、ヘッド18等から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
On the other hand, as shown in FIG. 1B, the
MPU11は、QRコードプリンタ10全体を制御可能なマイクロコンピュータ(以下「マイコン」という)で、メモリバスを介して接続されるメモリ12とともに情報処理装置を構成し得るもので情報処理機能を有する。このMPU11には、メモリ12のほかに、インタフェース13、ローラ制御部14やヘッド制御部15も接続されている。なお、後述するコード生成処理は、このMPU11およびメモリ12により実行される。
The
メモリ12は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ12のうちのRAMには、前述したパソコン1から送られてくる文字データを蓄積するバッファ領域のほか、MPU11が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述のコード生成処理等を実行可能な所定プログラムやその他、ローラ制御部14やヘッド制御部15等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
The
インタフェース13は、前述したパソコン1のパソコン本体2から送られてくる印刷データ等を受信可能にする入力インタフェースで、シリアルバス等を介してMPU11に接続されている。このインタフェース13を介してMPU11に入力された印刷データは、コード生成処理によって後述するように情報処理されてコード化される。
The
ローラ制御部14は、ローラ17の駆動機構(図略)を制御し得る制御装置で、シリアルバス等を介してMPU11に接続されている。これにより、MPU11から受けた制御信号に従ってローラ17の回転の開始や停止あるいは回転方向等を制御している。
The
ヘッド制御部15は、例えば、感熱用紙からなるラベルに対して任意のパターンを印刷し得るサーマルヘッドで、シリアルバス等を介してMPU11に接続されている。本実施形態では、後述のコード生成処理によって生成されたQRコードを感熱ラベルに印刷可能にするもので、前述したローラ制御部14による感熱ラベルの紙送りタイミングに同期して、QRコードを構成する位置検出パターン、タイミングパターンやデータコード等を当該ラベルに印刷する。
The
なお、以下、ヘッド制御部15として、サーマルヘッドの場合を例示して説明するが、QRコードを印刷できるものであれば、例えば、インクジェット用やドットインパクト用のヘッドでも良いし、また印刷機構として、レーザプリンタやLEDプリンタ等であっても良い。
In the following, the case of a thermal head will be described as an example of the
このようにQRコードプリンタ10を構成することによって、パソコン1から出力されて当該QRコードプリンタ10に入力された印刷データは、インタフェース13を介してメモリ12のバッファ領域に一旦蓄えられた後、次に説明するコード生成処理に渡される。ここで、コード生成処理を図2〜図4を参照して説明する。なお、図2には、コード生成処理の流れを示すフローチャートが図示されている。また図3には、図2に示すコード生成処理により情報処理されるデータやコードのフォーマット例が図示されている。さらに図4には、1型のQRコードの構成例が図示されている。
By configuring the
図2に示すように、コード生成処理は、QRコードプリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、まずステップS101により初期設定処理が行われる。この処理は、メモリ12の作業領域や印刷データを蓄えるバッファ領域をクリアしたり、所定のフラグやカウンタ等をクリアする。
As shown in FIG. 2, the code generation process is started by the
ステップS103では、印刷データを受信したか否かを判断する処理で、印刷データを受信するまで、このステップを繰り返す(S103;No)。そして、印刷データを受信したと判断すると(S103;Yes)、続くステップS105によりタイマーのカウント値をクリアする処理を行う。このステップS105でカウンタ値がクリアされるタイマーは、次のステップS107により所定時間の経過を計時するものである。 In step S103, this step is repeated until print data is received in the process of determining whether or not print data has been received (S103; No). When it is determined that the print data has been received (S103; Yes), the timer count value is cleared in the subsequent step S105. The timer whose counter value is cleared in step S105 measures the lapse of a predetermined time in the next step S107.
ステップS107では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、パソコン1から送られてくる印刷データに、暗号化等に関するデータが含まれているか否かを次のステップS111により判断する必要上、例えば、所定時間として1秒間が経過したか否かを判断し、この時間が経過するまでに、パソコン1から暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップS109に処理を移行する(S107;Yes)。
In step S107, processing is performed to determine whether or not a predetermined time has elapsed by the previous timer. That is, it is necessary to determine whether or not the print data sent from the
これに対し、所定時間が経過していない場合には(S107;No)、次のステップS111により暗号化等に関するデータとして、秘匿する必要のあるデータ(以下「秘匿データ」という)のデータレコード中の位置関係を示す秘匿データ位置情報と暗号するために用いる暗号キー(暗号鍵)とを受信したか否かを判断する処理が行われる。そして、これらを受信していると判断した場合には(S111;Yes)、続くステップS113に処理を移行し、これらを受信していると判断できない場合には(S111;No)、前述したステップS107に処理を戻して、再度、時間の経過を判断する。 On the other hand, if the predetermined time has not elapsed (S107; No), in the data record of data that needs to be concealed (hereinafter referred to as “confidential data”) as data relating to encryption or the like in the next step S111. A process is performed to determine whether or not the secret data position information indicating the positional relationship and the encryption key (encryption key) used for encryption have been received. If it is determined that these have been received (S111; Yes), the process proceeds to the subsequent step S113. If it is not possible to determine that these have been received (S111; No), the steps described above are performed. The process returns to S107, and the passage of time is determined again.
そして、所定時間が経過したとステップS107により判断した場合には(S107;Yes)、ステップS109により所定のフラグに「0」をセットする。このフラグは、印刷データに秘匿データが含まれているか否かを示すもので、「0」がセットされている場合には、秘匿データが含まれていないことを示し、「1」がセットされている場合には、秘匿データが含まれていることを示す。このため、ステップS111により暗号化等に関するデータを受信していると判断した場合には(S111;Yes)、続くステップS113によりこのフラグに「1」をセットする処理が行われる。 If it is determined in step S107 that the predetermined time has elapsed (S107; Yes), “0” is set to a predetermined flag in step S109. This flag indicates whether or not confidential data is included in the print data. When “0” is set, it indicates that confidential data is not included and “1” is set. Indicates that confidential data is included. For this reason, if it is determined in step S111 that data relating to encryption or the like is received (S111; Yes), a process of setting “1” to this flag is performed in subsequent step S113.
ステップS113により所定のフラグに「1」をセットすると、続くステップ115により、開示データおよび秘匿データを並び替える処理が行われる。即ち、印刷データに、第三者に開示するデータ(開示データ)と、第三者には秘密にして隠しておきたいデータ(秘匿データ)と、が含まれており、これらがデータレコード中で混在している場合に、ステップS111により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行う。 When “1” is set to the predetermined flag in step S113, a process of rearranging the disclosed data and the confidential data is performed in subsequent step 115. That is, the print data includes data disclosed to a third party (disclosure data) and data (secret data) that the third party wants to keep secret and concealed. If they are mixed, based on the “positional information indicating the positional relationship in the data record of the confidential data” received in step S111, the order of the data is changed and divided into a collection of disclosed data and a collection of confidential data. Process.
例えば、図3(A) に示すように、例えば、パソコン1から送られてくる印刷データのレコードに、開示データA、秘匿データα、開示データB、秘匿データβの順に並ぶデータが含まれていたとすると、ステップS115により、これらのデータの順番を入れ替えて図3(B) に示すように、開示データA、開示データB、秘匿データα、秘匿データβの順に並び替える処理を行う。これにより、開示データと秘匿データとがそれぞれまとめられるので、後のステップ121による終端識別コードの付加処理や、ステップS125による秘匿識別コードの付加処理等が容易になる。
For example, as shown in FIG. 3 (A), for example, the print data record sent from the
次のステップS117では、開示データや秘匿データ等の各データをJISの基本仕様(JIS X 0510:2004)に従って符号化する処理が行われる。これにより、開示するデータを表すコード語としてコード化された開示データコードが生成され、また秘匿するデータを表すコード語としてコード化された秘匿データコードが生成される。 In the next step S117, a process of encoding each data such as disclosed data and secret data in accordance with JIS basic specifications (JIS X 0510: 2004) is performed. As a result, a disclosed data code encoded as a code word representing data to be disclosed is generated, and a secret data code encoded as a code word representing data to be concealed is generated.
また続くステップS119では、開示データの各データに対する誤り訂正符号をJISの基本仕様(JIS X 0510:2004)に準拠して生成しさらにそれをコード化して誤り訂正コードを生成する処理が行われる。また、秘匿データについても、例えば、開示データと同様に、JISの基本仕様(JIS X 0510:2004)に記載されている誤り訂正コードの生成アルゴリズムを用いて誤り訂正符号を生成しそれをコード化して誤り訂正コードを生成する処理が行われる。 In the subsequent step S119, an error correction code for each data of the disclosed data is generated in accordance with JIS basic specifications (JIS X 0510: 2004), and further encoded to generate an error correction code. For confidential data, for example, as with the disclosed data, an error correction code is generated using the error correction code generation algorithm described in the JIS basic specification (JIS X 0510: 2004) and encoded. Then, a process for generating an error correction code is performed.
そして、続くステップS121により、開示データコードの後に終端識別コードを付加する処理が行われる。終端識別コードは、例えば、4ビットパターンで「0000」であり、図3(C) に示すように、開示データコードAの後に続く開示データコードBの直後に位置する。なお、図3(C) では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。 Then, in the subsequent step S121, processing for adding a terminal identification code after the disclosed data code is performed. The end identification code is, for example, “0000” in a 4-bit pattern, and is located immediately after the disclosed data code B following the disclosed data code A, as shown in FIG. In FIG. 3C, for the sake of convenience, the disclosed data code is expressed as “disclosed code” and the terminal identification code is expressed as “end terminal”.
次のステップS123では、前述した所定のフラグが「1」にセットされているか否か、即ち秘匿データが含まれているか否かを判断する処理が行われる。そして、秘匿データが含まれている場合には(フラグが「1」にセットされている場合:S123;Yes)、ステップS125に処理を移行し、また秘匿データが含まれていない場合には(フラグが「0」にセットされている場合:S123;No)、一連の秘匿処理(S125〜S133)を飛ばしてステップS135に処理を移行する。 In the next step S123, processing for determining whether or not the above-mentioned predetermined flag is set to “1”, that is, whether or not confidential data is included, is performed. If secret data is included (if the flag is set to “1”: S123; Yes), the process proceeds to step S125, and if secret data is not included ( When the flag is set to “0”: S123; No), a series of concealment processing (S125 to S133) is skipped, and the process proceeds to step S135.
ステップS125〜S133は、印刷データに秘匿データが含まれている場合に行われる一連の秘匿処理である。まず、ステップS125により、秘匿識別コードを終端識別コードの直後に付加する処理が行われる。 Steps S <b> 125 to S <b> 133 are a series of confidential processing that is performed when confidential data is included in the print data. First, in step S125, a process of adding the secret identification code immediately after the termination identification code is performed.
このステップS125による処理は、秘匿識別コードを終端識別コードの直後に配置することで、この終端識別コードの後に配置されているデータコードが「秘匿するデータを表すコード語としてコード化されたものであること」を明示的に表す。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、当該QRコードQに秘匿データコードが含まれていることを認識可能にするので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。 In the processing in step S125, the secret identification code is arranged immediately after the termination identification code, so that the data code arranged after the termination identification code is “coded as a code word representing the confidential data”. It expresses "something". As a result, when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, it is possible to recognize that the QR code Q includes a secret data code. It is possible to prevent unintended data, garbled data, and the like from being mistakenly read as a secret data code, and to prevent malfunction caused by this.
次のステップS127では、秘匿データコードのデータ長を計算して求め、このデータ長をコード化したものを秘匿識別コードの直後に付加する処理が行われる。これにより、秘匿データコードが配置される領域や範囲がわかるので、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、どこまでが秘匿データコードであるか、または暗号データコードであるかを認識可能にする。 In the next step S127, a process is performed in which the data length of the secret data code is calculated and obtained, and the data length encoded is added immediately after the secret identification code. As a result, the area and range where the secret data code is arranged can be known, so when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, how far is the secret data code, or Makes it possible to recognize whether it is an encrypted data code.
例えば、図3(C) に示す例では、秘匿データコードαのデータ長と秘匿データコードβのデータ長との和が当該データ長として計算されて秘匿識別コードの直後に付加される。なお、図3(C) では、便宜上、秘匿データコードを「秘匿コード」、秘匿識別コードを「秘匿識別子」、とそれぞれ表現している。 For example, in the example shown in FIG. 3C, the sum of the data length of the secret data code α and the data length of the secret data code β is calculated as the data length and added immediately after the secret identification code. In FIG. 3C, for the sake of convenience, the secret data code is expressed as “secret code”, and the secret identification code is expressed as “secret identifier”.
続くステップS129では、暗号キーがあるか否かを判断することによって、秘匿データコードを暗号化する必要があるか否かを判断する。即ち、ステップS111によって暗号キーをパソコン1から受信している場合には、暗号キーがあるので(S129;Yes)、ステップS131に移行して暗号化処理を行う。これに対して、ステップS111によって暗号キーをパソコン1から受信していない場合には、暗号キーがないので(S129;No)、ステップS131による暗号化処理を飛ばしてステップS133に移行する。
In a succeeding step S129, it is determined whether or not the secret data code needs to be encrypted by determining whether or not there is an encryption key. That is, when the encryption key is received from the
なお、ステップS111により暗号キーを受信していない場合であっても、パソコン1が予め暗号キーをメモリ12やハードディスク等の情報記憶媒体に保持しているときには暗号キーがあるので(S129;Yes)、ステップS131で暗号化処理を行う。
Even if the encryption key has not been received in step S111, since the encryption key is present when the
ステップS131では、秘匿データコードを暗号化する処理が行われる。この処理は、例えば、公知の視覚復号型暗号技術(視覚復号型秘密分散法)を用いて秘匿データコードを暗号化する。これにより、このような暗号化されていない平文データが付加されている場合に比べてセキュリティの強度を高めることができる。 In step S131, a process for encrypting the secret data code is performed. In this process, for example, the secret data code is encrypted using a known visual decryption encryption technique (visual decryption secret sharing method). Thereby, the strength of security can be increased as compared with the case where such unencrypted plaintext data is added.
例えば、図3(D) に示す例では、秘匿データコードαを構成する「暗号化データ」の部分が暗号化され、「開始桁」、「文字数」および「復号キー検査データ」も併せて生成される。最初に位置する「開始桁」は、当該暗号化された秘匿データの位置情報として、印刷データの先頭をゼロ番地とした場合に表現可能なアドレス値がこれに相当する。また次の「文字数」は、暗号化されている秘匿データの文字数である。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。 For example, in the example shown in FIG. 3 (D), the “encrypted data” portion of the secret data code α is encrypted, and the “start digit”, “number of characters”, and “decryption key check data” are also generated. Is done. The “start digit” positioned first corresponds to an address value that can be expressed as the position information of the encrypted confidential data when the top of the print data is set to zero. The next “number of characters” is the number of characters of the encrypted confidential data. As a result, the QR code Q generated by the code generation process is decoded by a QR code reader or the like even when the data records are mixed in the positional relationship in the data record before being encoded as a code word. In this case, the decoded data can be arranged in the positional relationship before encoding based on the positional information.
最後に付加されている「復号キー検査データ」は、当該暗号を解読するのに用いる復号キーを特定可能な鍵特定情報で、暗号方式が暗号キーと復号キーとが同じ共通鍵暗号方式(「秘密鍵暗号方式」ともいう)の場合には、当該復号キー検査データは暗号キーも特定できる。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、秘匿データコードを復号キー(復号できる鍵)を容易に特定することができたり、復号キーであるか否かを判断することができる。 “Decryption key check data” added at the end is key specifying information that can specify a decryption key used for decrypting the cipher, and a common key encryption method (“ In the case of “private key encryption method”, the decryption key check data can also specify the encryption key. As a result, when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, it is possible to easily specify the decryption key (decryptable key) of the secret data code, It can be determined whether or not there is.
なお、秘匿データコードβについても秘匿データコードαと同様に構成され、「復号キー検査データ」として、秘匿データコードαを復号する復号キーと同じ情報を付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、他の復号キーを特定する「復号キー検査データ」を付加しても良い。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、各秘匿データコードごとに復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。 The secret data code β is configured in the same manner as the secret data code α, and the same information as the decryption key for decrypting the secret data code α may be added as the “decryption key check data”, or the secret data code When the secret data of the secret data code β is encrypted with another encryption key different from the α encryption key, “decryption key check data” for specifying another decryption key may be added. Thereby, when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, it is possible to easily specify a key that can be decrypted for each secret data code, or a key that can be decrypted. It can be determined whether or not.
ステップS133では、データ長の直後に秘匿データコードを付加する処理が行われる。図3(D) に示す例では、秘匿データコードαおよび秘匿データコードβをデータ長の後に付加する。これにより、一般仕様の二次元コードの読取装置では、二次元コードのデコード処理において、終端識別コードの後に配置される埋め草コード等は読み取りの対象にしないため、このように終端識別コードの後に配置された秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードの存在はわからないので、当該読取装置の利用者には秘匿データの存在を認識させないようにすることが可能となる。 In step S133, processing for adding a secret data code immediately after the data length is performed. In the example shown in FIG. 3D, the secret data code α and the secret data code β are added after the data length. As a result, in the two-dimensional code reader of the general specification, in the two-dimensional code decoding process, the padding code placed after the terminal identification code is not subject to reading, and thus, after the terminal identification code as described above. The arranged secret data code cannot be read. Therefore, even if a two-dimensional code including such a secret data code is read by a general-purpose reader, the existence of the secret data code is not known, so the user of the reader does not recognize the presence of the secret data. It becomes possible to do so.
続くステップS135では、例えば、JISの基本仕様(JIS X 0510:2004)に記載されている処理アルゴリズムに準拠して、秘匿データコードの後に埋め草コードを付加する処理が行われ、さらにステップS137では、誤り訂正コードを付加する処理が行われる。これにより、図3(C) に示すフォーマットのデータコードが生成される。 In the subsequent step S135, for example, in accordance with the processing algorithm described in the JIS basic specification (JIS X 0510: 2004), a process of adding a padding code after the secret data code is performed, and in step S137, further. Then, a process of adding an error correction code is performed. As a result, a data code having the format shown in FIG. 3C is generated.
そして、ステップS139では、ステップS137により生成されたデータコードに基づいて、各セルを生成し、図4に示すデータブロックに配置する処理が行われる。即ち、図4に示す1型のQRコードでは、1辺が21セル(モジュール)の正方形状に構成されているため、三隅に設けられている位置検出パターンや形式情報(図4に示す斜線部分)、さらにはタイミングパターンを除いたコード領域に、8個のセルを4行2列に配置して構成されるデータブロックを26ブロック(A0〜A25)配置する。 In step S139, each cell is generated on the basis of the data code generated in step S137, and processing for arranging the cells in the data block shown in FIG. 4 is performed. That is, since the one-type QR code shown in FIG. 4 is formed in a square shape with 21 cells (modules) on one side, position detection patterns and format information provided at three corners (the hatched portion shown in FIG. 4). In addition, 26 blocks (A0 to A25) of data blocks configured by arranging 8 cells in 4 rows and 2 columns are arranged in the code area excluding the timing pattern.
例えば、図3(C) に示す例では、開示データコードAをA0〜A2、開示データコードBをA3〜A6に配置し、終端識別コードをA7に配置する。そして、この終端識別コードの後方で、通常は埋め草コードが配置される位置に相当するA8〜A17に、秘匿識別コード、データ長、秘匿識別コード等を配置する。 For example, in the example shown in FIG. 3C, the disclosed data code A is arranged in A0 to A2, the disclosed data code B is arranged in A3 to A6, and the terminal identification code is arranged in A7. Then, behind this termination identification code, a secret identification code, a data length, a secret identification code, and the like are usually arranged at A8 to A17 corresponding to positions where the padding code is arranged.
即ち、A8に秘匿識別コードを配置し、その後のA9にデータ長を配置して、さらにこの後のA10〜A13に秘匿データコードα、A14〜A17に秘匿データコードβをそれぞれ配置する。そして、通常のQRコードと同様に、誤り訂正コードを最後のA20〜A25に配置して、この間の空いている部分であるA18〜A19に埋め草コードを配置する。なお、A15およびA18は、タイミングパターンを挟んで位置していることから、A15はA15とA15’とに、またA18はA18とA18’とに分割されている。 That is, a secret identification code is arranged at A8, a data length is arranged at A9 thereafter, a secret data code α is arranged at A10 to A13, and a secret data code β is arranged at A14 to A17. Then, similarly to the normal QR code, the error correction code is arranged in the last A20 to A25, and the padding code is arranged in A18 to A19 which are vacant portions therebetween. Since A15 and A18 are located across the timing pattern, A15 is divided into A15 and A15 ', and A18 is divided into A18 and A18'.
なお、ステップS131において、図3(E) に示すように、「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、例えば、当該QRコードリーダ等が秘匿データコードαの復号キーを持っていなくても、秘匿データコードαを復号して元の平文に戻すことができる。 In step S131, as shown in FIG. 3E, the decryption key itself may be added instead of the “decryption key check data”. Thus, when the QR code Q generated by the code generation process is decoded by a QR code reader or the like, for example, even if the QR code reader or the like does not have a decryption key for the secret data code α, the secret data The code α can be decrypted and restored to the original plaintext.
また、秘匿データコードβについても、同様に「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。付加する復号キーは、秘匿データコードαを復号する復号キーと同じものを付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、この他の暗号キーに対応する他の復号キーを付加しても良い。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、当該QRコードリーダ等が、各秘匿データコードごとに対応するそれぞれの復号キーを持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。 Similarly, the decryption key itself may be added to the secret data code β instead of the “decryption key check data”. The decryption key to be added may be the same as the decryption key for decrypting the secret data code α, or the secret data of the secret data code β may be different from the encryption key of the secret data code α. May be added with another decryption key corresponding to the other encryption key. As a result, when the QR code Q generated by the code generation process is decoded by a QR code reader or the like, the QR code reader or the like does not have a corresponding decryption key for each secret data code. Also, each secret data code can be decrypted and returned to the original plaintext.
また、ステップS123により、秘匿データが含まれていないと判断した場合であっても(フラグが「0」にセットされている場合:S123;No)、図3(F) に示すように、暗号化していない平文データの前に、ステップS131で付加した「開始桁」や「文字数」を付加する処理ステップを、ステップS123とステップS135との間に設けても良い。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。 Even if it is determined in step S123 that confidential data is not included (if the flag is set to “0”: S123; No), as shown in FIG. A processing step for adding the “start digit” or “number of characters” added in step S131 before the plaintext data that has not been converted may be provided between step S123 and step S135. As a result, the QR code Q generated by the code generation process is decoded by a QR code reader or the like even when the data records are mixed in the positional relationship in the data record before being encoded as a code word. In this case, the decoded data can be arranged in the positional relationship before encoding based on the positional information.
以上説明したように、本第1実施形態に係るQRコードプリンタ10によると、MPU11により実行されるコード生成処理によって生成されるQRコードQでは、ステップS133により秘匿データコードが、埋め草コードの一部または全部に代えて、終端識別コードの後に配置されている。これにより、終端識別コードの後に配置された秘匿データコードは、一般仕様の読取装置では読み取りの対象にならないので、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからない。したがって、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。
As described above, according to the
よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。 Therefore, even if such a secret data code is included, since the data corresponding to the decode data of the secret data code is not displayed on the screen in the general-purpose reading device, the user can recognize the presence of the secret data. Therefore, the user is not distrusted or inadvertently motivated to try to decipher. Further, even if control data or the like corresponding to the decoded data of the secret data code is not displayed on the screen, the screen display is not disturbed.
なお、上述した第1実施形態では、QRコードプリンタ10により、ラベルPにQRコードQを印刷する例を挙げて説明したが、本発明はこれに限られることはなく、QRコードQを視覚的に表現可能なものであればよく、例えば、図2に示すコード生成処理をパソコン本体2により実行してディスプレイ3にQRコードQを表示するように構成しても良い。この場合、コード生成処理は、コンピュータプログラムとして概念できるので、例えば、「開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置するとともに、前記コード領域の空き部分にデータを表さない埋め草コードを配置する二次元コードの生成装置として、コンピュータを機能させるためのプログラムであって、秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする二次元コードの生成プログラム。」と表現可能な技術的思想を把握できる。これにより、この二次元コードの生成プログラムにより二次元コードの生成装置として機能するコンピュータは、上述したQRコードプリンタ10のMPU11等と同様の作用および効果を奏する。
In the first embodiment described above, an example in which the QR code Q is printed on the label P by the
また、上述した第1実施形態では、QRコードプリンタ10にパソコン1を接続して当該パソコン1から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、QRコードプリンタ10に接続する構成を採っても上述した作用および効果を得ることができる。
In the first embodiment described above, the configuration in which the
次に、QRコードリーダ20の構成を説明する。このQRコードリーダ20は、第1実施形態で説明したQRコードプリンタ10により印刷されたQRコードQをデコード可能なQRコードリーダ20である。なお、QRコードリーダ20によりデコード可能なQRコードQの構成は、図3および図4を参照して既に説明しているので、ここでは説明を割愛する。
Next, the configuration of the
まず、QRコードリーダ20の構成を図5を参照して説明する。なお、図5には、QRコードリーダのハードウェア構成例を示すブロック図が図示されている。
First , the configuration of the
図5に示すように、QRコードリーダ20は、主に、照明光源21、受光センサ23、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示器46等のマイコン系と、電源スイッチ41、バッテリ49等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されており、ハードウェア的には一般仕様のQRコードリーダ(読取装置)と同様に構成されている。
As shown in FIG. 5, the
光学系は、照明光源21、受光センサ23、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。この構成では、受光センサ23を挟んだ両側に照明光源21が設けられており、図略のケースの読取口を介してラベルPに向けて照明光Lfを照射可能に構成されている。このラベルPには、第1実施形態で説明したQRコードQが印刷されている。
The optical system includes an
受光センサ23は、ラベルPやQRコードQに照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。受光センサ23は、結像レンズ27を介して入射する入射光をこの受光面23aで受光可能に図略のプリント配線板に実装されている。
The
結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
The
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等から構成されている。このマイコン系は、その名の通り、マイコンとして機能し得る制御回路40およびメモリ35と中心に構成される。
Next, a configuration outline of the microcomputer system will be described. The microcomputer system includes an
光学系の受光センサ23から出力される画像信号は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
An image signal output from the
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述するデコード処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
The
制御回路40は、QRコードリーダ20全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなり、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置と接続可能に構成されており、本構成の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等が接続されている。
The
これにより、例えば、電源スイッチ41や操作スイッチ42の監視や管理、またインジケータとして機能するLED43の点灯・消灯、ビープ音やアラーム音を発生可能なブザー44の鳴動のオンオフ、さらには読み取ったQRコードQによるコード内容を画面表示可能な液晶表示器46の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース48の通信制御等を可能にしている。なお、通信インタフェース48に接続される外部装置には、当該QRコードリーダ20の上位システムに相当するホストコンピュータHST等が含まれる。
Thereby, for example, monitoring and management of the
電源系は、電源スイッチ41、バッテリ49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、バッテリ49から供給される駆動電圧の導通や遮断が制御されている。なお、バッテリ49は、所定の直流電圧を発生可能な二次電池で、例えば、リチウムイオン電池等がこれに相当する。また、バッテリ49によることなく、例えば、通信インタフェース48を介して接続されるホストコンピュータHST等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該バッテリ49は不要となる。
The power supply system includes a
このようにQRコードリーダ20を構成することによって、例えば、電源スイッチ41がオンされて所定の自己診断処理等が正常終了し、QRコードQの読み取りが可能な状態になると、照明光Lfの発光を指示する操作スイッチ42(例えばトリガースイッチ)の入力を受け付ける。これにより、利用者がトリガースイッチを引いてオンにすることで、制御回路40が同期信号を基準に照明光源21に発光信号を出力するので、当該発光信号を受けた照明光源21は、LEDを発光させて照明光Lfを照射する。
By configuring the
すると、QRコードQに照射された照明光Lfが反射し、その反射光Lrが読取口を介して結像レンズ27に入射するため、受光センサ23の受光面23aには、QRコードQの像が結像される。これにより、QRコードQの像が受光センサ23を露光するため、上述したマイコン系によって画像処理された当該QRコードQの画像データが、メモリ35の画像データ蓄積領域を介して、次に説明するデコード処理に渡される。
Then, the illumination light Lf irradiated to the QR code Q is reflected, and the reflected light Lr enters the
ここで、デコード処理を図4,図6および図7を参照して説明する。なお、図6には、デコード処理の流れを示すフローチャートが図示されている。また図7には、図6に示す復号化処理の流れを示すフローチャートが図示されている。また、図4には、1型のQRコードの構成例を示す説明図が図示されている。
Here, the decoding process will be described with reference to FIG. 4, FIG. 6, and FIG. FIG. 6 is a flowchart showing the flow of the decoding process. FIG. 7 is a flowchart showing the flow of the decoding process shown in FIG. FIG. 4 is an explanatory diagram showing a configuration example of a
図6に示すように、デコード処理は、QRコードリーダ20の電源投入により起動する制御回路40およびメモリ35によって開始され、まずステップS201により初期設定処理が行われる。この処理は、メモリ35の作業領域や画像データを蓄える画像データ蓄積領域をクリアしたり、所定のフラグやカウンタ等をクリアする。なお、ここで説明するQRコードリーダ20は、ホストコンピュータHSTと接続されており、当該ホストコンピュータHSTから設定データとして復号キーのデータを取得するものとする。
As shown in FIG. 6, the decoding process is started by the
ステップS203では、タイマーのカウント値をクリアする処理が行われる。このステップS203でカウンタ値がクリアされるタイマーは、次のステップS205により所定時間の経過を計時するものである。 In step S203, processing for clearing the count value of the timer is performed. The timer whose counter value is cleared in step S203 measures the elapse of a predetermined time in the next step S205.
ステップS205では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、ホストコンピュータHSTから送られてくる設定データに復号キーのデータが含まれているか否かを次のステップS209により判断する必要上、例えば、所定時間として5秒間が経過したか否かを判断し、この時間が経過するまでに、ホストコンピュータHSTから暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップS207に処理を移行する(S205;Yes)。 In step S205, processing is performed to determine whether or not a predetermined time has elapsed by the previous timer. That is, it is necessary to determine whether or not the decryption key data is included in the setting data sent from the host computer HST. For example, it is determined whether or not 5 seconds have passed as the predetermined time. If no data related to encryption is sent from the host computer HST before this time elapses, the process proceeds to step S207 as the predetermined time elapses (S205; Yes).
これに対し、所定時間が経過していない場合には(S205;No)、次のステップS209により復号キー(復号鍵)を受信したか否かを判断する処理が行われる。そして、これを受信していると判断した場合には(S209;Yes)、続くステップS211に処理を移行し、受信していると判断できない場合には(S209;No)、前述したステップS205に処理を戻して、再度、時間の経過を判断する。 On the other hand, when the predetermined time has not elapsed (S205; No), a process of determining whether or not a decryption key (decryption key) has been received in the next step S209 is performed. If it is determined that it has been received (S209; Yes), the process proceeds to the subsequent step S211. If it cannot be determined that it has been received (S209; No), the process proceeds to step S205 described above. The processing is returned and the passage of time is determined again.
そして、所定時間が経過したとステップS205により判断した場合には(S205;Yes)、ステップS207により所定のフラグに「0」をセットする。このフラグは、QRコードQの秘匿データコードを復号キーで復号するか否かを示すもので、「0」がセットされている場合には、復号キーで復号しないことを示し、「1」がセットされている場合には、復号キーで復号することを示す。このため、209により復号キーを受信していると判断した場合には(S209;Yes)、続くステップS211によりこのフラグに「1」をセットする処理が行われる。 If it is determined in step S205 that the predetermined time has elapsed (S205; Yes), “0” is set to a predetermined flag in step S207. This flag indicates whether or not the secret data code of the QR code Q is decrypted with the decryption key. When “0” is set, this flag indicates that decryption with the decryption key is not performed. When set, it indicates that decryption is performed with the decryption key. For this reason, when it is determined by 209 that the decryption key has been received (S209; Yes), a process of setting “1” to this flag is performed in the subsequent step S211.
ステップS211により所定のフラグに「1」をセットすると、続くステップ213により、画像データを取得する処理が行われる。即ち、メモリ35の画像データ蓄積領域から蓄えられている画像データを読み出す処理を行う。これにより、例えば、図4に示すようなQRコードQのコード画像が得られる。
When “1” is set in the predetermined flag in step S211, a process of acquiring image data is performed in the subsequent step 213. That is, a process of reading out image data stored from the image data storage area of the
続くステップS215では、位置検出パターンを検出する処理が行われる。即ち、QRコードQは、図4に示すように、その三隅に位置検出パターンが設けられているため、これらを検出することによって、次のステップS217によりQRコードQのコード外形を検出する。 In subsequent step S215, processing for detecting a position detection pattern is performed. That is, as shown in FIG. 4, since the QR code Q is provided with position detection patterns at its three corners, the code outline of the QR code Q is detected in the next step S217 by detecting these.
そして、ステップS219により各セルの中心座標を算出する処理を行うことによって次ステップS221により各セルの白黒を判別する。これにより、図4に示す形式情報(図4に示す斜線部分)やデータブロックを認識可能になるので、続くステップS223により、欠損等しているデータブロックがある場合には、そのブロックを誤り訂正可能であるか否かを判断する。 Then, by performing the process of calculating the center coordinates of each cell in step S219, the monochrome of each cell is determined in the next step S221. This makes it possible to recognize the format information shown in FIG. 4 (the hatched portion shown in FIG. 4) and the data block. If there is a missing data block in the subsequent step S223, the block is error-corrected. Determine whether it is possible.
そして、ステップS223により誤り訂正可能であると判断できる場合には(S223;OK)、誤り訂正をして続くステップS300により復号化処理を行う。これに対し、ステップS223により誤り訂正可能であると判断できない場合には(S223;NG)、誤り訂正できないので、ステップS213に処理を移行して再度、画像データを取得してステップS215〜S221の各処理を行う。 If it can be determined in step S223 that error correction is possible (S223; OK), error correction is performed and decoding processing is performed in subsequent step S300. On the other hand, if it cannot be determined in step S223 that the error can be corrected (S223; NG), the error cannot be corrected. Therefore, the process proceeds to step S213, and image data is acquired again, and steps S215 to S221 are performed. Perform each process.
ステップS300は、その詳細が図7に図示されているので、ここからは図7を参照して復号化処理を説明する。図7に示すように、復号化処理では、ステップS301により、まずカウンタnに0(零)をセットする処理が行われる。このカウンタnは、本復号化処理において、QRコードQを構成するデータコードの順番を示す変数として機能する。 Details of step S300 are shown in FIG. 7, and the decoding process will be described below with reference to FIG. As shown in FIG. 7, in the decoding process, first, a process of setting 0 (zero) to the counter n is performed in step S301. The counter n functions as a variable indicating the order of data codes constituting the QR code Q in the present decoding process.
ステップS303では、カウンタnが指すn番目のデータコードを取得する処理が行われる。そして、続くステップS305では、ステップS303により取得されたn番目のデータコードが、終端識別コードであるか否かを判断する処理が行われる。これにより、当該データコードが終端識別コードであると判断した場合には(S305;Yes)、終端識別コードよりも前に配置される通常のデータコードはこれ以上、当該QRコードQには含まれていないことになるので、ステップS315に処理を移行する。 In step S303, processing for obtaining the nth data code pointed to by the counter n is performed. Then, in the subsequent step S305, a process for determining whether or not the nth data code acquired in step S303 is a terminal identification code is performed. As a result, when it is determined that the data code is a terminal identification code (S305; Yes), the normal data code arranged before the terminal identification code is no longer included in the QR code Q. Therefore, the process proceeds to step S315.
これに対し、当該データコードが終端識別コードであると判断できない場合には(S305;No)、終端識別コードよりも前にまだ通常のデータコードが存在することになるので、続くステップS307に処理を移行して次のデータコード、つまり(n+1)番目のデータコードをコード数iを取得する。これは、第1実施形態で図3(D) を参照して説明したように、データコードの2文字目相当の位置には、文字数が格納されていることに基づくもので、その詳細は、JISの基本仕様(JIS X 0510:2004)の「8.4データの符号化」に記載されている。 On the other hand, if it is not possible to determine that the data code is the termination identification code (S305; No), the normal data code still exists before the termination identification code, so the process proceeds to step S307. And the code number i is acquired for the next data code, that is, the (n + 1) th data code. As described with reference to FIG. 3D in the first embodiment, this is based on the fact that the number of characters is stored at the position corresponding to the second character of the data code. It is described in “8.4 Data Encoding” in JIS Basic Specification (JIS X 0510: 2004).
ステップS307によりコード数iを取得すると、続くステップS309では、この文字数(i)分だけデータコードを取得する処理が行われ、さらにステップS311により当該データコード、つまり開示データコード(開示するデータを表すコード語としてコード化されたデータコード)を復号(デコード)する処理が行われる。 When the number of codes i is acquired in step S307, in the subsequent step S309, a process for acquiring data codes for the number of characters (i) is performed. A process of decoding (decoding) a data code encoded as a code word is performed.
ステップS311による復号処理が終わると、ステップS313により、カウンタnが次のデータコードを指すように「n+i+1」をカウンタnに設定する処理が行われた後、再びステップS303に処理を戻してn番目のデータコードを取得する処理が行われる。 When the decoding process in step S311 is completed, in step S313, the process of setting “n + i + 1” to the counter n is performed so that the counter n indicates the next data code, and then the process returns to step S303 to return to the nth The process of acquiring the data code is performed.
このように、ステップS303〜S313では、終端識別コードの前方に配置されて元来デコードされる通常のデータコード(第1のデータコード、開示データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、「第1デコード手段」に相当し得るものである。
As described above, in steps S303 to S313, a process of obtaining and decoding a normal data code (first data code, disclosed data code) that is arranged in front of the terminal identification code and originally decoded is performed. Therefore, the
ステップS315は、前述した所定のフラグに「1」がセットされているか否か、つまりQRコードQの秘匿データコードを復号キーで復号するか否かを判断する処理が行われる。そして、当該フラグに「1」がセットされていない場合には(S315;No)、復号キーで復号する必要がないため、本復号化処理を終了して図6に示すステップS300を終えてデコード処理を終了する。 In step S315, a process of determining whether or not “1” is set in the predetermined flag, that is, whether or not the secret data code of the QR code Q is decrypted with the decryption key is performed. If “1” is not set in the flag (S315; No), it is not necessary to perform decryption with the decryption key. Therefore, the present decryption process is terminated and step S300 shown in FIG. 6 is terminated. End the process.
これに対し、所定のフラグに「1」がセットされている場合には(S315;Yes)、復号キーで復号する必要があるため、続くステップS317に処理を移行してカウンタnにn+1を設定し、さらにステップS319によりカウンタnが指すn番目のデータコードを取得する処理が行われる。 On the other hand, if “1” is set in the predetermined flag (S315; Yes), it is necessary to decrypt with the decryption key. Therefore, the process proceeds to subsequent step S317 and n + 1 is set to the counter n. Further, in step S319, a process for obtaining the nth data code indicated by the counter n is performed.
そして、続くステップS321では、ステップS319により取得されたn番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このため、このステップS321を実行する制御回路40等は、「データコード判断手段」や「秘匿識別コード判断手段」に相当し得るものである。
In subsequent step S321, a process is performed to determine whether or not the nth data code acquired in step S319 is a secret identification code. Therefore, the
これにより、当該データコードが秘匿識別コードであると判断した場合には(S321;Yes)、秘匿識別コードよりも後には、秘匿データコードが存在することになるので、続くステップS323に処理を移行して次のデータコード、つまり(n+1)番目のデータコードをコード数jを取得する。これも、ステップS309と同様に、データコードの2文字目相当の位置には、文字数が格納されていることに基づくものである。 As a result, when it is determined that the data code is a secret identification code (S321; Yes), since the secret data code exists after the secret identification code, the process proceeds to the subsequent step S323. The code number j is acquired for the next data code, that is, the (n + 1) th data code. This is also based on the fact that the number of characters is stored at the position corresponding to the second character of the data code, as in step S309.
なお、ステップS321により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータHSTに対して当該QRコードQには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータHSTでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので秘匿データコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータHSTに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。 When it is determined in step S321 that the secret identification code is arranged, for example, the host computer HST is notified that the secret identification code is arranged in the QR code Q. You may do it. As a result, the host computer HST can recognize that the data code behind the terminal identification code is a secret data code. In addition, in the code area after the termination identification code (the empty area of the code area) where only the padding code is originally placed, it is other than the padding code and is not a secret data code (for example, it corresponds to the padding code due to data corruption) In this case, since the information indicating that the data is a secret data code is not output to the host computer HST, a malfunction that may be caused by decoding something other than the secret data code is prevented. be able to.
これに対し、当該データコードが秘匿識別コードであると判断できない場合には(S321;No)、秘匿識別コードよりも後には、これ以上、秘匿データコードが当該QRコードQには含まれていないことになるので、本復号化処理を終了して図6に示すステップS300を終えてデコード処理を終了する。 On the other hand, when it cannot be determined that the data code is a secret identification code (S321; No), no more secret data code is included in the QR code Q after the secret identification code. Therefore, this decoding process is finished, step S300 shown in FIG. 6 is finished, and the decoding process is finished.
ステップS323によりコード数jを取得すると、続くステップS325では、この文字数(j)分だけデータコードを取得する処理が行われ、さらにステップS327によりカウンタnが次のデータコード、つまり秘匿データコードを指すように「n+j+2」をカウンタnに設定する処理が行われた後、ステップS329によりn番目の復号キー検査データ(鍵特定情報)を取得する処理が行われる。 When the code number j is acquired in step S323, in the subsequent step S325, a process for acquiring the data code for the number of characters (j) is performed, and in step S327, the counter n indicates the next data code, that is, the secret data code. Thus, after the process of setting “n + j + 2” to the counter n is performed, the process of acquiring the nth decryption key check data (key specifying information) is performed in step S329.
そして、このステップS329により取得した復号キー検査データに基づいて、先のステップS209によりホストコンピュータHSTから受信した復号キーがこのn番目の秘匿データコードの暗号化データを解読する鍵として適合しているか否かの判断をステップS331により行う。ステップS331に当該復号キーが適合していると判断した場合には(S331;Yes)、続くステップS333により暗号化データを解読する。 Then, based on the decryption key check data acquired in step S329, whether the decryption key received from the host computer HST in previous step S209 is suitable as a key for decrypting the encrypted data of the nth secret data code A determination of whether or not is made in step S331. If it is determined that the decryption key is suitable for step S331 (S331; Yes), the encrypted data is decrypted in the subsequent step S333.
なお、ここでの暗号化は、第1実施形態で説明した公知の視覚復号型暗号技術(視覚復号型秘密分散法)を用いたもので、これにより、秘匿データコードの暗号化データがこのような視覚復号型暗号技術により暗号化されている場合でも、復号して元の平文に戻すことができる。なお、このステップS333を実行する制御回路40等は、「復号手段」に相当し得るものである。
The encryption here uses the well-known visual decryption type encryption technique (visual decryption type secret sharing method) described in the first embodiment, so that the encrypted data of the secret data code is like this. Even if it is encrypted by a visual decryption type encryption technique, it can be decrypted and returned to the original plaintext. The
これに対して、ステップS331に当該復号キーが適合していると判断できない場合には(S331;No)、当該n番目の秘匿データコードを解読することなく、その次の秘匿データコードを取得すべく、ステップS337に移行してカウンタnにn+1を設定する。これにより、QRコードリーダ20が有する復号キーが当該n番目の秘匿データコードを解読できる復号キーでない場合には、当該n番目の秘匿データコードは解読も復号されないので、不要な復号処理を抑制することができる。なお、このステップS331を実行する制御回路40等は、「鍵適合判断手段」に相当し得るものである。
On the other hand, when it cannot be determined in step S331 that the decryption key is suitable (S331; No), the next secret data code is acquired without decrypting the nth secret data code. Therefore, the process proceeds to step S337 and n + 1 is set to the counter n. As a result, if the decryption key of the
ステップS335では、秘匿データコードを復号する処理が行われる。即ちその前のステップS333により暗号化データを解読することができているので、このステップS335により解読した暗号化データに基づいて秘匿データコードを復号(デコード)する。 In step S335, a process for decoding the secret data code is performed. That is, since the encrypted data can be decrypted in the previous step S333, the secret data code is decrypted based on the encrypted data decrypted in this step S335.
ステップS335による復号処理が終わると、ステップS337により、カウントnが次のデータコードを指すように「n+1」をカウンタnに設定する処理が行われた後、続くステップS339により、n番目のデータコードを取得する処理が行われる。 When the decoding process in step S335 is completed, a process for setting “n + 1” to the counter n is performed in step S337 so that the count n indicates the next data code. Then, in the subsequent step S339, the nth data code is set. The process of acquiring is performed.
そして、ステップS341により、ステップS339で取得したn番目のデータコードが埋め草コードであるか否かを判断する処理が行われる。これにより、もし当該n番目のデータコードが埋め草コードである場合には(S341;Yes)、これ以上、当該QRコードQには秘匿データコードが含まれていないことになるので、本復号化処理を終了して図6に示すステップS300を終えてデコード処理を終了する。 In step S341, processing is performed to determine whether the nth data code acquired in step S339 is a padding code. As a result, if the nth data code is a padding code (S341; Yes), the QR code Q does not contain any more secret data code. The process is finished, and step S300 shown in FIG. 6 is finished, and the decoding process is finished.
これに対し、ステップS341により当該n番目のデータコードが埋め草コードであると判断されない場合には(S341;No)、当該n番目のデータコードは、秘匿データコードであるので、ステップS323に処理を移行して、再び(n+1)番目のデータコードをコード数jを取得することで、前述と同様の処理を行う。 On the other hand, if it is not determined in step S341 that the n-th data code is a padding code (S341; No), the n-th data code is a secret data code, so the process proceeds to step S323. , And the number n of the (n + 1) th data code is acquired again to perform the same processing as described above.
このように、ステップS319,S323〜S335では、終端識別コードの後方に配置されて、本来はデコードされないデータコード(第2のデータコード、秘匿データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、「第2デコード手段」に相当し得る。
As described above, in steps S319 and S323 to S335, a process of obtaining and decoding a data code (second data code, secret data code) that is arranged behind the termination identification code and is not originally decoded is performed. Therefore, the
以上説明したように、本構成に係るQRコードリーダ20によると、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、秘匿データコード(第2のデータコード)が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、第1実施形態で説明したQRコードプリンタ10により印刷されたQRコードQを、本構成に係るQRコードリーダ20によりデコードすることができる。
As described above, according to the
なお、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(E) を参照して説明したように復号キーそのものが秘匿データコードに付加されている場合には、このステップS329に代えて、n番目の復号キーを取得するように構成しても良い。これにより、秘匿データコードの復号キー(復号できる鍵)を当該QRコードリーダ20が持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。この場合、「n番目の復号キーを取得する」処理を実行する制御回路40等は、「鍵分離手段」に相当し得る。
In the decoding process described above, the nth decryption key check data is obtained in step S329. For example, as described with reference to FIG. 3E in the first embodiment, the decryption key itself is used. May be added to the secret data code, the n-th decryption key may be obtained instead of step S329. Thus, even if the
また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップS329に代えて、n番目の復号キーを取得するように構成することで、秘匿データコードの復号キーを当該QRコードリーダ20が持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
Even if each secret data code is encrypted with a different encryption key, if each decryption key is added to each secret data code, the nth decryption is performed instead of step S329. By configuring so as to acquire the key, each secret data code can be decrypted and returned to the original plaintext even if the
さらに、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(D) を参照して説明したように位置情報としての「開始桁」が秘匿データコードに付加されている場合には、このステップS329に代えて、秘匿データコードから「開始桁」を分離してこの分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置するように構成しても良い。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。この場合、「秘匿データコードから「開始桁」を分離する」処理を実行する制御回路40等は、「位置情報分離手段」に相当し得る。また、「この分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置する」処理を実行する制御回路40等は、「データ配置手段」に相当し得る。
Further, in the decoding process described above, the n-th decryption key check data is obtained in step S329. For example, as described with reference to FIG. If the “start digit” is added to the secret data code, instead of this step S329, the “start digit” is separated from the secret data code and the secret data is based on the separated “start digit”. The secret data obtained by decoding (decoding) the code may be arranged in a positional relationship in the data record before being encoded. As a result, even if the positional relationship in the data record before being coded as a code word is mixed before and after, the decoded data is arranged in the positional relationship before coding based on this positional information. be able to. In this case, the
[第2実施形態]
次に、本発明の第2実施形態に係るQRコードプリンタ10による他のQRコードの生成処理を図8および図9を参照して説明する。ここで説明する他のQRコードは、図9(C) に示すように、埋め草コード(11101100)の代わりに、任意のコード(例えば00000000や11111111)を空き領域に詰めるフォーマットを採るものである。
[Second Embodiment]
Next, another QR code generation process by the
なお、図8に示すコード生成処理のフローチャートにおいて、既に説明したコード生成処理(図2)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図9に示すデータやコードのフォーマット例についても、同様に、既に説明したフォーマット例(図3)と実質的に同一のフォーマットについては詳細な説明を省略する。なお、図9では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。 In the flowchart of the code generation process shown in FIG. 8, process steps that are substantially the same as the process steps that make up the already described code generation process (FIG. 2) are assigned the same reference numerals, and detailed description thereof is omitted. Similarly, for the data and code format examples shown in FIG. 9, detailed description of the format substantially the same as the format example (FIG. 3) already described is omitted. In FIG. 9, for the sake of convenience, the disclosed data code is expressed as “disclosed code”, and the terminal identification code is expressed as “end terminal”.
図8に示すように、コード生成処理は、QRコードプリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、ステップS101により初期設定処理が行われると、次にステップS103により印刷データを受信する。そして、ステップS107,S111を経て秘匿データを受信すると、ステップS115により開示データおよび秘匿データを並び替え、さらにステップS117により開示データや秘匿データ等の各データを符号化した後、ステップS119により誤り訂正符号を生成してステップS121により開示データコードの後に終端識別コードを付加する。
As shown in FIG. 8, the code generation process is started by the
なお、このような終端識別コードを開示データコードの後に付加するのではなく、例えば、図9(C) の括弧内に示すフォーマットのように、全ての開示データコードのデータ長を算出することによって得られる「開示データコードがなすコード列の終端位置」(以下単に「終端位置」という)を特定できる終端位置データ(図9(C) では「終端情報」)を開示データコードの先頭に配置または付加しても良い。 Instead of adding such a terminal identification code after the disclosed data code, for example, by calculating the data length of all disclosed data codes as in the format shown in parentheses in FIG. The end position data (in FIG. 9C, “end information”) that can identify the “end position of the code string formed by the disclosed data code” (hereinafter simply referred to as “end position”) is placed at the beginning of the disclosed data code. It may be added.
そして、印刷データに秘匿データが含まれている場合には(S123;Yes)、ステップS125〜S133によって、終端位置に続けて秘匿識別コード等を付加した後、また印刷データに秘匿データが含まれていない場合には(S123;No)、終端位置の後に、それぞれステップS135’により、前述した任意コードとして、例えば、00000000や11111111を付加する。 If the secret data is included in the print data (S123; Yes), the secret data is added to the print data after adding the secret identification code after the end position in steps S125 to S133. If not (S123; No), for example, 00000000 or 11111111 is added as the above-mentioned arbitrary code after the end position in step S135 ′.
即ち、ステップS135’による任意コードの付加処理では、終端位置よりも後で誤り訂正コードよりも前の範囲において、秘匿データコードを詰めても空き領域(コード領域の空き部分)が生じる場合に埋め草コードに代えて任意のコード(例えば00000000や11111111)を詰める。このため、例えば、このようなデータフォーマットを構成するメモリ上で、予め全ての範囲をこのような任意のコードで埋める初期化処理をステップS101において処理している場合には、当該ステップS135’を行うことなく省略できる(図8ではステップS135’の枠線は破線で表現されている)。 That is, in the arbitrary code addition processing in step S135 ′, if an empty area (empty portion of the code area) is generated even if the secret data code is packed in the range after the end position and before the error correction code, Instead of the grass code, an arbitrary code (for example, 00000000 or 11111111) is packed. For this reason, for example, in the case where an initialization process in which the entire range is preliminarily filled with such an arbitrary code on the memory constituting such a data format in step S101, step S135 ′ is performed. It can be omitted without performing (in FIG. 8, the frame line of step S135 ′ is represented by a broken line).
そして、ステップS137により、誤り訂正コードを付加する処理が行われると、図9(C) に示すフォーマットのデータコードが生成されるため、続くステップS139によりこのようなデータコードに基づいて各セルを生成して図4に示して説明したデータブロックに配置される。つまり、本来、埋め草コードが配置される範囲に前述した任意コードが配置されること以外は、図2〜図4を参照して説明したQRコードと同様に配置される。 Then, when the process of adding an error correction code is performed in step S137, a data code having the format shown in FIG. 9C is generated. In subsequent step S139, each cell is changed based on such a data code. Generated and placed in the data block described with reference to FIG. In other words, the QR code is arranged in the same manner as the QR code described with reference to FIGS. 2 to 4 except that the arbitrary code described above is originally arranged in the range in which the padding code is arranged.
以上説明したように、本第2実施形態に係るQRコードプリンタ10によると、MPU11により実行されるコード生成処理によって生成されるQRコードQでは、ステップS133により秘匿データコードが終端位置の後に配置されている。これにより、終端位置の後に配置された秘匿データコードは、一般仕様の読取装置では読み取りの対象にならないので、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからない。したがって、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。
As described above, according to the
よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。 Therefore, even if such a secret data code is included, since the data corresponding to the decode data of the secret data code is not displayed on the screen in the general-purpose reading device, the user can recognize the presence of the secret data. Therefore, the user is not distrusted or inadvertently motivated to try to decipher. Further, even if control data or the like corresponding to the decoded data of the secret data code is not displayed on the screen, the screen display is not disturbed.
なお、上述した第2実施形態では、QRコードプリンタ10により、ラベルPにQRコードQを印刷する例を挙げて説明したが、本発明はこれに限られることはなく、QRコードQを視覚的に表現可能なものであればよく、例えば、図8に示すコード生成処理をパソコン本体2により実行してディスプレイ3にQRコードQを表示するように構成しても良い。この場合、コード生成処理は、コンピュータプログラムとして概念できるので、例えば、「開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する二次元コードの生成装置として、コンピュータを機能させるためのプログラムであって、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、または前記終端識別情報により特定される前記終端位置の後、に配置することを特徴とする二次元コードの生成プログラム。」と表現可能な技術的思想を把握できる。これにより、この二次元コードの生成プログラムにより二次元コードの生成装置として機能するコンピュータは、上述したQRコードプリンタ10のMPU11等と同様の作用および効果を奏する。
In the second embodiment described above, an example in which the QR code Q is printed on the label P by the
また、上述した第2実施形態では、QRコードプリンタ10にパソコン1を接続して当該パソコン1から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、QRコードプリンタ10に接続する構成を採っても上述した作用および効果を得ることができる。
In the second embodiment described above, the configuration in which the
次に、上述の例とは異なるQRコードリーダ20による他のQRコードのデコード処理を図10および図11を参照して説明する。なお、「他のQRコード」とは、埋め草コード(11101100)の代わりに、任意のコード(例えば00000000や11111111)を空き領域に詰めるフォーマットを採るコードのことで、第2実施形態に係るQRコードプリンタ10により印刷されたQRコードのことである。
Next, another QR code decoding process by the
なお、図10に示すデコード処理のフローチャートにおいて、既に説明したデコード処理(図6)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図11に示す復号化処理のフローチャートにおいて、既に説明した復号化処理(図7)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。 Note that, in the flowchart of the decoding process shown in FIG. 10, the processing steps that are substantially the same as the processing steps constituting the decoding process (FIG. 6) already described are assigned the same reference numerals and detailed description thereof is omitted. Also, in the flowchart of the decoding process shown in FIG. 11, processing steps that are substantially the same as the processing steps constituting the decoding process (FIG. 7) already described are assigned the same reference numerals and detailed description thereof is omitted.
図10に示すように、デコード処理は、QRコードリーダ20の電源投入により起動する制御回路40およびメモリ35によって開始され、ステップS201により初期設定処理が行われると、ステップS205により所定時間を経過した後(S205;Yes)、またはステップS209により復号キーを受信した後(S209;Yes)、ステップS213により画像データを取得する。そして、ステップS215,S217,S219,S221によりQRコードQを画像認識してステップS223により誤り訂正可能であるか否かを判断して、誤り訂正可能であると判断できる場合には(S223;OK)、誤り訂正をした後、ステップS300’により復号化処理(図11)を行う。
As shown in FIG. 10, the decoding process is started by the
図11に示すように、ステップS300’の復号化処理では、ステップS301〜S313により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)が見つかると(S305’;Yes)、ステップS315,S317,S319によりカウンタnが指すn番目のデータコードを取得してそれが秘匿識別コードであるか否かをステップS321により判断する。そして、秘匿識別コードであると判断すると(S321;Yes)、S323〜S331により復号キーの適合を調べてその復号キーでS333により暗号化データを解読し、さらにステップS335により秘匿データコードを復号する。 As shown in FIG. 11, in the decoding process in step S300 ′, the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) in steps S301 to S313. If it is found (S305 ′; Yes), the nth data code pointed to by the counter n is acquired in steps S315, S317, and S319, and it is determined in step S321 whether or not it is a secret identification code. If it is determined that the code is a secret identification code (S321; Yes), the compatibility of the decryption key is checked in S323 to S331, the encrypted data is decrypted in S333 using the decryption key, and the secret data code is decrypted in step S335. .
なお、ステップS321により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータHSTに対して当該QRコードQには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータHSTでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので秘匿データコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータHSTに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。 When it is determined in step S321 that the secret identification code is arranged, for example, the host computer HST is notified that the secret identification code is arranged in the QR code Q. You may do it. As a result, the host computer HST can recognize that the data code behind the terminal identification code is a secret data code. In addition, in the code area after the termination identification code (the empty area of the code area) where only the padding code is originally placed, it is other than the padding code and is not a secret data code (for example, it corresponds to the padding code due to data corruption) In this case, since the information indicating that the data is a secret data code is not output to the host computer HST, a malfunction that may be caused by decoding something other than the secret data code is prevented. be able to.
そして、ステップS336’によりこの復号した秘匿データコードが最後の秘匿データコードであるか否かを判断する。具体的には、例えば、図9(C) に示すように、秘匿識別子の次には、その後に続く秘匿データコードのデータ長が格納されているので、これに基づいて当該秘匿データコードが最後の秘匿データコードに該当するか否かを判断する。また、前述したように、最後の秘匿データコードの後、つまり空き領域(コード領域の空き部分)には任意のコード(例えば00000000や11111111)が詰められているので、このような任意のコードの存在に基づいて当該秘匿データコードが最後の秘匿データコードに該当するか否かを判断する。 In step S336 ', it is determined whether or not the decrypted secret data code is the last secret data code. Specifically, for example, as shown in FIG. 9 (C), since the data length of the subsequent secret data code is stored after the secret identifier, the secret data code is the last one based on this. It is determined whether it corresponds to the secret data code. In addition, as described above, after the last secret data code, that is, an arbitrary code (for example, 00000000 or 11111111) is packed in the empty area (the empty area of the code area). Based on the presence, it is determined whether or not the secret data code corresponds to the last secret data code.
ステップS336’により当該秘匿データコードが最後の秘匿データコードであると判断されない場合(最後の秘匿データコードでない判断された場合)には(S336’;No)、ステップS337により、カウントnが次のデータコードを指すように「n+1」をカウンタnに設定する処理が行われた後、続くステップS339により、n番目のデータコードを取得する処理が行われて、前述と同様にステップS323〜S331により復号キーの適合を調べる。 When it is not determined in step S336 ′ that the secret data code is the last secret data code (when it is determined that the secret data code is not the last secret data code) (S336 ′; No), the count n is set to the next count in step S337. After the process of setting “n + 1” in the counter n so as to indicate the data code is performed, the process of acquiring the nth data code is performed in the subsequent step S339, and the process of steps S323 to S331 is performed as described above. Check decryption key match.
これに対し、ステップS336’により当該秘匿データコードが最後の秘匿データコードであると判断された場合には(S336’;Yes)、これ以上、当該QRコードQには秘匿データコードが含まれていないことになるので、本復号化処理を終了して図10に示すステップS300’を終えてデコード処理を終了する。 On the other hand, when it is determined in step S336 ′ that the secret data code is the last secret data code (S336 ′; Yes), the QR code Q further includes the secret data code. Therefore, the present decoding process is finished, step S300 ′ shown in FIG. 10 is finished, and the decoding process is finished.
なお、ステップS303〜S313では、終端位置の前方に配置されて元来デコードされる通常のデータコード(第1のデータコード、開示データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、「第1デコード手段」に相当し得るものである。
In steps S303 to S313, a process of obtaining and decoding a normal data code (first data code, disclosed data code) that is arranged in front of the end position and originally decoded is performed. Therefore, the
また、ステップS321では、ステップS319により取得されたn番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このため、このステップS321を実行する制御回路40等は、「データコード判断手段」や「秘匿識別コード判断手段」に相当し得るものである。さらに、ステップS331やS333を実行する制御回路40等は、「鍵適合判断手段」や「復号手段」に相当し得るものである。
In step S321, processing for determining whether or not the nth data code acquired in step S319 is a secret identification code is performed. Therefore, the
さらに、ステップS319,S323〜S335では、終端位置の後方に配置されて、本来はデコードされないデータコード(第2のデータコード、秘匿データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、「第2デコード手段」に相当し得るものである。
Further, in steps S319 and S323 to S335, a process of acquiring and decoding a data code (second data code, secret data code) that is arranged behind the end position and is not originally decoded is performed. Therefore, the
以上説明したように、このQRコードリーダ20によると、本来、データコードが配置されない終端位置の後のコード領域(コード領域の空き部分)に、秘匿データコード(第2のデータコード)が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、QRコードプリンタ10により印刷されたQRコードQを、このQRコードリーダ20によりデコードすることができる。
As described above, according to the
なお、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(E) を参照して説明したように第2実施形態でも同様に、復号キーそのものが秘匿データコードに付加されている場合には(図9(E) 参照)、このステップS329に代えて、n番目の復号キーを取得するように構成しても良い。これにより、秘匿データコードの復号キー(復号できる鍵)を当該QRコードリーダ20が持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。この場合、「n番目の復号キーを取得する」処理を実行する制御回路40等は、「鍵分離手段」に相当し得る。
In the decoding process described above, the n-th decryption key check data is obtained in step S329. For example, as described with reference to FIG. 3E in the first embodiment, the second implementation is performed. Similarly, in the embodiment, when the decryption key itself is added to the secret data code (see FIG. 9E), the n-th decryption key may be obtained instead of step S329. good. Thus, even if the
また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップS329に代えて、n番目の復号キーを取得するように構成することで、秘匿データコードの復号キーを当該QRコードリーダ20が持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
Even if each secret data code is encrypted with a different encryption key, if each decryption key is added to each secret data code, the nth decryption is performed instead of step S329. By configuring so as to acquire the key, each secret data code can be decrypted and returned to the original plaintext even if the
さらに、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(D) を参照して説明したように第2実施形態でも同様に、位置情報としての「開始桁」が秘匿データコードに付加されている場合には(図9(D) 参照)、このステップS329に代えて、秘匿データコードから「開始桁」を分離してこの分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置するように構成しても良い。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。この場合、「秘匿データコードから「開始桁」を分離する」処理を実行する制御回路40等は、「位置情報分離手段」に相当し得る。また、「この分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置する」処理を実行する制御回路40等は、「データ配置手段」に相当し得る。
Further, in the decoding process described above, the n-th decryption key check data is obtained in step S329. For example, as described with reference to FIG. 3D in the first embodiment, the second implementation is performed. Similarly, in the form, when “start digit” as position information is added to the secret data code (see FIG. 9D), instead of this step S329, “start digit” is added from the secret data code. Separately, the secret data obtained by decoding (decoding) the secret data code based on the separated “start digit” may be arranged in a positional relationship in the data record before being encoded. As a result, even if the positional relationship in the data record before being coded as a code word is mixed before and after, the decoded data is arranged in the positional relationship before coding based on this positional information. be able to. In this case, the
[第3実施形態]
次に、本発明の第3実施形態に係るQRコードプリンタ10による他のQRコードの生成処理を図12〜図14を参照して説明する。ここで説明する他のQRコードは、図14(B) 等に示すように、秘匿データコードα,β等に所定の加工を施して空き領域に詰めるフォーマットを採るものである。
[ Third Embodiment]
Next, another QR code generation process by the
なお、図12に示すコード生成処理のフローチャートにおいて、既に説明したコード生成処理(図2)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図14に示すコードのフォーマット例についても、同様に、既に説明したフォーマット例(図3)と実質的に同一のフォーマットについては詳細な説明を省略する。なお、図14では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。 In the flowchart of the code generation process shown in FIG. 12, process steps that are substantially the same as the process steps constituting the code generation process (FIG. 2) already described are assigned the same reference numerals and detailed description thereof is omitted. Similarly, with respect to the code format example shown in FIG. 14, the detailed description of the format substantially the same as the format example (FIG. 3) already described is omitted. In FIG. 14, for the sake of convenience, the disclosed data code is expressed as “disclosed code”, and the terminal identification code is expressed as “end terminal”.
図12に示すように、コード生成処理は、QRコードプリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、ステップS101により初期設定処理が行われると、次にステップS103により印刷データを受信する。そして、ステップS107,S111を経て秘匿データを受信すると、ステップS117により開示データや秘匿データ等の各データを符号化した後、ステップS121’により開示データコードの後に終端識別コード等(開示データコードがなすコード列の終端位置を含む)を付加する。
As shown in FIG. 12, the code generation process is started by the
そして、印刷データに秘匿データが含まれている場合には(S123;Yes)、ステップS125,S127により終端位置に続けて秘匿識別コードを付加等した後、ステップS131により秘匿データコードを暗号化し、さらにステップS132により空き領域に埋め草コードを付加する。そして、この後にステップS500による所定の加工処理が行われる。一方、印刷データに秘匿データが含まれていない場合には(S123;No)、これらの各処理(S125,S127,S131,S132,S500)を行うことなく、ステップS133に処理を移行する。 If the print data includes secret data (S123; Yes), after adding a secret identification code following the end position in steps S125 and S127, the secret data code is encrypted in step S131. In step S132, a padding code is added to the empty area. Thereafter, predetermined processing in step S500 is performed. On the other hand, when the secret data is not included in the print data (S123; No), the process proceeds to step S133 without performing these processes (S125, S127, S131, S132, S500).
ここで、ステップS500による所定の加工処理を図13を参照して説明する。図13に示すように、所定の加工処理では、まずステップS501によりポインタiをゼロクリアする処理が行われる。このポインタiは、ステップS507〜S517による分散配置処理の対象となるビット位置を指すもので、このクリア処理によって0ビット目からスタートする。 Here, the predetermined processing in step S500 will be described with reference to FIG. As shown in FIG. 13, in the predetermined processing, first, a process of clearing the pointer i to zero is performed in step S501. This pointer i indicates the bit position to be subjected to the distributed arrangement processing in steps S507 to S517, and starts from the 0th bit by this clear processing.
ステップS503では、終端位置よりも後に存在する空き領域(図14(A)〜(C)参照)、即ち、本来埋め草コードで埋められる領域で誤り訂正コードの範囲を除いた領域のビット数nを求める処理が行われる。この処理は、後述のステップS513により疑似乱数Rを求める際に使用される定数である。 In step S503, the number of bits n in an empty area existing after the end position (see FIGS. 14A to 14C), that is, an area that is originally filled with padding code and excluding the error correction code range n. Is obtained. This process is a constant used when the pseudo random number R is obtained in step S513 described later.
続くステップS505では、暗号化データのビット数と復号キー検査データのビット数との和m(図14(D),(E)参照)を求める処理が行われる。即ち、分散配置処理の対象となる秘匿データコードのビット数を把握することにより、後述のステップS519による分散配置完了の可否判断を可能にしている。 In subsequent step S505, a process for obtaining the sum m (see FIGS. 14D and 14E) of the number of bits of the encrypted data and the number of bits of the decryption key check data is performed. That is, by determining the number of bits of the secret data code that is the target of the distributed arrangement process, it is possible to determine whether or not the distributed arrangement can be completed in step S519 described later.
次のステップS507では、開示データコードと暗号化データとを2バイト単位で排他的論理和(EXOR)演算を行いその結果Sを求める処理が行われ、続くステップS509ではこのような演算結果SをステップS513による疑似乱数のシード値にセットする処理が行われる。このシード値は、所定の演算により疑似乱数を発生させるための種で、このシード値が同じであれば、発生する乱数はまったく同じものとなる。つまり、ステップS513による疑似乱数は、この演算結果Sの値によって発生する値およびその発生順が一義的に定まる。この点で、本加工処理は、開示データコードの内容に基づいて行われることとなる。 In the next step S507, an exclusive OR (EXOR) operation is performed on the disclosed data code and the encrypted data in units of 2 bytes, and the result S is obtained. In the subsequent step S509, such an operation result S is obtained. Processing for setting the seed value of the pseudo random number in step S513 is performed. This seed value is a seed for generating a pseudo-random number by a predetermined calculation. If this seed value is the same, the generated random number is exactly the same. That is, the pseudo-random number in step S513 is uniquely determined by the value of the calculation result S and the order of generation. In this respect, this processing is performed based on the content of the disclosed data code.
ステップS511では、ポインタiをインクリメント、つまり1だけカウントアップさせる処理が行われる。これにより、ステップS517等による分散配置処理の対象となるビットの位置(ポインタiが指し示す位置)のカウントがアップされる。先の例では、0から1にカウントアップされることで、1ビット目が指し示めされる。 In step S511, a process of incrementing the pointer i, ie, counting up by 1, is performed. As a result, the count of the bit position (position pointed by the pointer i) to be subjected to the distributed arrangement processing in step S517 or the like is increased. In the previous example, counting up from 0 to 1 points to the first bit.
続くステップS513により、疑似乱数Rを求める処理が行われる。この演算は、前述したシード値に基づいて所定の乱数発生アルゴリズムに従った情報処理を行うことにより、擬似的に乱数を発生させるもので、ここでは、1からn(nは、空き領域のビット数)までの範囲で、疑似乱数を発生させる。このため、例えば「R=rand()mod n + 1」なる演算式で演算される。 In the subsequent step S513, a process for obtaining the pseudo random number R is performed. This operation is to generate a pseudo random number by performing information processing according to a predetermined random number generation algorithm based on the seed value described above. Here, 1 to n (n is a bit in a free area) Pseudo-random numbers are generated in the range up to (number). For this reason, for example, it is calculated by an arithmetic expression “R = rand () mod n + 1”.
なお、rand()は、シード値Sに対して疑似乱数を返す関数で、また、x mod yは、xに対してモジュロー値yを求める関数である。即ち、先の演算式では、modの前の引数x(rand()のこと)となる疑似乱数の値を、modの後の引数y(nのこと)で割ったときの余りに、1を加えた値として疑似乱数Rが求められる。なお、nは、前述したように、空き領域のビット数である。 Note that rand () is a function that returns a pseudo-random number for the seed value S, and x mod y is a function that calculates a modulo value y for x. That is, in the previous arithmetic expression, 1 is added to the remainder when the value of the pseudo random number that is the argument x (that is, rand ()) before mod is divided by the argument y that is after mod (n). As a value, a pseudo random number R is obtained. Note that n is the number of bits in the free area as described above.
このようにステップS513によって1〜nまでの疑似乱数Rが求められると、次のステップS515により当該疑似乱数Rが既に発生したものであるか否かの判断処理が行われる。つまり、疑似乱数Rとして同じ値が発生すると、次のステップS517による再配置処理においてビット値の上書きが行われることから、それ以前に同じビット位置に配置された値が破壊されてしまうことを防止するためである。このため、このステップS515により既に疑似乱数Rとして同じ値が発生していると判断された場合には(S515;Yes)、ステップS513に戻って再度、疑似乱数Rを求める。 When the pseudo-random numbers R from 1 to n are obtained in step S513 in this way, the next step S515 determines whether or not the pseudo-random numbers R have already been generated. That is, when the same value is generated as the pseudo random number R, the bit value is overwritten in the rearrangement process in the next step S517, so that the value previously arranged at the same bit position is prevented from being destroyed. It is to do. For this reason, if it is determined in step S515 that the same value has already been generated as the pseudorandom number R (S515; Yes), the process returns to step S513 to obtain the pseudorandom number R again.
ステップS515により既に発生した疑似乱数Rと同じ値であると判断されない場合には(S515;No)、続くステップS517により暗号化データのiビット目(ポインタiが指し示すビットの位置)の値を空き領域のRビット目にセットする処理、つまり配置処理が行われる。先の例では、1ビット目の値が空き領域のRビット目にセットされる。これにより、本来1ビット目に位置している情報が、乱数により不規則的に発生するRビット目に移動する。 If it is not determined in step S515 that the value is the same as the pseudorandom number R that has already been generated (S515; No), the value of the i-th bit (the position of the bit pointed to by the pointer i) of the encrypted data is made empty in the subsequent step S517. Processing to set the R bit in the region, that is, placement processing is performed. In the previous example, the value of the first bit is set to the R bit of the empty area. As a result, the information originally located at the first bit moves to the R bit generated irregularly by the random number.
続くステップS519では、ポインタiの値が、分散配置処理の対象となる秘匿データコードのビット数の終わり(最終ビット)に達しているか否かを判断する処理、つまり分散配置完了の可否判断が行われる。そして、ポインタiと秘匿データコードの全ビット数とが一致している場合には、秘匿データコードの全てのビットが前述したステップS507〜517による分散配置処理が施されていることになるので(S519;Yes)、本加工処理を終了する。 In the subsequent step S519, a process for determining whether or not the value of the pointer i has reached the end (last bit) of the number of bits of the secret data code that is the target of the distributed arrangement process, that is, whether or not the distributed arrangement has been completed is determined. Is called. When the pointer i matches the total number of bits of the secret data code, all the bits of the secret data code have been subjected to the distributed arrangement processing in steps S507 to S517 described above ( S519; Yes), this processing ends.
これに対して、ポインタiと秘匿データコードの全ビット数とが一致していない場合には、秘匿データコードにはまだ分散配置処理が施されていないビットが残存することになるので(S519;No)、ステップS511によりポインタiをカウントアップして再度ステップS513による疑似乱数発生処理を行う。 On the other hand, when the pointer i and the total number of bits of the secret data code do not match, the bits that have not yet been distributed and arranged remain in the secret data code (S519; No), the pointer i is counted up in step S511, and the pseudo-random number generation process in step S513 is performed again.
このようにステップS513〜S517による処理を秘匿データコードの全ビットに対して繰り返し行うことにより、本来、1ビット目、2ビット目、3ビット目、…、(n−1)ビット目、nビット目というように順番に並ぶ各ビット情報が、不規則的に変動する疑似乱数Rに従った位置にRビット目にそれぞれ移動してしまう。このため、ステップS500による所定の加工処理が終了すると、例えば、図14(B) に示すように、分散配置処理が施される前の秘匿データコードα,β(図14(A) )は、いずれもビット単位でバラバラに分解されて秘匿データコード片として分散して再配置され、また、埋め草コードも同様に分散配置処理よってビット単位でバラバラに分解されるため、秘匿データコード片と混在した状態で、空き領域内に再配置される。 Thus, by repeating the processing in steps S513 to S517 for all the bits of the secret data code, the first bit, the second bit, the third bit,..., The (n−1) th bit, the n bit Each piece of bit information arranged in order, such as an eye, moves to the position corresponding to the random number R that fluctuates irregularly. Therefore, when the predetermined processing process in step S500 is completed, for example, as shown in FIG. 14B, the secret data codes α and β (FIG. 14A) before the distributed arrangement process is performed. Both are disassembled in bit units and distributed and rearranged as confidential data code fragments, and the padded grass code is also disassembled into bits in the same manner by distributed allocation processing. In this state, it is rearranged in the free area.
これにより、暗号化されている秘匿データコードがさらにスクランブルされてしまうので、セキュリティの強度を一層高めることが可能となる。 As a result, the encrypted secret data code is further scrambled, so that the security can be further enhanced.
なお、本加工処理では、このようなステップS507〜S517による分散配置処理に代えて、例えば、ビット位置を変換可能なビット位置変換テーブル(変換テーブル)に基づくビットの並替えでも良い。具体的には、例えば、1ビット目を4ビット目に、2ビット目を13ビット目に、3ビット目を1ビット目に、4ビット目を2ビット目に、5ビット目を15ビット目に、6ビット目を11ビット目に、7ビット目を8ビット目に、8ビット目を3ビット目に、9ビット目を10ビット目に、10ビット目を6ビット目に、11ビット目を12ビット目に、12ビット目を5ビット目に、13ビット目を9ビット目に、14ビット目を16ビット目に、15ビット目を7ビット目に、16ビット目を14ビット目に、それぞれ位置を変換するビット位置変換テーブルを設けその変換規則に従ってビット位置を変換する。これにより、例えば、16ビット構成のデータ「1001011011010110」(96D6h)は、「0101101101100001」(5A61h)に変換される。 In this processing, instead of such distributed arrangement processing in steps S507 to S517, for example, bit rearrangement based on a bit position conversion table (conversion table) that can convert bit positions may be used. Specifically, for example, the 1st bit is the 4th bit, the 2nd bit is the 13th bit, the 3rd bit is the 1st bit, the 4th bit is the 2nd bit, the 5th bit is the 15th bit 6th bit to 11th bit, 7th bit to 8th bit, 8th bit to 3rd bit, 9th bit to 10th bit, 10th bit to 6th bit, 11th bit To the 12th bit, 12th bit to 5th bit, 13th bit to 9th bit, 14th bit to 16th bit, 15th bit to 7th bit, 16th bit to 14th bit Each bit position conversion table for converting the position is provided to convert the bit position according to the conversion rule. Thereby, for example, data “1001011011010110” (96D6h) having a 16-bit configuration is converted into “0101101101100001” (5A61h).
また、このようなビット位置変換テーブルを通すことによって、例えば、先の例では、16進表記のデータ「96D6h」が、「5A61h」に変換されることから、秘匿データコードを構成するビットにより特定されるデータ値、そのものを所定のデータ値変換テーブル(変換テーブル)に基づいて変換する技術的思想として把握することができる。なお、このデータ値の変換は、例えば、入力データXを2倍にしてから1を減算して出力Y(=X×2−1)するといった所定のデータ値変換式によっても可能である。 In addition, by passing through such a bit position conversion table, for example, in the above example, the data “96D6h” in hexadecimal notation is converted to “5A61h”, so that it is specified by the bits constituting the secret data code. It can be grasped as a technical idea that the data value itself is converted based on a predetermined data value conversion table (conversion table). This data value conversion can also be performed by a predetermined data value conversion formula, for example, by doubling the input data X and subtracting 1 to output Y (= X × 2-1).
さらに、例えば、ビット位置を所定ビット数だけLSB側に循環してシフトするように、循環シフトレジスタを通しても良い。先の16ビット構成のデータ例では、「1001011011010110」(96D6h)は、「0110100101101101」(696Dh)に変換される。勿論、シフト量は4ビットに限られることはなく、16ビット構成の場合には、1ビット〜15ビットのうちのいずれでも良く、またシフト方向もMSB側であっても良い。なお、ここで例示した16ビット構成の16ビットは、上述した暗号化データのビット数と復号キー検査データのビット数の和mに相当するものである。なお、図14(D) には、上述したような分散配置処理以外のビットの並替えやビット値の変換によるフォーマット例(暗号化データ+復号キー検査データ)が図示されている(図14(E) は、比較として第2実施形態のコード生成処理により生成された秘匿コードの構成例である。)。 Further, for example, a cyclic shift register may be used so that the bit position is cyclically shifted to the LSB side by a predetermined number of bits. In the previous 16-bit data example, “1001011011010110” (96D6h) is converted to “0110100101101101” (696Dh). Of course, the shift amount is not limited to 4 bits. In the case of a 16-bit configuration, any of 1 to 15 bits may be used, and the shift direction may be on the MSB side. Note that the 16 bits of the 16-bit configuration illustrated here correspond to the sum m of the number of bits of the encrypted data and the number of bits of the decryption key check data described above. FIG. 14 (D) shows a format example (encrypted data + decryption key check data) based on bit rearrangement and bit value conversion other than the above-described distributed arrangement processing (FIG. 14 (D)). E) is a configuration example of a secret code generated by the code generation process of the second embodiment as a comparison.
また、前述したステップS507では、開示データコードと暗号化データとを2バイト単位で排他的論理和(EXOR)演算を行いその結果Sを求め、それをステップS509により疑似乱数のシード値にセットしたが、開示データコードに代えて、当該QRコードQに付随する固有情報、例えば、誤り訂正レベル(L,M,Q,H)や型番(1〜40)を用いて暗号化データとを排他的論理和(EXOR)演算を行いその結果Sを求めても良い。なお、誤り訂正レベルや型番の詳細や仕様は、例えば、日本工業規格(JIS)の二次元コードシンボル−QRコード−基本仕様(JIS X 0510:2004)に従う。 In step S507, the disclosed data code and the encrypted data are subjected to an exclusive OR (EXOR) operation in units of 2 bytes to obtain a result S, which is set as a pseudorandom seed value in step S509. However, in place of the disclosed data code, the encrypted data is exclusive using unique information accompanying the QR code Q, for example, error correction level (L, M, Q, H) or model number (1-40). A logical sum (EXOR) operation may be performed to obtain S as a result. The details and specifications of the error correction level and model number conform to, for example, the Japanese Industrial Standard (JIS) two-dimensional code symbol-QR code-basic specification (JIS X 0510: 2004).
ここで、図12に戻ると、ステップS500により所定の加工処理が終了した後は、続くステップS133により秘匿データコードを付加され、さらにステップS134により秘匿データコードが含まれているか否かを判断する処理が行われる。 Returning to FIG. 12, after the predetermined processing process is completed in step S500, a secret data code is added in the subsequent step S133, and further, it is determined whether or not a secret data code is included in step S134. Processing is performed.
即ち、ステップS134では、秘匿データコードが含まれている場合には(S134;Yes)、前述したステップS132により埋め草コードが既に付加されていることから、続くステップS135による埋め草コードの付加が不要となる。このため、このような場合には、ステップS135による処理をスキップしてステップS137に処理を移行する。これに対し、秘匿データコードが含まれていない場合、つまり開示データコードのみの場合には(S134;No)、まだ埋め草コードが付加されていないため、続くステップS135により埋め草コードを付加してから、ステップS137に処理を移行する。 That is, in step S134, if a secret data code is included (S134; Yes), since the padding code has already been added in step S132 described above, the padding code is added in the subsequent step S135. It becomes unnecessary. For this reason, in such a case, the process by step S135 is skipped and the process proceeds to step S137. On the other hand, if the secret data code is not included, that is, only the disclosed data code (S134; No), the padding code is not added yet, so the padding code is added in the subsequent step S135. Then, the process proceeds to step S137.
そして、ステップS137により、誤り訂正コードを付加する処理が行われると、図14(A)〜(C)に示すフォーマットのデータコードが生成されるため、続くステップS139によりこのようなデータコードに基づいて各セルを生成して図4に示して説明したデータブロックに配置される。 Then, when the process of adding an error correction code is performed in step S137, a data code having the format shown in FIGS. 14A to 14C is generated. Based on such a data code in subsequent step S139. Each cell is generated and arranged in the data block described with reference to FIG.
以上説明したように、本第3実施形態に係るQRコードプリンタ10によると、MPU11により実行されるコード生成処理によって生成されるQRコードQでは、ステップS500による加工処理により秘匿データコードに所定の加工を施して、終端識別コードの後、または終端識別情報により特定される終端位置の後、に配置する。これにより、秘匿データコードは、所定の加工を施されて当該秘匿データコードの存在がわからないように加工されているので、たとえ終端識別コードの後等を読み取る試みがなされても、秘匿データコードが配置されていることすらわからないので、セキュリティの強度を一層高めることができる。
As described above, according to the
なお、上述した第3実施形態では、ステップS113の後に、開示データおよび秘匿データを並び替える処理(図2に示すS115相当)を介在させていないが、印刷データに、第三者に開示するデータ(開示データ)と、第三者には秘密にして隠しておきたいデータ(秘匿データ)と、が含まれており、これらがデータレコード中で混在している場合に、ステップS111により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行っても良い。これにより、例えば、パソコン1から送られてくる印刷データのレコードに、開示データA、秘匿データα、開示データB、秘匿データβの順に並ぶデータが含まれていた場合には、ステップS115により、開示データA、開示データB、秘匿データα、秘匿データβの順に並び替える処理を行うことにより、開示データと秘匿データとがそれぞれまとめられるので、後のステップ121による終端識別コードの付加処理や、ステップS125による秘匿識別コードの付加処理等が容易になる。
In the third embodiment described above, the process of rearranging the disclosed data and the confidential data (corresponding to S115 shown in FIG. 2) is not interposed after step S113, but the data disclosed to the third party in the print data. (Disclosure data) and data (secret data) that the third party wants to keep secret and concealed are included, and when these are mixed in the data record, “ Based on the “positional information indicating the positional relationship in the data record of the confidential data”, the order of the data may be switched to perform a process of dividing into a collection of disclosed data and a collection of confidential data. Thereby, for example, when the print data record sent from the
次に、上述の例とは異なるQRコードリーダ20による他のQRコードのデコード処理を図15〜図17を参照して説明する。なお、ここで説明する他のQRコードは、図14(B) 等を参照して前述したように、秘匿データコードα,β等に所定の加工を施して空き領域に詰めるフォーマットを採るものである。
Next, another QR code decoding process by the
なお、図15に示すデコード処理のフローチャートにおいて、既に説明したデコード処理(図10)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図16に示す復号化処理のフローチャートにおいて、既に説明した復号化処理(図11)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。 In the decoding process flowchart shown in FIG. 15, processing steps that are substantially the same as the processing steps that constitute the decoding process (FIG. 10) that has already been described are assigned the same reference numerals, and detailed descriptions thereof are omitted. Also, in the flowchart of the decoding process shown in FIG. 16, the processing steps that are substantially the same as the processing steps constituting the decoding process (FIG. 11) already described are assigned the same reference numerals and detailed description thereof is omitted.
図15に示すように、デコード処理は、QRコードリーダ20の電源投入により起動する制御回路40およびメモリ35によって開始され、ステップS201により初期設定処理が行われると、ステップS205により所定時間を経過した後(S205;Yes)、またはステップS209により復号キーを受信した後(S209;Yes)、ステップS213により画像データを取得する。そして、ステップS215,S217,S219,S221によりQRコードQを画像認識してステップS223により誤り訂正可能であるか否かを判断して、誤り訂正可能であると判断できる場合には(S223;OK)、誤り訂正をした後、ステップS300”により復号化処理(図16)を行う。
As shown in FIG. 15, the decoding process is started by the
図16に示すように、ステップS300”の復号化処理では、ステップS301〜S313により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)が見つかると(S305’;Yes)、ステップS315,S317,S319によりカウンタnが指すn番目のデータコードを取得してそれが秘匿識別コードであるか否かをステップS321により判断する。そして、秘匿識別コードであると判断すると(S321;Yes)、続くステップS323によりコード数jを取得した後、ステップS600による所定の抽出処理が行われる。 As shown in FIG. 16, in the decoding process of step S300 ″, the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) in steps S301 to S313. If found (S305 ′; Yes), the nth data code pointed to by the counter n is obtained in steps S315, S317, and S319, and it is determined whether or not it is a secret identification code in step S321. If it is determined that it is a code (S321; Yes), the number j of codes is acquired in the subsequent step S323, and then a predetermined extraction process in step S600 is performed.
なお、ステップS321により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータHSTに対して当該QRコードQには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータHSTでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので秘匿データコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータHSTに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。 When it is determined in step S321 that the secret identification code is arranged, for example, the host computer HST is notified that the secret identification code is arranged in the QR code Q. You may do it. As a result, the host computer HST can recognize that the data code behind the terminal identification code is a secret data code. In addition, in the code area after the termination identification code (the empty area of the code area) where only the padding code is originally placed, it is other than the padding code and is not a secret data code (for example, it corresponds to the padding code due to data corruption) In this case, since the information indicating that the data is a secret data code is not output to the host computer HST, a malfunction that may be caused by decoding something other than the secret data code is prevented. be able to.
ここで、ステップS600による所定の抽出処理を図17を参照して説明する。なお、図17に示す所定の抽出処理は、既に第3実施形態で説明した所定の加工処理(図13)と情報処理の内容が類似しているので、所定の加工処理を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。 Here, the predetermined extraction process in step S600 will be described with reference to FIG. The predetermined extraction process shown in FIG. 17 is similar in content to the predetermined processing (FIG. 13) already described in the third embodiment, so that the processing steps constituting the predetermined processing are Substantially the same processing steps are denoted by the same reference numerals, and detailed description thereof is omitted.
図17に示すように、所定の抽出処理では、ステップS501によりポインタiをゼロクリアする処理、ステップS503により終端位置よりも後に存在する空き領域のビット数n(図14(A)〜(C)参照)を求める処理、ステップS505により暗号化データのビット数と復号キー検査データのビット数との和m(図14(D),(E)参照)を求める処理、ステップS507により開示データコードと暗号化データとを2バイト単位で排他的論理和(EXOR)演算を行いその結果Sを求める処理、がそれぞれ順番に行われ、続くステップS509により疑似乱数のシード値にセットする処理が行われる。 As shown in FIG. 17, in the predetermined extraction process, the pointer i is cleared to zero in step S501, and the number of bits n in the empty area existing after the end position in step S503 (see FIGS. 14A to 14C). ) For obtaining the sum m (see FIGS. 14D and 14E) of the number of bits of the encrypted data and the number of bits of the decryption key check data in step S505, and the disclosed data code and encryption in step S507 A process of performing an exclusive OR (EXOR) operation on the digitized data in units of 2 bytes and obtaining the result S is sequentially performed, and a process of setting the seed value of the pseudo random number is performed in subsequent step S509.
このステップS509によりセットされるシード値は、第3実施形態で説明したように、所定の演算により疑似乱数を発生させるための種であり、このシード値が同じであれば、発生する乱数はまったく同じものとなる。このため、同一のQRコードQであれば、所定の加工処理(図13)のシード値と本抽出処理のシード値とは、同じ値となり、次のステップS513による疑似乱数の値およびその発生順も同じになる。 As described in the third embodiment, the seed value set in step S509 is a seed for generating a pseudo-random number by a predetermined operation. If this seed value is the same, the generated random number is not at all. It will be the same. For this reason, if the QR code Q is the same, the seed value of the predetermined processing (FIG. 13) and the seed value of the main extraction process are the same value, and the value of the pseudo random number and the generation order thereof in the next step S513. Will be the same.
ステップS513により疑似乱数Rを求める処理が行われ、ステップS515により既に発生した疑似乱数Rと同じ値であると判断されない場合には(S515;No)、続くステップS617により、空き領域のRビット目の値を暗号化データバッファのiビット目(ポインタiが指し示すビットの位置)にセットする処理が行われる。 If the process of obtaining the pseudo random number R is performed in step S513 and it is not determined that the value is the same as the pseudo random number R that has already been generated in step S515 (S515; No), the R bit of the free area is determined in the subsequent step S617. Is set to the i-th bit (bit position indicated by the pointer i) of the encrypted data buffer.
即ち、第3実施形態の所定の加工処理では、ステップS517により、暗号化データのiビット目(ポインタiが指し示すビットの位置)の値を空き領域のRビット目にセットする処理を行うことによって、例えば、1ビット目の値を空き領域のRビット目にセットしたが、本抽出処理のステップS617では、これとは逆に、空き領域のRビット目の値を暗号化データバッファのiビット目(ポインタiが指し示すビットの位置)にセット、例えば、空き領域のRビット目の値を暗号化データバッファの1ビット目にセットする。 That is, in the predetermined processing of the third embodiment, in step S517, the value of the i-th bit (the position of the bit pointed by the pointer i) of the encrypted data is set to the R-bit of the empty area. For example, although the value of the first bit is set to the R bit of the free area, in step S617 of this extraction process, on the contrary, the value of the R bit of the free area is set to the i bit of the encrypted data buffer. For example, the R bit value of the empty area is set to the first bit of the encrypted data buffer.
これにより、第3実施形態の所定の加工処理により空き領域のRビット目にセットされた暗号化データのiビット目の値は、本抽出処理によって、暗号化データバッファのiビット目にセットされるので、ビット単位でバラバラに分解された秘匿データコード片等を元通りに復元することが可能となる。つまり、ステップS617等では集約復元処理が可能となる。 As a result, the i-th bit value of the encrypted data set in the R bit of the empty area by the predetermined processing of the third embodiment is set in the i-th bit of the encrypted data buffer by this extraction process. Therefore, it is possible to restore the secret data code pieces and the like that have been disassembled separately in bit units. That is, in step S617 and the like, the aggregate restoration process can be performed.
そして、ステップS519により、ポインタiと秘匿データコードの全ビット数とが一致している場合には、秘匿データコードの全てのビットが前述したステップS507〜517による集約復元処理が施されていることになるので(S519;Yes)、本加工処理を終了する。これに対して、ポインタiと秘匿データコードの全ビット数とが一致していない場合には、秘匿データコードにはまだ復元処理が施されていないビットが残存することになるので(S519;No)、ステップS511によりポインタiをカウントアップして再度ステップS513による疑似乱数発生処理を行う。 If it is determined in step S519 that the pointer i matches the total number of bits of the secret data code, all the bits of the secret data code have been subjected to the aggregation restoration process in steps S507 to 517 described above. (S519; Yes), the present processing is terminated. On the other hand, when the pointer i and the total number of bits of the secret data code do not match, the bits that have not yet been restored remain in the secret data code (S519; No). ), The pointer i is counted up in step S511, and the pseudo-random number generation process in step S513 is performed again.
ここで、図16に戻ると、ステップS600により所定の抽出処理が終了した後、ステップS325により文字数(j)分だけデータコードを取得し、続くステップS329’によりj番目の復号キー検査データ(鍵特定情報)を取得する。 Returning to FIG. 16, after the predetermined extraction process is completed in step S600, the data code is acquired for the number of characters (j) in step S325, and the j-th decryption key check data (key key) is acquired in the subsequent step S329 ′. Specific information).
そして、ステップS329’により取得した復号キー検査データに基づいて、先のステップS209によりホストコンピュータHSTから受信した復号キーがこのj番目の秘匿データコードの暗号化データを解読する鍵として適合しているか否かの判断をステップS331により行い、当該復号キーが適合していると判断した場合には(S331;Yes)、続くステップS333により暗号化データを解読する。 Then, based on the decryption key check data acquired in step S329 ′, whether the decryption key received from the host computer HST in previous step S209 is suitable as a key for decrypting the encrypted data of the j-th secret data code It is determined whether or not the decryption key is suitable (S331; Yes), and the encrypted data is decrypted in the subsequent step S333.
これに対して、ステップS331に当該復号キーが適合していると判断できない場合には(S331;No)、当該n番目の秘匿データコードを解読することなく、本復号化処理を終了する。ステップS335により、秘匿データコードを復号する処理が行われると、図15に示すステップS300”を終えてデコード処理を終了する。 On the other hand, if it cannot be determined in step S331 that the decryption key is compatible (S331; No), the decryption process is terminated without decrypting the n-th secret data code. When the process of decoding the secret data code is performed in step S335, step S300 ″ shown in FIG. 15 is finished and the decoding process is ended.
なお、本抽出処理では、このようなステップS507〜S617による集約復元処理に代えて、例えば、ビット位置を逆方向に変換可能なビット位置逆変換テーブルに基づくビットの並替えでも良い。具体的には、例えば、第3実施形態で説明したビット位置逆変換テーブルにおいては、1ビット目を3ビット目に、2ビット目を4ビット目に、3ビット目を8ビット目に、4ビット目を1ビット目に、5ビット目を12ビット目に、6ビット目を10ビット目に、7ビット目を15ビット目に、8ビット目を7ビット目に、9ビット目を13ビット目に、10ビット目を9ビット目に、11ビット目を6ビット目に、12ビット目を11ビット目に、13ビット目を2ビット目に、14ビット目を16ビット目に、15ビット目を5ビット目に、16ビット目を14ビット目に、それぞれ位置を変換するビット位置逆変換テーブルを設けその逆変換規則に従ってビット位置を変換する。これにより、例えば、16ビット構成のデータ「0101101101100001」(5A61h)は、元の「1001011011010110」(96D6h)に変換される。 In this extraction process, for example, bit rearrangement based on a bit position reverse conversion table that can convert bit positions in the reverse direction may be used instead of the aggregation restoration process in steps S507 to S617. Specifically, for example, in the bit position inverse conversion table described in the third embodiment, the first bit is the third bit, the second bit is the fourth bit, the third bit is the fourth bit, 5th bit to 12th bit, 6th bit to 10th bit, 7th bit to 15th bit, 8th bit to 7th bit, 9th bit to 13th bit The 10th bit is the 9th bit, the 11th bit is the 6th bit, the 12th bit is the 11th bit, the 13th bit is the 2nd bit, the 14th bit is the 16th bit, 15th bit A bit position reverse conversion table for converting the position is provided for the 5th bit and the 16th bit to the 14th bit, and the bit position is converted according to the reverse conversion rule. Thereby, for example, data “0101101101100001” (5A61h) having a 16-bit configuration is converted into the original “1001011011010110” (96D6h).
また、このようなビット位置逆変換テーブルを通すことに代えて、秘匿データコードを構成するビットにより特定されるデータ値を逆方向に変換可能なデータ値逆変換テーブルを用いても良い。例えば、第3実施形態で説明したデータ値変換テーブルの例においては、16進表記のデータ「96D6h」が「5A61h」に変換されることから、これを逆方向の、「5A61h」を「96D6h」に逆変換可能な所定のデータ値逆変換テーブルに基づいて変換することで、復元処理が可能となる。 Further, instead of passing such a bit position reverse conversion table, a data value reverse conversion table capable of converting the data value specified by the bits constituting the secret data code in the reverse direction may be used. For example, in the example of the data value conversion table described in the third embodiment, the data “96D6h” in hexadecimal notation is converted to “5A61h”, so that “5A61h” in the reverse direction is converted to “96D6h”. By performing conversion based on a predetermined data value reverse conversion table that can be converted back to, restoration processing can be performed.
さらに、このようなビット位置逆変換テーブルを通すことに代えて、秘匿データコードを構成するビットにより特定されるデータ値を逆方向に変換可能なデータ値逆変換式を用いても良い。例えば、第3実施形態で説明した所定のデータ値変換式の例においては、入力データXを2倍にしてから1を減算して出力Y(=X×2−1)しているので、これとは逆に、入力データX’に1を加算した結果を2で除算して出力Y’(=(X’+1)/2)することで、復元処理が可能となる。 Further, instead of passing through such a bit position reverse conversion table, a data value reverse conversion formula capable of converting the data value specified by the bits constituting the secret data code in the reverse direction may be used. For example, in the example of the predetermined data value conversion formula described in the third embodiment, the input data X is doubled and then 1 is subtracted to output Y (= X × 2-1). On the other hand, the result of adding 1 to the input data X ′ is divided by 2 and output Y ′ (= (X ′ + 1) / 2), thereby enabling restoration processing.
さらに、第3実施形態で説明した循環シフトレジスタを通す場合に対しては、所定の加工処理とは逆方向にシフトする循環シフトレジスタを復元処理に用いることで、復元処理が可能となる。例えば、先の16ビット構成のデータ例では、所定の加工処理においてLSB側に4ビットシフトさせることで「1001011011010110」(96D6h)を「0110100101101101」(696Dh)に変換したので、これを、復元処理では、逆方向のMSB側に4ビットシフトさせることで、「1001011011010110」(96D6h)というように元に戻すことが可能となる。 Furthermore, when the cyclic shift register described in the third embodiment is passed, the restoration process can be performed by using the cyclic shift register that shifts in the direction opposite to the predetermined processing process for the restoration process. For example, in the above 16-bit data example, “1001011011010110” (96D6h) is converted to “0110100101101101” (696Dh) by shifting 4 bits to the LSB side in a predetermined processing process. By shifting 4 bits to the MSB side in the reverse direction, it becomes possible to return to the original state such as “1001011011010110” (96D6h).
なお、ステップS509によりセットされる疑似乱数のシード値については、第3実施形態と同様に、当該QRコードQに付随する固有情報、例えば、誤り訂正レベル(L,M,Q,H)や型番(1〜40)を用いて暗号化データとを排他的論理和(EXOR)演算を行いその結果Sを求めても良い。なお、誤り訂正レベルや型番の詳細や仕様は、例えば、日本工業規格(JIS)の二次元コードシンボル−QRコード−基本仕様(JIS X 0510:2004)に従う。 As for the seed value of the pseudo random number set in step S509, as in the third embodiment, unique information associated with the QR code Q, such as an error correction level (L, M, Q, H) or model number, is used. (1-40) may be used to perform an exclusive OR (EXOR) operation on the encrypted data and the result S may be obtained. The details and specifications of the error correction level and model number conform to, for example, the Japanese Industrial Standard (JIS) two-dimensional code symbol-QR code-basic specification (JIS X 0510: 2004).
なお、ステップS303〜S313では、終端位置の前方に配置されて元来デコードされる通常のデータコード(第1のデータコード、開示データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、「第1デコード手段」に相当し得るものである。
In steps S303 to S313, a process of obtaining and decoding a normal data code (first data code, disclosed data code) that is arranged in front of the end position and originally decoded is performed. Therefore, the
また、ステップS321では、ステップS319により取得されたn番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このため、このステップS321を実行する制御回路40等は、「データコード判断手段」や「秘匿識別コード判断手段」に相当し得るものである。さらに、ステップS333を実行する制御回路40等は、「復号手段」に相当し得るものである。
In step S321, processing for determining whether or not the nth data code acquired in step S319 is a secret identification code is performed. Therefore, the
さらに、ステップS319,S323〜S335では、終端位置の後方に配置されて、本来はデコードされないデータコード(第2のデータコード、秘匿データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、「第2デコード手段」に相当し得るものである。
Further, in steps S319 and S323 to S335, a process of acquiring and decoding a data code (second data code, secret data code) that is arranged behind the end position and is not originally decoded is performed. Therefore, the
以上説明したように、本構成のQRコードリーダ20によると、本来、データコードが配置されない終端識別コードの後のコード領域(コード領域の空き部分)等に、所定の加工が施された秘匿データコード(第2のデータコード)が配置されていても、この第2のデータコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。
As described above, according to the
また、上述したデコード処理では、ステップS329’によりj番目の復号キー検査データを取得するように構成したが、例えば、第3実施形態で述べたように、ステップS113の後に、開示データおよび秘匿データを並び替える処理(図2に示すS115相当)を介在させて、ステップS111により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行った場合には、ステップS329’に代えて、秘匿データコードから「開始桁」を分離してこの分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置するように構成しても良い。 In the decoding process described above, the j-th decryption key check data is acquired in step S329 ′. For example, as described in the third embodiment, after step S113, disclosed data and confidential data are acquired. The order of the data is changed based on the “positional information indicating the positional relationship in the data record of the confidential data” received in step S111 through the process of rearranging the data (corresponding to S115 shown in FIG. 2). In the case where the process of dividing into a group of secret data and a group of secret data is performed, instead of step S329 ′, the “start digit” is separated from the secret data code and the secret data is based on the separated “start digit”. Even if the secret data obtained by decoding (decoding) the code is arranged in the positional relationship in the data record before being encoded, There.
これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。この場合、「秘匿データコードから「開始桁」を分離する」処理を実行する制御回路40等は、「位置情報分離手段」に相当し得る。また、「この分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置する」処理を実行する制御回路40等は、「データ配置手段」に相当し得る。
As a result, even if the positional relationship in the data record before being coded as a code word is mixed before and after, the decoded data is arranged in the positional relationship before coding based on this positional information. be able to. In this case, the
次に、上述の例とは異なるQRコードリーダ20によるQRコードQのデコード処理を図18および図19を参照して説明する。なお、ここで説明するQRコードQは、これまで第1実施形態〜第3実施形態において説明した各秘匿データコードを含むQRコードを意味する。
Next, QR code Q decoding processing by the
なお、ここでは、デコード処理のフローチャートは図示しないが、図6、図10や図15に示されるステップS300,S300’,S300”の各復号処理を図18に示す復号処理に置き換えることで、これらのデコード処理を本構成に適用することができる。また、図18に示す復号化処理のフローチャートにおいて、既に説明した復号化処理(図11)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。 Note that although the flowchart of the decoding process is not shown here, the decoding processes in steps S300, S300 ′, and S300 ″ shown in FIGS. 6, 10, and 15 are replaced with the decoding processes shown in FIG. 18 can be applied to this configuration, and in the flowchart of the decoding process shown in Fig. 18, the processing steps that are substantially the same as the processing steps that constitute the decoding processing (Fig. 11) already described. Are denoted by the same reference numerals, and detailed description thereof is omitted.
図18に示すように、復号化処理は、S305’により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)でないと判断すると(S305’;No)、ステップS307,S309により文字数i分のデータコードを取得した後、ステップS310により開示データコードをデコードするか否かを判断する。 As shown in FIG. 18, the decoding process determines that the end position is not the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) (S305 ′). No), after obtaining the data code for the number of characters i in steps S307 and S309, it is determined whether or not to decode the disclosed data code in step S310.
即ち、このステップS310では、後で図19を参照して説明する「読取フラグS」の状態((1) 開示データコードだけをデコードするフラグS=1、(2) 秘匿データコードだけをデコードするフラグS=2、(3) 開示データコードと秘匿データコードの双方をデータコードするフラグS=0)に基づいて、開示データコードを復号する情報が当該読取フラグSにセットされているか否かを判断する。この読取フラグSは、例えば、QRコードリーダ20を構成するメモリ35の所定領域またはレジスタに設定されるもので、後述する読取フラグ設定処理(図19参照)により設定される。
That is, in this step S310, the state of “read flag S” described later with reference to FIG. 19 ((1) flag S = 1 for decoding only the disclosed data code, (2) decoding only the secret data code. Flag S = 2, (3) flag S = 0 for data coding of both the disclosed data code and the secret data code), whether or not the information for decoding the disclosed data code is set in the reading flag S to decide. This reading flag S is set, for example, in a predetermined area or register of the
そして、(1) 開示データコードだけをデコードするフラグS=1、または(3) 開示データコードと秘匿データコードの双方をデータコードするフラグS=0が読取フラグにセットされている場合)には(S310;Yes)、続くステップS311により開示データコードを復号する処理を行い、(2) 秘匿データコードだけをデコードするフラグS=2が読取フラグにセットされている場合には(S310;No)、続くステップS311により開示データコードを復号する処理をスキップして、ステップS313,S303等により次のデータコードを取得する処理を行う。 (1) When the flag S = 1 for decoding only the disclosed data code or (3) The flag S = 0 for data encoding both the disclosed data code and the confidential data code is set in the reading flag) (S310; Yes), the process of decoding the disclosed data code is performed in the following step S311. (2) When the flag S = 2 for decoding only the secret data code is set in the reading flag (S310; No) Then, the process of decoding the disclosed data code is skipped in the subsequent step S311, and the process of acquiring the next data code is performed in steps S313, S303 and the like.
一方、ステップS301〜S313により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)が見つかると(S305’;Yes)、ステップS314により秘匿データコードをデコードするか否かを判断する。 On the other hand, when the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) is found in steps S301 to S313 (S305 ′; Yes), the confidential data is determined in step S314. Determine whether to decode the code.
即ち、このステップS314は、前述したステップS310とは反対に、秘匿データコードをデコードするか否かを読取フラグSに基づいて判断する。つまり、(2) 秘匿データコードだけをデコードするフラグS=2、または(3) 開示データコードと秘匿データコードの双方をデータコードするフラグS=0が読取フラグにセットされている場合には(S314;Yes)、続くステップS315〜S335により秘匿データコードを復号する処理を行い、(1) 開示データコードだけをデコードするフラグS=1が読取フラグにセットされている場合には(S314;No)、本復号処理を終了する。 That is, in step S314, contrary to step S310 described above, it is determined based on the read flag S whether or not the secret data code is to be decoded. In other words, when (2) the flag S = 2 for decoding only the secret data code or (3) the flag S = 0 for data encoding both the disclosed data code and the secret data code is set in the reading flag ( (S314; Yes), the process of decoding the secret data code is performed in the following steps S315 to S335. (1) When the flag S = 1 for decoding only the disclosed data code is set in the reading flag (S314; No) ), This decoding process is terminated.
ここで、読取フラグ設定処理を図19を参照して説明する。なお、この読取フラグ設定処理は、例えば、当該QRコードリーダ20を構成するハードウェアの各種設定状態(例えば、ビープ音のオンオフ、液晶表示器46のバックライトのオンオフ等)を変更、解除または初期化する場合に起動されるメンテナンスプログラムに含まれるもので、通常のデコード処理(図6、図10や図15)には含まれないものである。なおここでは、メンテナンスプログラムによるメンテナンス処理のフローチャートおよびその説明は省略する。
Here, the reading flag setting process will be described with reference to FIG. The reading flag setting process is performed by changing, canceling, or initializing various setting states (for example, on / off of a beep sound, on / off of the backlight of the
図19に示すように、読取フラグ設定処理では、まずステップS901により読取フラグSに0(S=0)をセットする等の所定の初期化処理を行った後、ステップS903によりタイマー値をクリアする処理が行われる。このタイマーは、次のステップS905により所定時間を経過したか否かを判断するためにカウントされるものである。 As shown in FIG. 19, in the reading flag setting process, first, a predetermined initialization process such as setting the reading flag S to 0 (S = 0) is performed in step S901, and then the timer value is cleared in step S903. Processing is performed. This timer is counted to determine whether or not a predetermined time has passed in the next step S905.
そして、ステップS905により所定時間を経過していないと判断した場合には(S905;No)、続くステップS907によりコマンドを受信したか否かを判断する処理が行われる。このコマンドは、例えば、前述したメンテナンスプログラムにおいて、ホストコンピュータHSTから受信したり、当該QRコードリーダ20を構成する操作スイッチ42から入力されたりするものである。
If it is determined in step S905 that the predetermined time has not elapsed (S905; No), processing is performed to determine whether or not a command has been received in subsequent step S907. For example, this command is received from the host computer HST or input from the
ステップS907によりコマンドを受信したと判断しない(受信していないと判断した)場合には(S907;No)、ステップS905により再び所定時間を経過しているか否かを判断する。これに対し、コマンドを受信したと判断した場合には(S907;Yes)、続くステップS909により受信したコマンドの内容を判断する処理が行われる。 If it is not determined at step S907 that the command has been received (it is determined that it has not been received) (S907; No), it is determined again at step S905 whether the predetermined time has elapsed. On the other hand, when it is determined that a command has been received (S907; Yes), processing for determining the content of the received command is performed in the subsequent step S909.
即ち、ステップS909により、当該コマンドが(1) 開示データコードだけをデコードするものである場合には、ステップS911により読取フラグSに「1」をセットし(S=1)、当該コマンドが(2) 秘匿データコードだけをデコードするものである場合には、ステップS913により読取フラグSに「2」をセットする(S=2)。これに対し、当該コマンドがこれらのいずれでもない場合には、読取フラグSを「0」のままにして、本読取フラグ設定処理を終了する。つまり、この場合には、前述したステップS901によりデフォルトで設定されている「0」をそのまま引き継ぐことで、(3) 開示データコードと秘匿データコードの双方をデータコードする読取フラグSを維持する。 That is, if the command is to decode only the disclosed data code (1) in step S909, “1” is set to the reading flag S in step S911 (S = 1), and the command is (2 If only the secret data code is to be decoded, “2” is set to the reading flag S in step S913 (S = 2). On the other hand, if the command is none of these, the reading flag S is kept “0” and the reading flag setting process is terminated. In other words, in this case, “0” set by default in step S901 described above is used as it is, and (3) the reading flag S for data coding of both the disclosed data code and the secret data code is maintained.
ステップS911,S913により読取フラグがセットされると、本読取フラグ設定処理を終了する。なお、ステップS310,S314は、「デコード機能選択手段」に相当し得るものである。また、ステップS311は、「第1のデータコードのデコード機能」に相当し、ステップS335は、「第2のデータコードのデコード機能」に相当し得るものである。 When the reading flag is set in steps S911 and S913, the reading flag setting process is terminated. Note that steps S310, S314 is may correspond to "decode function selection means". Further, step S311 may correspond to “decoding function of first data code”, and step S335 may correspond to “decoding function of second data code”.
以上説明したように、本構成に係るQRコードリーダ20によると、当該QRコードリーダ20の使用者は、開示データコードをデコードするか、秘匿データコードのデコードするか、の少なくとも一方を選択することができるので、例えば、秘匿データコードは読んでも開示データコードを読みたくない場合や、それとは逆に、開示データコードは読んでも秘匿データコードを読みたくない場合に、不要なデコード処理によるデコード時間を削減することができる。したがって、デコード時間を短縮することができる。
As described above, according to the
なお、上述した実施形態のなかには、例えば、第1実施形態(図2)や第2実施形態(図8)で説明したように、コード生成処理のステップS119において誤り訂正コードを生成しているものがあるが、必ずしもこのステップS119で誤り訂正コードを生成する必要はなく、例えば、当該ステップS119に相当する処理(誤り訂正コード生成処理)を、誤り訂正コードを付加する処理(ステップS137)とともにまたはその前段階で実行するように、コード生成処理の流れを構成しても良い。 In the above-described embodiments, for example, as described in the first embodiment (FIG. 2) or the second embodiment (FIG. 8), an error correction code is generated in step S119 of the code generation process. However, it is not always necessary to generate an error correction code in step S119. For example, a process corresponding to step S119 (error correction code generation process) is performed together with a process of adding an error correction code (step S137) or The flow of code generation processing may be configured to be executed at the previous stage.
1…パソコン
10…QRコードプリンタ
11…MPU
12…メモリ
20…QRコードリーダ(二次元コードの読取装置)
35…メモリ(第1デコード手段、データコード判断手段、第2デコード手段、秘匿識別コード判断手段、秘匿情報出力手段、復号手段、鍵適合判断手段、鍵分離手段、位置情報分離手段、データ配置手段、抽出手段、デコード機能選択手段)
40…制御回路(第1デコード手段、データコード判断手段、第2デコード手段、秘匿識別コード判断手段、秘匿情報出力手段、復号手段、鍵適合判断手段、鍵分離手段、位置情報分離手段、データ配置手段、抽出手段、デコード機能選択手段)
HST…ホストコンピュータ
P…ラベル
Q…QRコード(二次元コード)
1 ...
12 ...
35. Memory (first decoding means, data code judgment means, second decoding means, secret identification code judgment means, secret information output means, decryption means, key matching judgment means, key separation means, position information separation means, data arrangement means Extraction means, decoding function selection means)
40 ... Control circuit (first decoding means, data code judging means, second decoding means, secret identification code judging means, secret information output means, decoding means, key matching judgment means, key separating means, position information separating means, data arrangement Means, extraction means, decoding function selection means)
HST ... Host computer P ... Label Q ... QR code (two-dimensional code)
Claims (2)
秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする二次元コードの生成プログラム。 A program for generating a two-dimensional code, characterized in that a secret data code encoded as a code word representing data to be concealed is arranged after the terminal identification code instead of a part or all of the padding code.
秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする二次元コード。 A two-dimensional code characterized in that a secret data code encoded as a code word representing data to be concealed is arranged after the terminal identification code instead of a part or all of the padding code.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012026480A JP5206888B2 (en) | 2007-05-29 | 2012-02-09 | Two-dimensional code generation program and two-dimensional code |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142239 | 2007-05-29 | ||
JP2007142239 | 2007-05-29 | ||
JP2012026480A JP5206888B2 (en) | 2007-05-29 | 2012-02-09 | Two-dimensional code generation program and two-dimensional code |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008041448A Division JP4924468B2 (en) | 2007-05-29 | 2008-02-22 | Two-dimensional code generation method and reader |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012089179A true JP2012089179A (en) | 2012-05-10 |
JP2012089179A5 JP2012089179A5 (en) | 2013-02-28 |
JP5206888B2 JP5206888B2 (en) | 2013-06-12 |
Family
ID=40180475
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008041448A Active JP4924468B2 (en) | 2007-05-29 | 2008-02-22 | Two-dimensional code generation method and reader |
JP2012026479A Active JP5206887B2 (en) | 2007-05-29 | 2012-02-09 | Printer for printing two-dimensional code, display device for displaying two-dimensional code, and system |
JP2012026480A Active JP5206888B2 (en) | 2007-05-29 | 2012-02-09 | Two-dimensional code generation program and two-dimensional code |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008041448A Active JP4924468B2 (en) | 2007-05-29 | 2008-02-22 | Two-dimensional code generation method and reader |
JP2012026479A Active JP5206887B2 (en) | 2007-05-29 | 2012-02-09 | Printer for printing two-dimensional code, display device for displaying two-dimensional code, and system |
Country Status (2)
Country | Link |
---|---|
JP (3) | JP4924468B2 (en) |
CN (1) | CN101320436B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135588A (en) * | 2013-04-30 | 2014-11-05 | 京瓷办公信息系统株式会社 | Image forming apparatus and image forming method |
CN105615470A (en) * | 2015-12-15 | 2016-06-01 | 宁波市铭时三维科技发展有限公司 | Science-popularizing tea pot containing two-dimensional codes and having water molecule structure |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5083344B2 (en) * | 2009-03-19 | 2012-11-28 | 株式会社デンソーウェーブ | Confidential data display and reading system using portable terminal |
JP5321507B2 (en) * | 2010-03-09 | 2013-10-23 | 株式会社デンソーウェーブ | Reading apparatus and reading system |
CN102708345B (en) | 2010-11-30 | 2018-05-25 | 电装波动株式会社 | Message code reads system, message code reading device and message code and forms medium |
SG181277A1 (en) | 2010-11-30 | 2012-06-28 | Denso Wave Inc | System for reading information code and medium on which information code is formed |
JP5790068B2 (en) * | 2010-11-30 | 2015-10-07 | 株式会社デンソーウェーブ | Information code reading system and information code reading device |
JP5969176B2 (en) * | 2011-06-15 | 2016-08-17 | 株式会社デンソーウェーブ | Information code reading system |
JP5783027B2 (en) * | 2011-12-15 | 2015-09-24 | 株式会社デンソーウェーブ | Member management system |
JP2014030320A (en) * | 2012-07-31 | 2014-02-13 | Denso Wave Inc | Vehicle charging system and vehicle charger |
JP6061075B2 (en) * | 2012-10-23 | 2017-01-18 | 株式会社テララコード研究所 | Two-dimensional code, two-dimensional code generation method, and two-dimensional code reading method |
JP6078878B2 (en) * | 2013-04-09 | 2017-02-15 | 国立大学法人 鹿児島大学 | 2D code |
JP6136688B2 (en) * | 2013-07-17 | 2017-05-31 | 株式会社デンソーウェーブ | Information code utilization system and information code reader |
US9858518B2 (en) | 2013-10-30 | 2018-01-02 | Toppan Tdk Label Co., Ltd. | Method for generating two-dimensional barcode, device for generating two-dimensional barcode, method for reading two-dimensional barcode, device for reading two-dimensional barcode, two-dimensional barcode, and program |
JP6171855B2 (en) * | 2013-10-31 | 2017-08-02 | 株式会社デンソーウェーブ | Information code and information code reader |
JP5810179B2 (en) * | 2014-01-21 | 2015-11-11 | 株式会社トッパンTdkレーベル | Two-dimensional code generation method, two-dimensional code generation device, program, two-dimensional code reading method, and two-dimensional code reading device |
CN103832090B (en) * | 2014-02-25 | 2016-04-06 | 上海天臣防伪技术股份有限公司 | The method of thermoprint Quick Response Code or pattern identification |
JP2015194811A (en) * | 2014-03-31 | 2015-11-05 | 株式会社デンソーウェーブ | Information code, information code reading device, and information code reading system |
JP5914579B2 (en) * | 2014-06-16 | 2016-05-11 | 株式会社トッパンTdkレーベル | Concealment target information concealment method, concealment target information concealment device, program, concealment target information extraction method, and concealment target information extraction device |
JP6477050B2 (en) | 2015-03-09 | 2019-03-06 | 株式会社デンソーウェーブ | Information code reading system |
CN104732137A (en) * | 2015-04-17 | 2015-06-24 | 南开大学 | Android-based method of recognizing multi-mode AES-encrypted (advanced encryption standard encrypted) QR (quick response) codes |
JP6519356B2 (en) | 2015-06-30 | 2019-05-29 | 株式会社リコー | INFORMATION PROCESSING PROGRAM, INFORMATION PROCESSING DEVICE, AND INFORMATION PROCESSING METHOD |
JP6041025B2 (en) * | 2015-08-20 | 2016-12-07 | 株式会社デンソーウェーブ | Information code reading system |
CN105976005A (en) * | 2016-04-26 | 2016-09-28 | 鸿博股份有限公司 | Two-dimensional code encrypting method, two-dimensional code generating device and two-dimensional code scanning device |
CN106066985A (en) * | 2016-07-11 | 2016-11-02 | 深圳市兴通物联科技有限公司 | Laser bar code scanner hardware circuit |
JP2019148930A (en) * | 2018-02-26 | 2019-09-05 | 株式会社オプトエレクトロニクス | Two-dimensional code, system and method for outputting two-dimensional code, system and method for reading two-dimensional code, and program |
JP2019148929A (en) | 2018-02-26 | 2019-09-05 | 株式会社オプトエレクトロニクス | Two-dimensional code, system and method for outputting two-dimensional code, system and method for reading two-dimensional code, and program |
CN108921261A (en) * | 2018-04-17 | 2018-11-30 | 新大陆(福建)公共服务有限公司 | A kind of safe two-dimensional code generation method and analytic method |
JP2020086893A (en) * | 2018-11-26 | 2020-06-04 | 合同会社Ark | Two-dimensional code evaluation system and method |
EP3684004A1 (en) * | 2019-01-21 | 2020-07-22 | Ngrave bvba | Offline interception-free interaction with a cryptocurrency network using a network-disabled device |
CN110277069B (en) * | 2019-06-27 | 2021-09-14 | 广东海信电子有限公司 | Television screen backlight control method and device and television |
JP7488460B2 (en) * | 2020-07-10 | 2024-05-22 | 株式会社デンソーウェーブ | Method for generating two-dimensional code, two-dimensional code, and two-dimensional code reader |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004147006A (en) * | 2002-10-23 | 2004-05-20 | Sharp Corp | Information transmitting method and portable terminal |
JP2005165565A (en) * | 2003-12-01 | 2005-06-23 | Kenpakku:Kk | Color code symbol and color code symbol generating method and storage medium for generating color code symbol |
JP2006166388A (en) * | 2004-12-06 | 2006-06-22 | Masayuki Tonai | Method of canceling boundary by anteriorly disposing blank bit string |
JP2007241327A (en) * | 2006-03-03 | 2007-09-20 | Namco Bandai Games Inc | Program, information storage medium, two-dimensional code generation system, image generation system and two-dimensional code |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004094510A (en) * | 2002-08-30 | 2004-03-25 | Inst Of Physical & Chemical Res | False display preventing method in merchandise circulation and alternation preventing function added label writing device used for the same |
CN100433053C (en) * | 2005-08-26 | 2008-11-12 | 毛山 | Two-dimensional bar code based information transfer method and encoding/decoding device |
-
2008
- 2008-02-22 JP JP2008041448A patent/JP4924468B2/en active Active
- 2008-05-29 CN CN200810144647.6A patent/CN101320436B/en active Active
-
2012
- 2012-02-09 JP JP2012026479A patent/JP5206887B2/en active Active
- 2012-02-09 JP JP2012026480A patent/JP5206888B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004147006A (en) * | 2002-10-23 | 2004-05-20 | Sharp Corp | Information transmitting method and portable terminal |
JP2005165565A (en) * | 2003-12-01 | 2005-06-23 | Kenpakku:Kk | Color code symbol and color code symbol generating method and storage medium for generating color code symbol |
JP2006166388A (en) * | 2004-12-06 | 2006-06-22 | Masayuki Tonai | Method of canceling boundary by anteriorly disposing blank bit string |
JP2007241327A (en) * | 2006-03-03 | 2007-09-20 | Namco Bandai Games Inc | Program, information storage medium, two-dimensional code generation system, image generation system and two-dimensional code |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104135588A (en) * | 2013-04-30 | 2014-11-05 | 京瓷办公信息系统株式会社 | Image forming apparatus and image forming method |
CN105615470A (en) * | 2015-12-15 | 2016-06-01 | 宁波市铭时三维科技发展有限公司 | Science-popularizing tea pot containing two-dimensional codes and having water molecule structure |
Also Published As
Publication number | Publication date |
---|---|
CN101320436B (en) | 2012-12-05 |
JP5206888B2 (en) | 2013-06-12 |
JP4924468B2 (en) | 2012-04-25 |
JP2012089178A (en) | 2012-05-10 |
JP5206887B2 (en) | 2013-06-12 |
JP2009009547A (en) | 2009-01-15 |
CN101320436A (en) | 2008-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5206888B2 (en) | Two-dimensional code generation program and two-dimensional code | |
US8879737B2 (en) | Method for producing two-dimensional code and reader for reading the two-dimensional code | |
JP4924206B2 (en) | Two-dimensional code generation method and reader | |
JP5023949B2 (en) | Two-dimensional code and its reading device | |
JP6450479B2 (en) | Anti-counterfeiting method | |
WO2014098128A1 (en) | Information code, information code generation method, information code reader device, and information code usage system | |
JP5731071B2 (en) | Two-dimensional code authentication device, two-dimensional code generation device, two-dimensional code authentication method, and program | |
KR101160914B1 (en) | Certificating qualifying goods terminal using certificating qualifying goods label, the system and method for certificating qualifying goods | |
JP2019148930A (en) | Two-dimensional code, system and method for outputting two-dimensional code, system and method for reading two-dimensional code, and program | |
US20120280029A1 (en) | Incremental information object with an embedded information region | |
JP5196046B2 (en) | Two-dimensional code generating program and two-dimensional code | |
EP2000950B1 (en) | Method for producing two-dimensional code and reader for reading the two-dimensional code | |
JP2017002898A (en) | Remote diagnosis for vacuum device | |
JP2007265354A (en) | Method for displaying two-dimensional code, qr code, display medium, program and two-dimensional code reader | |
CN110197243A (en) | Two dimensional code, two dimensional code output system and method, two dimensional code read system and method | |
CN201047933Y (en) | Random cipher digital display keyboard | |
JP5196045B2 (en) | Printer for printing two-dimensional code, display device for displaying two-dimensional code, and system | |
JP2020086893A (en) | Two-dimensional code evaluation system and method | |
JP6136688B2 (en) | Information code utilization system and information code reader | |
JP2010146461A (en) | Reading device for bar code symbol | |
JP6265288B2 (en) | Information code generation method, information code, information code reader, and information code utilization system | |
JP7488460B2 (en) | Method for generating two-dimensional code, two-dimensional code, and two-dimensional code reader | |
JP2015194811A (en) | Information code, information code reading device, and information code reading system | |
JP2018055237A (en) | Information code generating method, information code, and information code using system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130108 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130204 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160301 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5206888 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |