JP2012089179A - Creating program of two-dimensional code, and two-dimensional code - Google Patents

Creating program of two-dimensional code, and two-dimensional code Download PDF

Info

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
Application number
JP2012026480A
Other languages
Japanese (ja)
Other versions
JP5206888B2 (en
JP2012089179A5 (en
Inventor
Masahiro Hara
昌宏 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Wave Inc
Original Assignee
Denso Wave Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Wave Inc filed Critical Denso Wave Inc
Priority to JP2012026480A priority Critical patent/JP5206888B2/en
Publication of JP2012089179A publication Critical patent/JP2012089179A/en
Publication of JP2012089179A5 publication Critical patent/JP2012089179A5/ja
Application granted granted Critical
Publication of JP5206888B2 publication Critical patent/JP5206888B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide structure related to a two-dimensional code in which a user who reads the two-dimensional code by using a reading device of general specifications cannot recognize the presence of secret data.SOLUTION: In two-dimensional codes generated by code generation processing, secrete data codes are arranged after a terminal identification code instead of a portion or whole part of a filler code by a step S133. With this, since the secrete data codes arranged after the terminal identification code are not a reading target of a reading device of general specifications, even if the two-dimensional codes including such secrete data codes are read by the reading device of general specifications, the presence of data to be made secrete by the secrete data codes is not recognized. In this way, a user of the reading device of general specifications can be prevented from recognizing the presence of secret data.

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 Patent Document 1 below. In this prior art, the mobile terminal on the transmission side encrypts transmission data with the encryption key input from the key input device, converts it into a QR code (registered trademark), generates a QR code, and displays it on the screen of the display device. (Patent Document 1; paragraphs 0020 and 0021, FIG. 4).

これに対し、受信側の携帯端末では、送信側の携帯端末の画面に表示された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 (Patent Document 1; paragraph 0022, FIG. 5).

特開2004−147006号公報JP 2004-147006 A

しかしながら、上記特許文献1に開示される「情報送信方法及び携帯端末」によると、暗号化されているものをQRコードに逆変換した場合には、通常、暗号化されたデータそのものは文字情報として意味をなさないものであるため、携帯端末等の画面に表示される情報は意味不明なものであったり、画面表示の制御等に影響を与え得る制御コードに相当する情報であったりする。   However, according to the “information transmission method and portable terminal” disclosed in Patent Document 1, when the encrypted data is reversely converted into a QR code, the encrypted data itself is usually used as character information. Since the information does not make sense, the information displayed on the screen of the mobile terminal or the like may be unclear or may be information corresponding to a control code that may affect the control of the screen display.

このため、意味不明な情報である場合には、当該携帯端末等の使用者に不信感を与え得るという問題や、それが暗号化された情報であることを認識し得る使用者には対しては、解読を試みようとする不用意な動機を与える可能性があることから、セキュリティ上の問題を生じ得る。   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 claim 2 is arranged in the code area when the total number of disclosed data codes encoded as code words representing the disclosed data is less than the capacity that can be accommodated in the code area where the code word is to be arranged. In addition, the end identification code indicating the end of the code string formed by the disclosed data code is disposed at the end of the code string, and a two-dimensional code in which a padding code that does not represent data is disposed in an empty portion of the code area. Thus, the secret data code encoded as a code word representing the data to be concealed is arranged after the terminal identification code instead of a part or all of the padding code.

請求項1の発明によって生成される二次元コードは、秘匿するデータを表すコード語としてコード化された秘匿データコードを埋め草コードの一部または全部に代えて、終端識別コードの後に配置する。一般に、二次元コードの読取装置は、二次元コードのデコード処理において、コード領域に配置されたデータコードの先頭からコード列の終端を示す終端識別コードまでを読み取ってデコードするアルゴリズム仕様に設定されているため、通常、終端識別コードの後に配置される埋め草コード等は読み取りの対象にならない。このため、終端識別コードの後に、埋め草コードの一部または全部に代えて配置されるデータコードは、たとえそれが読み取り可能なコード語であっても、一般仕様の読取装置ではデコードすることはないので、終端識別コードの後に秘匿したいデータコード(秘匿データコード)を配置することにより、終端識別コードの前に配置されたデータコードは読み取ることはできても、当該秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからないので、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。 The two-dimensional code generated by the invention of claim 1 is arranged after the terminal identification code instead of a part or all of the padding code with the secret data code encoded as a code word representing the data to be concealed. Generally, a two-dimensional code reader is set to an algorithm specification that reads and decodes from the beginning of a data code arranged in a code area to a terminal identification code indicating the end of a code string in a two-dimensional code decoding process. Therefore, normally, a padding code or the like placed after the terminal identification code is not a target of reading. For this reason, a data code arranged in place of part or all of the padding code after the terminal identification code cannot be decoded by a general-purpose reader, even if it is a readable code word. Since there is no data code (secret data code) to be concealed after the terminal identification code, the data code arranged before the terminal identification code can be read, but the secret data code cannot be read. Can not. Therefore, even if a general-purpose reader reads a two-dimensional code including such a secret data code, the existence of data to be concealed by the secret data code is not known. Can prevent the presence of confidential data.

請求項2の発明によれば、請求項1と同様の効果を奏する二次元コードを実現できる。  According to the invention of claim 2, a two-dimensional code having the same effect as that of claim 1 can be realized.

図1(A) は、本発明の第1実施形態に係るQRコードプリンタとそれに接続されるパソコンとを示す説明図で、図1(B) は、当該QRコードプリンタのハードウェア構成例を示すブロック図である。FIG. 1A is an explanatory diagram showing a QR code printer and a personal computer connected thereto according to the first embodiment of the present invention, and FIG. 1B shows a hardware configuration example of the QR code printer. It is a block diagram. 第1実施形態に係るQRコードプリンタにより実行されるコード生成処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the code production | generation process performed with the QR code printer which concerns on 1st Embodiment. 図2に示すコード生成処理により情報処理されるデータやコードのフォーマット例を示す説明図で、図3(A) は印刷データのデータレコードの例、図3(B) はステップS115により並び替えた後の例、図3(C) はステップS121〜S137により各コードを付加した後の例、図3(D) は図3(C) に示す秘匿コードの構成例1、図3(E) は図3(C) に示す秘匿コードの構成例2、図3(F) は図3(C) に示す秘匿コードの構成例3、をそれぞれ示すものである。FIGS. 3A and 3B are explanatory diagrams showing a format example of data and codes processed by the code generation processing shown in FIG. 2, FIG. 3A is an example of a data record of print data, and FIG. 3C is an example after adding each code in steps S121 to S137, FIG. 3D is a configuration example 1 of the secret code shown in FIG. 3C, and FIG. FIG. 3C shows a configuration example 2 of the secret code, and FIG. 3F shows a configuration example 3 of the secret code shown in FIG. 1型のQRコードの構成例を示す説明図である。It is explanatory drawing which shows the structural example of a 1 type QR code. QRコードリーダのハードウェア構成例を示すブロック図である。It is a block diagram which shows the hardware structural example of a QR code reader . 図5のQRコードリーダの制御回路により実行されるデコード処理の流れを示すフローチャートである。 6 is a flowchart showing a flow of decoding processing executed by a control circuit of the QR code reader of FIG. 5 . 図6に示す復号化処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the decoding process shown in FIG. 本発明の第2実施形態に係るQRコードプリンタにより実行されるコード生成処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the code production | generation process performed with the QR code printer which concerns on 2nd Embodiment of this invention. 図8に示すコード生成処理により情報処理されるデータやコードのフォーマット例を示す説明図で、図9(A) は印刷データのデータレコードの例、図9(B) はステップS115により並び替えた後の例、図9(C) はステップS121〜S137により各コードを付加した後の例、図9(D) は図9(C) に示す秘匿コードの構成例1、図9(E) は図9(C) に示す秘匿コードの構成例2、図9(F) は図9(C) に示す秘匿コードの構成例3、をそれぞれ示すものである。FIG. 9A is an explanatory diagram showing an example of data and code formats processed by the code generation process shown in FIG. 8, FIG. 9A is an example of a data record of print data, and FIG. 9B is rearranged in step S115. 9C is an example after adding each code in steps S121 to S137, FIG. 9D is a configuration example 1 of the secret code shown in FIG. 9C, and FIG. FIG. 9C shows a configuration example 2 of the secret code, and FIG. 9F shows a configuration example 3 of the secret code shown in FIG. 9C. 図6等の例とは異なるQRコードリーダの制御回路により実行されるデコード処理の流れを示すフローチャートである。 7 is a flowchart showing a flow of decoding processing executed by a control circuit of a QR code reader different from the example of FIG. 6 and the like . 図10に示す復号化処理の流れを示すフローチャートである。FIG. 11 is a flowchart showing a flow of decoding processing shown in FIG. 10. FIG. 本発明の第3実施形態に係るQRコードプリンタにより実行されるコード生成処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the code production | generation process performed with the QR code printer which concerns on 3rd Embodiment of this invention. 図12に示す加工処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process shown in FIG. 図13に示す加工処理により情報処理されるコードのフォーマット例を示す説明図で、図14(A) は第2実施形態のコード生成処理により生成されたコードの例(図9(C) 相当)、図14(B) はステップS500により分散配置処理された秘匿コードの例、図14(C) はステップS500によりビットが並替え処理またはビットの値が変換処理された秘匿コードの例、図14(D) は図14(C) に示す秘匿コードの構成例、図14(E) は、図14(D) との比較として第2実施形態のコード生成処理により生成された秘匿コードの構成例(図9(D) 相当)、をそれぞれ示すものである。FIG. 14A is an explanatory diagram showing a code format example processed by the processing shown in FIG. 13, and FIG. 14A is an example of the code generated by the code generation process of the second embodiment (corresponding to FIG. 9C). 14B is an example of a secret code that has been distributed and arranged in step S500. FIG. 14C is an example of a secret code in which bits are rearranged or bit values converted in step S500. 14D is a configuration example of the secret code shown in FIG. 14C, and FIG. 14E is a configuration example of the secret code generated by the code generation processing of the second embodiment as a comparison with FIG. 14D. (Corresponding to FIG. 9D). 図6、図10等の例とは異なるQRコードリーダの制御回路により実行されるデコード処理の流れを示すフローチャートである。 11 is a flowchart showing a flow of decoding processing executed by a control circuit of a QR code reader different from the examples of FIGS. 図15に示す復号化処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the decoding process shown in FIG. 図16に示す抽出処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the extraction process shown in FIG. 図6、図10、図15等の例とは異なるQRコードリーダの制御回路により実行されるデコード処理の流れを示すフローチャートである。 16 is a flowchart showing a flow of decoding processing executed by a control circuit of a QR code reader different from the examples of FIG. 6, FIG. 10, FIG . 図18のQRコードリーダの制御回路により実行される読取フラグ設定処理の流れを示すフローチャートである。 FIG. 19 is a flowchart showing a flow of read flag setting processing executed by the control circuit of the QR code reader of FIG. 18. FIG .

以下、本発明の実施形態について図を参照して説明する。なお、以下説明する各実施形態では、二次元コードの例として、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 QR code printer 10 according to the first embodiment of the present invention will be described with reference to FIG. FIG. 1A is an explanatory diagram showing a QR code printer 10 according to the first embodiment and a personal computer (hereinafter referred to as “personal computer”) 1 connected thereto, and FIG. FIG. 4B is a block diagram showing an example of the hardware configuration of the QR code printer 10.

図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 QR code printer 10 is connected to the personal computer 1 via the cable 5 so that it can be output from the personal computer 1 and input to the QR code printer 10. It has a function of generating a QR code based on character data such as symbols (hereinafter collectively referred to as “print data”) and printing it on a label P or the like. Here, the “QR code” is in accordance with the Japanese Industrial Standard (JIS) two-dimensional code symbol-QR code-basic specification (JIS X 0510: 2004).

パソコン1は、パソコン本体2およびディスプレイ3により構成されており、パソコン本体2は、図略の、MPU、メインメモリ(主記憶装置)、ハードディスク(補助記憶装置)、入出力インタフェース、通信インタフェース、キーボード、ポインティングデバイス等からなる情報処理装置で、またディスプレイ3は、パソコン本体2に接続されることによりパソコン本体2から出力される情報を画面表示可能な情報表示装置である。   The personal computer 1 includes a personal computer main body 2 and a display 3. The personal computer main body 2 includes an MPU, a main memory (main storage device), a hard disk (auxiliary storage device), an input / output interface, a communication interface, a keyboard (not shown). The display 3 is an information display device capable of displaying information output from the personal computer main body 2 when connected to the personal computer main body 2 on the screen.

なお、このパソコン本体2には、QRコードプリンタ10のデバイスドライバがインストールされて(組み込まれて)おり、当該パソコン1の利用者が、QRコードとしてラベルPに印刷したい文字等を含んだ印刷データを、パソコン本体2からQRコードプリンタ10に対して任意に出力可能にしている。   The personal computer main body 2 has a device driver for the QR code printer 10 installed (incorporated), and the user of the personal computer 1 includes print data including characters or the like that the user wants to print on the label P as a QR code. Can be arbitrarily output from the personal computer main body 2 to the QR code printer 10.

これに対し、QRコードプリンタ10は、図1(B) に示すように、主に、MPU11、メモリ12、インタフェース13、ローラ制御部14、ヘッド制御部15、ローラ17、ヘッド18等から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。   On the other hand, as shown in FIG. 1B, the QR code printer 10 mainly includes an MPU 11, a memory 12, an interface 13, a roller control unit 14, a head control unit 15, a roller 17, a head 18, and the like. ing. These are mounted on a printed wiring board (not shown) or housed in a housing (not shown).

MPU11は、QRコードプリンタ10全体を制御可能なマイクロコンピュータ(以下「マイコン」という)で、メモリバスを介して接続されるメモリ12とともに情報処理装置を構成し得るもので情報処理機能を有する。このMPU11には、メモリ12のほかに、インタフェース13、ローラ制御部14やヘッド制御部15も接続されている。なお、後述するコード生成処理は、このMPU11およびメモリ12により実行される。   The MPU 11 is a microcomputer capable of controlling the entire QR code printer 10 (hereinafter referred to as “microcomputer”) and can constitute an information processing apparatus together with a memory 12 connected via a memory bus, and has an information processing function. In addition to the memory 12, an interface 13, a roller control unit 14, and a head control unit 15 are connected to the MPU 11. A code generation process to be described later is executed by the MPU 11 and the memory 12.

メモリ12は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ12のうちのRAMには、前述したパソコン1から送られてくる文字データを蓄積するバッファ領域のほか、MPU11が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述のコード生成処理等を実行可能な所定プログラムやその他、ローラ制御部14やヘッド制御部15等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。   The memory 12 is a semiconductor memory device, and corresponds to, for example, a RAM (DRAM, SRAM, etc.) or a ROM (EPROM, EEPROM, etc.). In the RAM of the memory 12, in addition to the buffer area for storing the character data sent from the personal computer 1 described above, it is possible to secure a work area used by the MPU 11 for each processing such as arithmetic operation and logical operation. It is configured. The ROM stores in advance a predetermined program that can execute a code generation process and the like that will be described later, and a system program that can control each piece of hardware such as the roller control unit 14 and the head control unit 15.

インタフェース13は、前述したパソコン1のパソコン本体2から送られてくる印刷データ等を受信可能にする入力インタフェースで、シリアルバス等を介してMPU11に接続されている。このインタフェース13を介してMPU11に入力された印刷データは、コード生成処理によって後述するように情報処理されてコード化される。   The interface 13 is an input interface that enables reception of print data and the like sent from the personal computer main body 2 of the personal computer 1 described above, and is connected to the MPU 11 via a serial bus or the like. The print data input to the MPU 11 via the interface 13 is processed and coded as will be described later by a code generation process.

ローラ制御部14は、ローラ17の駆動機構(図略)を制御し得る制御装置で、シリアルバス等を介してMPU11に接続されている。これにより、MPU11から受けた制御信号に従ってローラ17の回転の開始や停止あるいは回転方向等を制御している。   The roller control unit 14 is a control device that can control a driving mechanism (not shown) of the roller 17 and is connected to the MPU 11 via a serial bus or the like. Thus, the start and stop of rotation of the roller 17 or the direction of rotation is controlled according to the control signal received from the MPU 11.

ヘッド制御部15は、例えば、感熱用紙からなるラベルに対して任意のパターンを印刷し得るサーマルヘッドで、シリアルバス等を介してMPU11に接続されている。本実施形態では、後述のコード生成処理によって生成されたQRコードを感熱ラベルに印刷可能にするもので、前述したローラ制御部14による感熱ラベルの紙送りタイミングに同期して、QRコードを構成する位置検出パターン、タイミングパターンやデータコード等を当該ラベルに印刷する。   The head controller 15 is a thermal head that can print an arbitrary pattern on a label made of thermal paper, for example, and is connected to the MPU 11 via a serial bus or the like. In the present embodiment, the QR code generated by the code generation process described later can be printed on the thermal label, and the QR code is configured in synchronization with the paper feed timing of the thermal label by the roller control unit 14 described above. The position detection pattern, timing pattern, data code, etc. are printed on the label.

なお、以下、ヘッド制御部15として、サーマルヘッドの場合を例示して説明するが、QRコードを印刷できるものであれば、例えば、インクジェット用やドットインパクト用のヘッドでも良いし、また印刷機構として、レーザプリンタやLEDプリンタ等であっても良い。   In the following, the case of a thermal head will be described as an example of the head control unit 15. However, as long as a QR code can be printed, for example, an inkjet head or a dot impact head may be used. A laser printer, an LED printer, or the like may be used.

このようにQRコードプリンタ10を構成することによって、パソコン1から出力されて当該QRコードプリンタ10に入力された印刷データは、インタフェース13を介してメモリ12のバッファ領域に一旦蓄えられた後、次に説明するコード生成処理に渡される。ここで、コード生成処理を図2〜図4を参照して説明する。なお、図2には、コード生成処理の流れを示すフローチャートが図示されている。また図3には、図2に示すコード生成処理により情報処理されるデータやコードのフォーマット例が図示されている。さらに図4には、1型のQRコードの構成例が図示されている。   By configuring the QR code printer 10 in this way, the print data output from the personal computer 1 and input to the QR code printer 10 is temporarily stored in the buffer area of the memory 12 via the interface 13, and then It is passed to the code generation process described in (1). Here, the code generation process will be described with reference to FIGS. FIG. 2 is a flowchart showing the flow of code generation processing. FIG. 3 shows a format example of data and code processed by the code generation process shown in FIG. Further, FIG. 4 shows a configuration example of a type 1 QR code.

図2に示すように、コード生成処理は、QRコードプリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、まずステップS101により初期設定処理が行われる。この処理は、メモリ12の作業領域や印刷データを蓄えるバッファ領域をクリアしたり、所定のフラグやカウンタ等をクリアする。   As shown in FIG. 2, the code generation process is started by the MPU 11 and the memory 12 that are activated when the QR code printer 10 is turned on. First, an initial setting process is performed in step S101. This process clears the work area of the memory 12 and the buffer area for storing print data, and clears predetermined flags and counters.

ステップ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 personal computer 1 includes data related to encryption or the like in the next step S111. For example, whether or not 1 second has elapsed as a predetermined time. If the data related to encryption is not sent from the personal computer 1 by the time elapsed, the process proceeds to step S109 as the predetermined time elapses (S107; Yes).

これに対し、所定時間が経過していない場合には(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 personal computer 1 includes data arranged in the order of disclosure data A, secret data α, disclosure data B, and secret data β. If this is the case, in step S115, the order of these data is changed, and as shown in FIG. 3B, a process of rearranging the disclosed data A, the disclosed data B, the secret data α, and the secret data β is performed. As a result, the disclosed data and the confidential data are collected together, so that the terminal identification code addition processing in step 121 and the confidential identification code addition processing in step S125 are facilitated.

次のステップ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 personal computer 1 in step S111, since there is an encryption key (S129; Yes), the process proceeds to step S131 and the encryption process is performed. On the other hand, if the encryption key has not been received from the personal computer 1 in step S111, there is no encryption key (S129; No), so the encryption process in step S131 is skipped and the process proceeds to step S133.

なお、ステップ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 personal computer 1 holds the encryption key in an information storage medium such as the memory 12 or the hard disk in advance (S129; Yes). In step S131, encryption processing is performed.

ステップ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 QR code printer 10 according to the first embodiment, in the QR code Q generated by the code generation process executed by the MPU 11, the secret data code is set as one of the padding codes in step S133. Instead of part or all, it is arranged after the end identification code. As a result, the secret data code placed after the terminal identification code is not subject to reading by a general-purpose reader, so a two-dimensional code including such a secret data code is read by a general-purpose reader. However, the existence of data to be concealed by the secret data code is not known. Accordingly, it is possible to prevent the user of the general-purpose reading apparatus from recognizing the existence of confidential data.

よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。   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 QR code printer 10 has been described. However, the present invention is not limited to this, and the QR code Q is visually displayed. For example, the code generation process shown in FIG. 2 may be executed by the personal computer main body 2 to display the QR code Q on the display 3. In this case, since the code generation process can be conceptualized as a computer program, for example, “capacity that the total number of disclosed data codes encoded as code words representing data to be disclosed can be accommodated in a code area in which code words are to be arranged. If not, the end identification code indicating the end of the code string formed by the disclosed data code arranged in the code area is arranged at the end of the code string, and data is not represented in the empty part of the code area. A program for causing a computer to function as a two-dimensional code generating device for placing a padding code, wherein a secret data code encoded as a code word representing data to be concealed is part or all of the padding code Instead of the terminal identification code, the two-dimensional code generation program is arranged after the terminal identification code. Lamb. "To be able to grasp that can be represented technical idea. As a result, the computer functioning as a two-dimensional code generation device using the two-dimensional code generation program has the same operations and effects as the MPU 11 and the like of the QR code printer 10 described above.

また、上述した第1実施形態では、QRコードプリンタ10にパソコン1を接続して当該パソコン1から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、QRコードプリンタ10に接続する構成を採っても上述した作用および効果を得ることができる。   In the first embodiment described above, the configuration in which the personal computer 1 is connected to the QR code printer 10 and print data is sent from the personal computer 1 has been described as an example. However, character data such as alphanumeric characters, kanji characters, and symbols is output. If the information processing apparatus is capable, the above-described operations and effects can be obtained even when a digital camera, a mobile phone, a handheld computer, a handy terminal, or the like having such a function is connected to the QR code printer 10. be able to.

次に、QRコードリーダ20の構成を説明する。このQRコードリーダ20は、第1実施形態で説明したQRコードプリンタ10により印刷されたQRコードQをデコード可能なQRコードリーダ20である。なお、QRコードリーダ20によりデコード可能なQRコードQの構成は、図3および図4を参照して既に説明しているので、ここでは説明を割愛する。 Next, the configuration of the QR code reader 20 will be described. The QR code reader 20 is a QR code reader 20 that can decode the QR code Q printed by the QR code printer 10 described in the first embodiment. The configuration of the QR code Q that can be decoded by the QR code reader 20 has already been described with reference to FIG. 3 and FIG.

まず、QRコードリーダ20の構成を図5を参照して説明する。なお、図5には、QRコードリーダのハードウェア構成例を示すブロック図が図示されている。 First , the configuration of the QR code reader 20 will be described with reference to FIG. FIG. 5 is a block diagram illustrating a hardware configuration example of the QR code reader .

図5に示すように、QRコードリーダ20は、主に、照明光源21、受光センサ23、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示器46等のマイコン系と、電源スイッチ41、バッテリ49等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されており、ハードウェア的には一般仕様のQRコードリーダ(読取装置)と同様に構成されている。   As shown in FIG. 5, the QR code reader 20 mainly includes an optical system such as an illumination light source 21, a light receiving sensor 23, and an imaging lens 27, a memory 35, a control circuit 40, an operation switch 42, a liquid crystal display 46, and the like. And a power supply system such as a power switch 41 and a battery 49. These are mounted on a printed wiring board (not shown) or housed in a housing (not shown), and are configured in the same manner as a QR code reader (reading device) of general specifications in hardware.

光学系は、照明光源21、受光センサ23、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。この構成では、受光センサ23を挟んだ両側に照明光源21が設けられており、図略のケースの読取口を介してラベルPに向けて照明光Lfを照射可能に構成されている。このラベルPには、第1実施形態で説明したQRコードQが印刷されている。 The optical system includes an illumination light source 21, a light receiving sensor 23, an imaging lens 27, and the like. The illumination light source 21 functions as an illumination light source capable of emitting illumination light Lf, and includes, for example, a red LED and a diffusion lens, a condensing lens, and the like provided on the emission side of the LED. In this configuration , the illumination light sources 21 are provided on both sides of the light receiving sensor 23, and the illumination light Lf can be irradiated toward the label P through a reading port of a case (not shown). The QR code Q described in the first embodiment is printed on the label P.

受光センサ23は、ラベルPやQRコードQに照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。受光センサ23は、結像レンズ27を介して入射する入射光をこの受光面23aで受光可能に図略のプリント配線板に実装されている。   The light receiving sensor 23 is configured to receive the reflected light Lr irradiated and reflected on the label P or the QR code Q. For example, a light receiving element which is a solid-state imaging element such as a C-MOS or CCD is two-dimensionally arranged. The arranged area sensor corresponds to this. The light receiving sensor 23 is mounted on a printed wiring board (not shown) so that incident light incident through the imaging lens 27 can be received by the light receiving surface 23a.

結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。   The imaging lens 27 functions as an imaging optical system capable of condensing incident light incident from the outside via a reading port and forming an image on the light receiving surface 23a of the light receiving sensor 23. And a plurality of condensing lenses housed in the lens barrel.

次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路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 amplification circuit 31, an A / D conversion circuit 33, a memory 35, an address generation circuit 36, a synchronization signal generation circuit 38, a control circuit 40, an operation switch 42, an LED 43, a buzzer 44, a liquid crystal display 46, and a communication interface 48. Etc. As the name suggests, this microcomputer system is composed of a control circuit 40 and a memory 35 that can function as a microcomputer.

光学系の受光センサ23から出力される画像信号は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。   An image signal output from the light receiving sensor 23 of the optical system is amplified by a predetermined gain by being input to the amplification circuit 31 and then converted from an analog signal to a digital signal when input to the A / D conversion circuit 33. Is done. When the digitized image signal, that is, image data is input to the memory 35, it is stored in the image data storage area. The synchronization signal generation circuit 38 is configured to generate a synchronization signal for the light receiving sensor 23 and the address generation circuit 36. The address generation circuit 36 is based on the synchronization signal supplied from the synchronization signal generation circuit 38. Thus, the storage address of the image data stored in the memory 35 can be generated.

メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述するデコード処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。   The memory 35 is a semiconductor memory device, and corresponds to, for example, a RAM (DRAM, SRAM, etc.) or a ROM (EPROM, EEPROM, etc.). In addition to the above-described image data storage area, the RAM of the memory 35 is configured so as to be able to secure a work area used by the control circuit 40 during each processing such as arithmetic operation and logical operation. In addition, the ROM stores in advance a predetermined program capable of executing a decoding process described later, a system program capable of controlling each hardware such as the illumination light source 21 and the light receiving sensor 23, and the like.

制御回路40は、QRコードリーダ20全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなり、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置と接続可能に構成されており、本構成の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等が接続されている。 The control circuit 40 is a microcomputer capable of controlling the entire QR code reader 20 and includes a CPU, a system bus, an input / output interface, and the like, and can constitute an information processing apparatus together with the memory 35 and has an information processing function. The control circuit 40 is configured to be connectable to various input / output devices via a built-in input / output interface. In this configuration , the power switch 41, the operation switch 42, the LED 43, the buzzer 44, and a liquid crystal display are provided. Device 46, communication interface 48, etc. are connected.

これにより、例えば、電源スイッチ41や操作スイッチ42の監視や管理、またインジケータとして機能するLED43の点灯・消灯、ビープ音やアラーム音を発生可能なブザー44の鳴動のオンオフ、さらには読み取ったQRコードQによるコード内容を画面表示可能な液晶表示器46の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース48の通信制御等を可能にしている。なお、通信インタフェース48に接続される外部装置には、当該QRコードリーダ20の上位システムに相当するホストコンピュータHST等が含まれる。   Thereby, for example, monitoring and management of the power switch 41 and the operation switch 42, turning on / off the LED 43 functioning as an indicator, turning on / off the buzzer 44 capable of generating a beep sound and an alarm sound, and further reading the QR code Screen control of the liquid crystal display 46 capable of displaying the code content by Q, communication control of the communication interface 48 enabling serial communication with an external device, and the like are enabled. The external device connected to the communication interface 48 includes a host computer HST corresponding to the host system of the QR code reader 20 and the like.

電源系は、電源スイッチ41、バッテリ49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、バッテリ49から供給される駆動電圧の導通や遮断が制御されている。なお、バッテリ49は、所定の直流電圧を発生可能な二次電池で、例えば、リチウムイオン電池等がこれに相当する。また、バッテリ49によることなく、例えば、通信インタフェース48を介して接続されるホストコンピュータHST等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該バッテリ49は不要となる。   The power supply system includes a power switch 41, a battery 49, and the like. When the power switch 41 managed by the control circuit 40 is turned on and off, the conduction of the drive voltage supplied from the battery 49 to each of the above-described devices and circuits is performed. Or shut off is controlled. The battery 49 is a secondary battery capable of generating a predetermined DC voltage, and corresponds to, for example, a lithium ion battery. Further, the battery 49 may be configured to receive power supply from an external device such as the host computer HST connected via the communication interface 48 without using the battery 49. In this case, the battery 49 is unnecessary.

このようにQRコードリーダ20を構成することによって、例えば、電源スイッチ41がオンされて所定の自己診断処理等が正常終了し、QRコードQの読み取りが可能な状態になると、照明光Lfの発光を指示する操作スイッチ42(例えばトリガースイッチ)の入力を受け付ける。これにより、利用者がトリガースイッチを引いてオンにすることで、制御回路40が同期信号を基準に照明光源21に発光信号を出力するので、当該発光信号を受けた照明光源21は、LEDを発光させて照明光Lfを照射する。   By configuring the QR code reader 20 in this way, for example, when the power switch 41 is turned on and a predetermined self-diagnosis process or the like is normally completed and the QR code Q can be read, the illumination light Lf is emitted. The input of the operation switch 42 (for example, a trigger switch) is given. Accordingly, when the user pulls the trigger switch to turn it on, the control circuit 40 outputs a light emission signal to the illumination light source 21 based on the synchronization signal, and the illumination light source 21 that has received the light emission signal turns on the LED. Light is emitted to irradiate illumination light Lf.

すると、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 imaging lens 27 through the reading port, so that the image of the QR code Q is formed on the light receiving surface 23a of the light receiving sensor 23. Is imaged. Thereby, since the image of the QR code Q exposes the light receiving sensor 23, the image data of the QR code Q subjected to the image processing by the microcomputer system described above will be described below through the image data storage area of the memory 35. Passed to the decoding process.

ここで、デコード処理を図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 type 1 QR code.

図6に示すように、デコード処理は、QRコードリーダ20の電源投入により起動する制御回路40およびメモリ35によって開始され、まずステップS201により初期設定処理が行われる。この処理は、メモリ35の作業領域や画像データを蓄える画像データ蓄積領域をクリアしたり、所定のフラグやカウンタ等をクリアする。なお、ここで説明するQRコードリーダ20は、ホストコンピュータHSTと接続されており、当該ホストコンピュータHSTから設定データとして復号キーのデータを取得するものとする。   As shown in FIG. 6, the decoding process is started by the control circuit 40 and the memory 35 that are activated when the QR code reader 20 is turned on. First, an initial setting process is performed in step S201. This process clears the work area of the memory 35 and the image data storage area for storing image data, and clears predetermined flags, counters, and the like. It is assumed that the QR code reader 20 described here is connected to the host computer HST, and obtains decryption key data from the host computer HST as setting data.

ステップ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 memory 35 is performed. Thereby, for example, a code image of QR code Q as shown in FIG. 4 is obtained.

続くステップ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 control circuit 40 or the like to perform each of these steps, which may correspond to "first decoding means."

ステップ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 control circuit 40 or the like to perform this step S321, may correspond to "data code determining means" and "secret identification code determination means".

これにより、当該データコードが秘匿識別コードであると判断した場合には(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 control circuit 40 or the like to perform this step S333 is may correspond to "decode unit".

これに対して、ステップ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 QR code reader 20 is not a decryption key that can decrypt the nth secret data code, the nth secret data code is neither decrypted nor decrypted, thereby suppressing unnecessary decryption processing. be able to. It should be noted that the control circuit 40 or the like that executes this step S331 can correspond to “key matching determination means”.

ステップ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 control circuit 40 or the like to perform each of these steps may correspond to the "second decoding means."

以上説明したように、本構成に係るQRコードリーダ20によると、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、秘匿データコード(第2のデータコード)が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、第1実施形態で説明したQRコードプリンタ10により印刷されたQRコードQを、本構成に係るQRコードリーダ20によりデコードすることができる。 As described above, according to the QR code reader 20 according to the present configuration , the secret data code (second data) is placed in the code area (empty part of the code area) after the terminal identification code where only the padding code is originally arranged. This secret data code can be decoded even if the (code) is arranged. Therefore, it is possible to decode the data code existing in the empty part of the code area where the code word is to be arranged. Therefore, the QR code Q printed by the QR code printer 10 described in the first embodiment can be decoded by the QR code reader 20 according to this configuration .

なお、上述したデコード処理では、ステップ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 QR code reader 20 does not have a decryption key (decryptable key) for the secret data code, the secret data code can be decrypted and returned to the original plaintext. In this case, the control circuit 40 or the like for executing processing "Get n-th decryption key" may correspond to "key separation means".

また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップ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 QR code reader 20 does not have a decryption key for the secret data code.

さらに、上述したデコード処理では、ステップ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 control circuit 40 or the like for executing processing "separating" starting column "from secret data code" may correspond to "positional information separating means". In addition, the control circuit 40 or the like that executes a process of “placement of the secret data obtained by decoding (decoding) the secret data code based on the separated“ start digit ”in the positional relationship in the data record before being encoded” It may correspond to the "data arrangement means".

[第2実施形態]
次に、本発明の第2実施形態に係るQRコードプリンタ10による他のQRコードの生成処理を図8および図9を参照して説明する。ここで説明する他のQRコードは、図9(C) に示すように、埋め草コード(11101100)の代わりに、任意のコード(例えば00000000や11111111)を空き領域に詰めるフォーマットを採るものである。
[Second Embodiment]
Next, another QR code generation process by the QR code printer 10 according to the second embodiment of the present invention will be described with reference to FIGS. As shown in FIG. 9 (C), the other QR code described here adopts a format in which an arbitrary code (for example, 00000000 or 11111111) is packed in an empty area instead of the padding code (11101100). .

なお、図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 MPU 11 and the memory 12 that are activated when the QR code printer 10 is turned on. When the initial setting process is performed in step S101, print data is received in step S103. To do. When the confidential data is received through steps S107 and S111, the disclosed data and the confidential data are rearranged in step S115, and each data such as the disclosed data and the confidential data is encoded in step S117, and then error correction is performed in step S119. A code is generated, and a terminal identification code is added after the disclosed data code in step S121.

なお、このような終端識別コードを開示データコードの後に付加するのではなく、例えば、図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 QR code printer 10 according to the second embodiment, in the QR code Q generated by the code generation process executed by the MPU 11, the secret data code is arranged after the end position in step S133. ing. As a result, the secret data code arranged after the end position is not subject to reading by a general-purpose reader, so even if a two-dimensional code including such a secret data code is read by a general-purpose reader. The existence of data to be concealed by the secret data code is unknown. Accordingly, it is possible to prevent the user of the general-purpose reading apparatus from recognizing the existence of confidential data.

よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。   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 QR code printer 10 has been described. However, the present invention is not limited to this, and the QR code Q is visually displayed. For example, the code generation process shown in FIG. 8 may be executed by the personal computer main body 2 to display the QR code Q on the display 3. In this case, since the code generation process can be conceptualized as a computer program, for example, “capacity that the total number of disclosed data codes encoded as code words representing data to be disclosed can be accommodated in a code area in which code words are to be arranged. If not, a termination identification code indicating the end of the code string formed by the disclosed data code arranged in the code area is arranged at the end of the code string, or the end position of the code string formed by the disclosed data code is specified. A secret data code that is a program for causing a computer to function as a two-dimensional code generation device that arranges possible end identification information at a predetermined position of the code string, and is coded as a code word representing secret data Of the termination position specified after the termination identification code or by the termination identification information. , Two-dimensional code generation program, characterized in that arranged in. "And can grasp representable technical idea. As a result, the computer functioning as a two-dimensional code generation device by this two-dimensional code generation program has the same operations and effects as the MPU 11 of the QR code printer 10 described above.

また、上述した第2実施形態では、QRコードプリンタ10にパソコン1を接続して当該パソコン1から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、QRコードプリンタ10に接続する構成を採っても上述した作用および効果を得ることができる。 In the second embodiment described above, the configuration in which the personal computer 1 is connected to the QR code printer 10 and print data is sent from the personal computer 1 has been described as an example. However, character data such as alphanumeric characters, kanji and symbols is output. If the information processing apparatus is capable, the above-described operations and effects can be obtained even when a digital camera, a mobile phone, a handheld computer, a handy terminal, or the like having such a function is connected to the QR code printer 10. be able to.

次に、上述の例とは異なるQRコードリーダ20による他のQRコードのデコード処理を図10および図11を参照して説明する。なお、「他のQRコード」とは、埋め草コード(11101100)の代わりに、任意のコード(例えば00000000や11111111)を空き領域に詰めるフォーマットを採るコードのことで、第2実施形態に係るQRコードプリンタ10により印刷されたQRコードのことである。 Next, another QR code decoding process by the QR code reader 20 different from the above example will be described with reference to FIGS. The “other QR code” is a code that adopts a format in which an arbitrary code (for example, 00000000 or 11111111) is packed in an empty area instead of the padding code (11101100), and the QR according to the second embodiment. It is a QR code printed by the code printer 10.

なお、図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 control circuit 40 and the memory 35 that are activated when the QR code reader 20 is turned on. When the initial setting process is performed in step S201, a predetermined time has passed in step S205. After (S205; Yes) or after receiving the decryption key in step S209 (S209; Yes), image data is acquired in step S213. If the QR code Q is image-recognized in steps S215, S217, S219, and S221 and it is determined whether or not error correction is possible in step S223, and if it can be determined that error correction is possible (S223; OK). ) After error correction, the decoding process (FIG. 11) is performed in step S300 ′.

図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 control circuit 40 or the like to perform each of these steps, which may correspond to "first decoding means."

また、ステップ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 control circuit 40 or the like to perform this step S321, may correspond to "data code determining means" and "secret identification code determination means". Furthermore, the control circuit 40 or the like that executes steps S331 and S333 can correspond to a “key matching determination unit” or a “decryption unit”.

さらに、ステップ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 control circuit 40 or the like to perform each of these steps, which may correspond to "second decoding means."

以上説明したように、このQRコードリーダ20によると、本来、データコードが配置されない終端位置の後のコード領域(コード領域の空き部分)に、秘匿データコード(第2のデータコード)が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、QRコードプリンタ10により印刷されたQRコードQを、このQRコードリーダ20によりデコードすることができる。 As described above, according to the QR code reader 20 , the secret data code (second data code) is arranged in the code area (empty part of the code area) after the end position where the data code is not arranged. Even so, the secret data code can be decoded. Therefore, it is possible to decode the data code existing in the empty part of the code area where the code word is to be arranged. Therefore, the QR code Q printed by the QR code printer 10 can be decoded by the QR code reader 20 .

なお、上述したデコード処理では、ステップ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 QR code reader 20 does not have a decryption key (decryptable key) for the secret data code, the secret data code can be decrypted and returned to the original plaintext. In this case, the control circuit 40 or the like for executing processing "Get n-th decryption key" may correspond to "key separation means".

また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップ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 QR code reader 20 does not have a decryption key for the secret data code.

さらに、上述したデコード処理では、ステップ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 control circuit 40 or the like for executing processing "separating" starting column "from secret data code" may correspond to "positional information separating means". In addition, the control circuit 40 or the like that executes a process of “placement of the secret data obtained by decoding (decoding) the secret data code based on the separated“ start digit ”in the positional relationship in the data record before being encoded” It may correspond to the "data arrangement means".

第3実施形態]
次に、本発明の第3実施形態に係るQRコードプリンタ10による他のQRコードの生成処理を図12〜図14を参照して説明する。ここで説明する他のQRコードは、図14(B) 等に示すように、秘匿データコードα,β等に所定の加工を施して空き領域に詰めるフォーマットを採るものである。
[ Third Embodiment]
Next, another QR code generation process by the QR code printer 10 according to the third embodiment of the present invention will be described with reference to FIGS. As shown in FIG. 14B and the like, the other QR code described here adopts a format in which the secret data codes α, β, etc. are subjected to predetermined processing and are packed in the empty area.

なお、図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 MPU 11 and the memory 12 that are activated when the QR code printer 10 is turned on. When the initial setting process is performed in step S101, print data is received in step S103. To do. Then, when the confidential data is received through steps S107 and S111, each data such as the disclosed data and the confidential data is encoded in step S117, and then the termination identification code or the like (the disclosed data code is changed after the disclosed data code in step S121 ′). Including the end position of the code string to be formed).

そして、印刷データに秘匿データが含まれている場合には(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 QR code printer 10 according to the third embodiment, the QR code Q generated by the code generation process executed by the MPU 11 performs predetermined processing on the secret data code by the processing process in step S500. And placed after the termination identification code or after the termination position specified by the termination identification information. As a result, the secret data code has been processed in a predetermined manner so that the existence of the secret data code is not known, so even if an attempt is made to read after the end identification code, the secret data code Since it is not even known that it is arranged, the strength of security can be further increased.

なお、上述した第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 personal computer 1 includes data arranged in the order of the disclosed data A, the confidential data α, the disclosed data B, and the confidential data β, the process proceeds to step S115. By performing the process of rearranging the disclosed data A, the disclosed data B, the secret data α, and the secret data β in this order, the disclosed data and the secret data are collected, respectively. The process of adding a secret identification code in step S125 is facilitated.

次に、上述の例とは異なるQRコードリーダ20による他のQRコードのデコード処理を図15〜図17を参照して説明する。なお、ここで説明する他のQRコードは、図14(B) 等を参照して前述したように、秘匿データコードα,β等に所定の加工を施して空き領域に詰めるフォーマットを採るものである。 Next, another QR code decoding process by the QR code reader 20 different from the above example will be described with reference to FIGS. The other QR codes described here adopt a format in which the secret data codes α, β, etc. are subjected to predetermined processing and packed into an empty area as described above with reference to FIG. is there.

なお、図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 control circuit 40 and the memory 35 that are activated when the QR code reader 20 is turned on. When the initial setting process is performed in step S201, a predetermined time has passed in step S205. After (S205; Yes) or after receiving the decryption key in step S209 (S209; Yes), image data is acquired in step S213. If the QR code Q is image-recognized in steps S215, S217, S219, and S221 and it is determined whether or not error correction is possible in step S223, and if it can be determined that error correction is possible (S223; OK). ) After error correction, the decoding process (FIG. 16) is performed in step S300 ″.

図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 control circuit 40 or the like to perform each of these steps, which may correspond to "first decoding means."

また、ステップ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 control circuit 40 or the like to perform this step S321, may correspond to "data code determining means" and "secret identification code determination means". Furthermore, the control circuit 40 or the like that executes Step S333 can correspond to “decoding means”.

さらに、ステップ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 control circuit 40 or the like to perform each of these steps, which may correspond to "second decoding means."

以上説明したように、本構成のQRコードリーダ20によると、本来、データコードが配置されない終端識別コードの後のコード領域(コード領域の空き部分)等に、所定の加工が施された秘匿データコード(第2のデータコード)が配置されていても、この第2のデータコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。 As described above, according to the QR code reader 20 of this configuration, the secret data in which the predetermined processing is performed on the code area (empty part of the code area) after the termination identification code where the data code is not originally arranged. Even if a code (second data code) is arranged, the second data code can be decoded. Therefore, it is possible to decode the data code existing in the empty part of the code area where the code word is to be arranged.

また、上述したデコード処理では、ステップ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 control circuit 40 or the like that executes the process of “separating the“ start digit ”from the secret data code” may correspond to “position information separating means”. In addition, the control circuit 40 or the like that executes a process of “placement of the secret data obtained by decoding (decoding) the secret data code based on the separated“ start digit ”in the positional relationship in the data record before being encoded” May correspond to “data arrangement means”.

次に、上述の例とは異なるQRコードリーダ20によるQRコードQのデコード処理を図18および図19を参照して説明する。なお、ここで説明するQRコードQは、これまで第1実施形態〜第3実施形態において説明した各秘匿データコードを含むQRコードを意味する。 Next, QR code Q decoding processing by the QR code reader 20 different from the above example will be described with reference to FIGS. The QR code Q described here means a QR code including each secret data code described in the first to third embodiments.

なお、ここでは、デコード処理のフローチャートは図示しないが、図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 memory 35 constituting the QR code reader 20, and is set by a reading flag setting process (see FIG. 19) described later.

そして、(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 liquid crystal display 46, etc.) of the hardware constituting the QR code reader 20, for example. It is included in the maintenance program that is activated in the case of conversion, and is not included in the normal decoding process (FIGS. 6, 10, and 15). Here, the flowchart of the maintenance process by the maintenance program and the description thereof are omitted.

図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 operation switch 42 constituting the QR code reader 20 in the above-described maintenance program.

ステップ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 QR code reader 20 according to this configuration , the user of the QR code reader 20 selects at least one of decoding the disclosed data code or the confidential data code. For example, if you do not want to read the disclosed data code even if you read the confidential data code, or conversely, if you do not want to read the confidential data code even if you read the disclosed data code, the decoding time by unnecessary decoding processing Can be reduced. Therefore, the decoding time can be shortened.

なお、上述した実施形態のなかには、例えば、第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 ... PC 10 ... QR code printer 11 ... MPU
12 ... Memory 20 ... QR code reader (two-dimensional code reader)
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)

開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置するとともに、前記コード領域の空き部分にデータを表さない埋め草コードを配置する二次元コードの生成装置として、コンピュータを機能させるためのプログラムであって、  When the total number of disclosed data codes encoded as code words representing data to be disclosed is less than the capacity that can be accommodated in the code area where the code word is to be arranged, the disclosed data code arranged in the code area forms A computer is caused to function as a two-dimensional code generation device that arranges an end identification code indicating the end of a code string at the end of the code string and arranges a padding code that does not represent data in an empty portion of the code area. A program for
秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする二次元コードの生成プログラム。  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.
開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置するとともに、前記コード領域の空き部分にデータを表さない埋め草コードを配置する二次元コードであって、  When the total number of disclosed data codes encoded as code words representing data to be disclosed is less than the capacity that can be accommodated in the code area where the code word is to be arranged, the disclosed data code arranged in the code area forms A two-dimensional code in which an end identification code indicating the end of a code string 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,
秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする二次元コード。  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.
JP2012026480A 2007-05-29 2012-02-09 Two-dimensional code generation program and two-dimensional code Active JP5206888B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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