JP4924468B2 - Two-dimensional code generation method and reader - Google Patents
Two-dimensional code generation method and reader Download PDFInfo
- Publication number
- JP4924468B2 JP4924468B2 JP2008041448A JP2008041448A JP4924468B2 JP 4924468 B2 JP4924468 B2 JP 4924468B2 JP 2008041448 A JP2008041448 A JP 2008041448A JP 2008041448 A JP2008041448 A JP 2008041448A JP 4924468 B2 JP4924468 B2 JP 4924468B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- data
- key
- secret
- data code
- 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.)
- Active
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
本発明は、秘密にして隠しておきたいデータ(以下「秘匿データ」または「秘匿するデータ」という)を含む二次元コードの生成方法およびその読取装置に関するものである。 The present invention relates to a method for generating a two-dimensional code including data to be kept secret and hidden (hereinafter referred to as “secret data” or “data to be concealed”) and a reading apparatus thereof.
秘匿データを含んだ二次元コードを生成したり読み取る技術として、例えば、下記特許文献1に開示される「情報送信方法及び携帯端末」がある。この従来技術では、送信側の携帯端末は、キー入力装置から入力された暗号キーにより送信データを暗号化しそれをQRコードに変換してQRコードを生成しそれを表示装置の画面に表示する(特許文献1;段落0020,0021、図4)。
As a technique for generating or reading a two-dimensional code including confidential data, for example, there is an “information transmission method and portable terminal” disclosed in
これに対し、受信側の携帯端末では、送信側の携帯端末の画面に表示されたQRコードの画像をカメラ等により読み込んでQRコードが暗号化されているか否かを判断した後、暗号化されている場合には暗号キーを要求する。そして、QRコードを逆変換するとともに入力された暗号キーにより送信データを復号して復元データを画面表示する(特許文献1;段落0022、図5)。
しかしながら、上記特許文献1に開示される「情報送信方法及び携帯端末」によると、暗号化されているものをQRコードに逆変換した場合には、通常、暗号化されたデータそのものは文字情報として意味をなさないものであるため、携帯端末等の画面に表示される情報は意味不明なものであったり、画面表示の制御等に影響を与え得る制御コードに相当する情報であったりする。
However, according to the “information transmission method and portable terminal” disclosed in
このため、意味不明な情報である場合には、当該携帯端末等の使用者に不信感を与え得るという問題や、それが暗号化された情報であることを認識し得る使用者には対しては、解読を試みようとする不用意な動機を与える可能性があることから、セキュリティ上の問題を生じ得る。 For this reason, in the case of unclear information, the problem of being distrustful to the user of the mobile terminal or the user who can recognize that it is encrypted information. Can give rise to security problems because they can be inadvertently motivated to attempt to decipher.
また、制御コードに相当する情報である場合には、画面表示が乱れたり、その他のシステム上の問題にもつながり得るという問題がある。 Further, in the case of information corresponding to a control code, there is a problem that the screen display is disturbed and may lead to other system problems.
本発明は、上述した課題を解決するためになされたもので、その目的とするところは、一般仕様の読取装置で読み取る利用者には秘匿データの存在を認識し得ない二次元コードの生成方法を提供することにある。本発明の他の目的は、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードし得る二次元コードの読取装置を提供することにある。 The present invention has been made in order to solve the above-described problems, and an object of the present invention is to generate a two-dimensional code that cannot be recognized by a user who reads with a general-purpose reading device. Is to provide. Another object of the present invention is to provide a two-dimensional code reader capable of decoding a data code existing in an empty portion of a code area where a code word is to be arranged.
上記目的を達成するため、特許請求の範囲に記載の請求項1の二次元コードの生成方法では、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置するとともに、前記コード領域の空き部分にデータを表さない埋め草コードを配置する二次元コードの生成方法であって、秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを技術的特徴とする。
In order to achieve the above object, in the two-dimensional code generation method according to
特許請求の範囲に記載の請求項2の二次元コードの生成方法では、請求項1記載の二次元コードの生成方法において、前記終端識別コードと前記秘匿データコードとの間には、後続のデータコードが前記秘匿データコードであることを示す秘匿識別コードが配置されていることを技術的特徴とする。
The two-dimensional code generation method according to
特許請求の範囲に記載の請求項3の二次元コードの生成方法では、請求項1または2記載の二次元コードの生成方法において、前記秘匿データコードは、所定の暗号化方式により暗号化されていることを技術的特徴とする。
The two-dimensional code generation method according to
特許請求の範囲に記載の請求項4の二次元コードの生成方法では、請求項3記載の二次元コードの生成方法において、前記秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵を特定可能な鍵特定情報が付加されていることを技術的特徴とする。
In the two-dimensional code generation method according to
特許請求の範囲に記載の請求項5の二次元コードの生成方法では、請求項3記載の二次元コードの生成方法において、前記秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵が付加されていることを技術的特徴とする。
The two-dimensional code generation method according to
特許請求の範囲に記載の請求項6の二次元コードの生成方法では、請求項3記載の二次元コードの生成方法において、前記秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、前記各秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵を特定可能な鍵特定情報がそれぞれに付加されていることを技術的特徴とする。
The two-dimensional code generation method according to
特許請求の範囲に記載の請求項7の二次元コードの生成方法では、請求項3記載の二次元コードの生成方法において、前記秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、前記各秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵がそれぞれに付加されていることを技術的特徴とする。
The two-dimensional code generation method according to
特許請求の範囲に記載の請求項8の二次元コードの生成方法では、請求項1〜7のいずれか一項に記載の二次元コードの生成方法において、前記開示するデータと前記秘匿するデータとが、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合、前記秘匿データコードには、前記データレコード中の位置関係を示す位置情報が付加されていることを技術的特徴とする。
In the two-dimensional code generation method according to claim 8, wherein the two-dimensional code generation method according to any one of
特許請求の範囲に記載の請求項9の二次元コードの読取装置では、データを表すコード語としてコード化されたデータコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記データコードがなすコード列の終端を示す終端識別コードがこのコード列の最後に配置されるとともに、前記コード領域の空き部分にデータを表さない埋め草コードが配置される二次元コードを読取可能な二次元コードの読取装置であって、前記終端識別コードよりも前に配置される前記データコードである第1のデータコードをデコードする第1デコード手段と、前記終端識別コードの後に第2のデータコードが配置されているか否かを判断するデータコード判断手段と、前記データコード判断手段により前記第2のデータコードが配置されていると判断した場合、前記第2のデータコードをデコードする第2デコード手段と、を備えることを技術的特徴とする。
In the two-dimensional code reader according to
特許請求の範囲に記載の請求項10の二次元コードの読取装置では、請求項9記載の二次元コードの読取装置において、前記第2のデータコードと前記終端識別コードとの間に、前記第2のデータコードが秘匿するデータを表すコード語としてコード化された秘匿データコードであることを示す秘匿識別コードが配置されている場合における請求項9記載の二次元コードの読取装置であって、前記秘匿識別コードが配置されているか否かを判断する秘匿識別コード判断手段と、前記秘匿識別コード判断手段により前記秘匿識別コードが配置されていると判断した場合、前記第2のデータコードが秘匿データである旨の情報を出力する秘匿情報出力手段と、を備えることを技術的特徴とする。
The two-dimensional code reader according to
特許請求の範囲に記載の請求項11の二次元コードの読取装置では、前記第2のデータコードが所定の暗号化方式により暗号化されている場合における請求項9または10記載の二次元コードの読取装置であって、前記暗号化された第2のデータコードを復号できる鍵を用いて前記暗号化された第2のデータコードを復号する復号手段、を備えることを技術的特徴とする。
12. The two-dimensional code reader according to
特許請求の範囲に記載の請求項12の二次元コードの読取装置では、請求項11記載の二次元コードの読取装置において、前記復号できる鍵は、当該二次元コードの読取装置が備えていることを技術的特徴とする。
The two-dimensional code reader according to
特許請求の範囲に記載の請求項13の二次元コードの読取装置では、前記復号できる鍵を特定可能な鍵特定情報が前記第2のデータコードに付加されている場合における請求項11記載の二次元コードの読取装置であって、前記鍵特定情報に基づいて、当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断する鍵適合判断手段を備え、前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵であると判断した場合にはこの鍵を用いて前記復号手段により前記第2のデータコードを復号し、前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵でないと判断した場合には前記第2のデータコードを復号しない、ことを技術的特徴とする。
14. The two-dimensional code reader according to
特許請求の範囲に記載の請求項14の二次元コードの読取装置では、前記第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されており、前記第2のデータコードには、前記暗号化されている前記第2のデータコードを復号できる鍵特定情報がそれぞれに付加されている場合における請求項13記載の二次元コードの読取装置であって、前記鍵適合判断手段は、前記各第2のデータコードについて当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断することを特徴とする。
In the two-dimensional code reader according to
特許請求の範囲に記載の請求項15の二次元コードの読取装置では、前記復号できる鍵が前記第2のデータコードに付加されている場合における請求項11記載の二次元コードの読取装置であって、前記復号できる鍵を前記第2のデータコードから分離する鍵分離手段を備え、前記鍵分離手段により分離した鍵を用いて前記復号手段により前記第2のデータコードを復号することを特徴とする。
The two-dimensional code reader according to
特許請求の範囲に記載の請求項16の二次元コードの読取装置では、前記第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されており、前記第2のデータコードには、前記暗号化されている前記第2のデータコードを復号できる鍵がそれぞれに付加されている場合における請求項15記載の二次元コードの読取装置であって、前記鍵分離手段は、前記各第2のデータコードから前記復号できる鍵を分離することを技術的特徴とする。
In the two-dimensional code reader according to claim 16, wherein there are a plurality of the second data codes, each second data code is encrypted with a different key, and the second data code is encrypted. 16. The two-dimensional code reader according to
特許請求の範囲に記載の請求項17の二次元コードの読取装置では、コード化される前のデータレコード中の位置関係を示す位置情報が前記第2のデータコードに付加されている場合における請求項9〜16のいずれか一項に記載の二次元コードの読取装置であって、前記第2のデータコードから前記位置情報を分離する位置情報分離手段と、前記第2デコード手段によりデコードされた第2のデータを前記位置情報分離手段により分離された位置情報に基づいて前記データレコード中に配置するデータ配置手段と、を備えることを技術的特徴とする。
The two-dimensional code reader according to
上記目的を達成するため、特許請求の範囲に記載の請求項18の二次元コードの生成方法では、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する二次元コードの生成方法であって、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、または前記終端識別情報により特定される前記終端位置の後、に配置することを技術的特徴とする。
In order to achieve the above object, in the two-dimensional code generation method according to
特許請求の範囲に記載の請求項19の二次元コードの生成方法では、請求項18記載の二次元コードの生成方法において、前記終端識別コードと前記秘匿データコードとの間には、後続のデータコードが前記秘匿データコードであることを示す秘匿識別コードが配置されていることを技術的特徴とする。
20. The two-dimensional code generation method according to
特許請求の範囲に記載の請求項20の二次元コードの生成方法では、請求項18または19記載の二次元コードの生成方法において、前記秘匿データコードは、所定の暗号化方式により暗号化されていることを技術的特徴とする。
The two-dimensional code generation method according to
特許請求の範囲に記載の請求項21の二次元コードの生成方法では、請求項20記載の二次元コードの生成方法において、前記秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵を特定可能な鍵特定情報が付加されていることを技術的特徴とする。
In the two-dimensional code generation method according to
特許請求の範囲に記載の請求項22の二次元コードの生成方法では、請求項20記載の二次元コードの生成方法において、前記秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵が付加されていることを技術的特徴とする。
23. The two-dimensional code generation method according to
特許請求の範囲に記載の請求項23の二次元コードの生成方法では、請求項20記載の二次元コードの生成方法において、前記秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、前記各秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵を特定可能な鍵特定情報がそれぞれに付加されていることを技術的特徴とする。
The two-dimensional code generation method according to
特許請求の範囲に記載の請求項24の二次元コードの生成方法では、請求項20記載の二次元コードの生成方法において、前記秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、前記各秘匿データコードには、前記暗号化されている前記秘匿データコードを復号できる鍵がそれぞれに付加されていることを技術的特徴とする。
25. The two-dimensional code generation method according to
特許請求の範囲に記載の請求項25の二次元コードの生成方法では、請求項18〜24のいずれか一項に記載の二次元コードの生成方法において、前記開示するデータと前記秘匿するデータとが、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合、前記秘匿データコードには、前記データレコード中の位置関係を示す位置情報が付加されていることを技術的特徴とする。
25. The two-dimensional code generation method according to claim 25 according to
特許請求の範囲に記載の請求項26の二次元コードの読取装置では、データを表すコード語としてコード化されたデータコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置される二次元コードを読取可能な二次元コードの読取装置であって、前記終端識別コードよりも前に配置される前記データコード、または前記終端識別情報により特定される前記終端位置よりも前に配置される前記データコード、である第1のデータコードをデコードする第1デコード手段と、前記終端識別コードの後または前記終端位置よりも後に第2のデータコードが配置されているか否かを判断するデータコード判断手段と、前記データコード判断手段により前記第2のデータコードが配置されていると判断した場合、前記第2のデータコードをデコードする第2デコード手段と、を備えることを技術的特徴とする。 27. The two-dimensional code reader according to claim 26, wherein the total number of data codes encoded as code words representing data is sufficient for a capacity that can be accommodated in a code area in which the code words are to be arranged. If not, a termination identification code indicating the termination of the code string formed by the data code arranged in the code area is arranged at the end of the code string, or a termination identification that can specify the termination position of the code string formed by the data code A two-dimensional code reader capable of reading a two-dimensional code arranged at a predetermined position in the code string, the data code arranged before the terminal identification code, or the terminal identification information A first decoding means for decoding a first data code, which is the data code arranged before the end position specified by: Data code determining means for determining whether or not the second data code is arranged after the end identification code or after the end position, and the second data code is arranged by the data code judging means A second decoding means for decoding the second data code when it is determined that the second data code is decoded.
特許請求の範囲に記載の請求項27の二次元コードの読取装置では、前記第2のデータコードと前記終端識別コードとの間に、前記第2のデータコードが秘匿するデータを表すコード語としてコード化された秘匿データコードであることを示す秘匿識別コードが配置されている場合における請求項26記載の二次元コードの読取装置であって、前記秘匿識別コードが配置されているか否かを判断する秘匿識別コード判断手段と、前記秘匿識別コード判断手段により前記秘匿識別コードが配置されていると判断した場合、前記第2のデータコードが秘匿データである旨の情報を出力する秘匿情報出力手段と、を備えることを技術的特徴とする。
In the two-dimensional code reader according to
特許請求の範囲に記載の請求項28の二次元コードの読取装置では、前記第2のデータコードが所定の暗号化方式により暗号化されている場合における請求項26または27記載の二次元コードの読取装置であって、前記暗号化された第2のデータコードを復号できる鍵を用いて前記暗号化された第2のデータコードを復号する復号手段、を備えることを技術的特徴とする。 28. The two-dimensional code reader according to claim 28 according to claim 26, wherein the second data code is encrypted by a predetermined encryption method. A technical feature is a reading apparatus, comprising: a decrypting unit that decrypts the encrypted second data code using a key capable of decrypting the encrypted second data code.
特許請求の範囲に記載の請求項29の二次元コードの読取装置では、請求項28記載の二次元コードの読取装置において、前記復号できる鍵は、当該二次元コードの読取装置が備えていることを技術的特徴とする。 29. The two-dimensional code reader of claim 29 according to claim 29, wherein the key that can be decrypted is provided in the two-dimensional code reader. Is a technical feature.
特許請求の範囲に記載の請求項30の二次元コードの読取装置では、前記復号できる鍵を特定可能な鍵特定情報が前記第2のデータコードに付加されている場合における請求項28記載の二次元コードの読取装置であって、前記鍵特定情報に基づいて、当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断する鍵適合判断手段を備え、前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵であると判断した場合にはこの鍵を用いて前記復号手段により前記第2のデータコードを復号し、前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵でないと判断した場合には前記第2のデータコードを復号しない、ことを技術的特徴とする。 30. The two-dimensional code reader according to claim 30, wherein the key specifying information capable of specifying the decryptable key is added to the second data code. A dimension code reader, comprising: key matching determination means for determining whether a key of the two-dimensional code reader is the key that can be decrypted based on the key identification information; When it is determined by the determination means that the key of the two-dimensional code reader is the key that can be decrypted, the second data code is decrypted by the decryption means using this key, and the key conformity determination means Therefore, when it is determined that the key of the two-dimensional code reader is not the key that can be decrypted, the second data code is not decrypted.
特許請求の範囲に記載の請求項31の二次元コードの読取装置では、前記第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されており、前記第2のデータコードには、前記暗号化されている前記第2のデータコードを復号できる鍵特定情報がそれぞれに付加されている場合における請求項30記載の二次元コードの読取装置であって、前記鍵適合判断手段は、前記各第2のデータコードについて当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断することを技術的特徴とする。
In the two-dimensional code reader according to
特許請求の範囲に記載の請求項32の二次元コードの読取装置では、前記復号できる鍵が前記第2のデータコードに付加されている場合における請求項28記載の二次元コードの読取装置であって、前記復号できる鍵を前記第2のデータコードから分離する鍵分離手段を備え、前記鍵分離手段により分離した鍵を用いて前記復号手段により前記第2のデータコードを復号することを技術的特徴とする。 The two-dimensional code reader according to claim 32, wherein the key that can be decrypted is added to the second data code. And a key separating means for separating the decryptable key from the second data code, and the decrypting means decrypts the second data code using the key separated by the key separating means. Features.
特許請求の範囲に記載の請求項33の二次元コードの読取装置では、前記第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されており、前記第2のデータコードには、前記暗号化されている前記第2のデータコードを復号できる鍵がそれぞれに付加されている場合における請求項32記載の二次元コードの読取装置であって、前記鍵分離手段は、前記各第2のデータコードから前記復号できる鍵を分離することを技術的特徴とする。
In the two-dimensional code reader according to
特許請求の範囲に記載の請求項34の二次元コードの読取装置では、コード化される前のデータレコード中の位置関係を示す位置情報が前記第2のデータコードに付加されている場合における請求項26〜33のいずれか一項に記載の二次元コードの読取装置であって、前記第2のデータコードから前記位置情報を分離する位置情報分離手段と、前記第2デコード手段によりデコードされた第2のデータを前記位置情報分離手段により分離された位置情報に基づいて前記データレコード中に配置するデータ配置手段と、を備えることを技術的特徴とする。 35. The two-dimensional code reader according to claim 34, wherein the positional information indicating the positional relationship in the data record before being encoded is added to the second data code. 34. The two-dimensional code reader according to any one of Items 26 to 33, wherein the position information separating unit that separates the position information from the second data code and the second decoding unit decode the position information. And a data arrangement unit that arranges second data in the data record based on the position information separated by the position information separation unit.
上記目的を達成するため、特許請求の範囲に記載の請求項35の二次元コードの生成方法では、開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する二次元コードの生成方法であって、
秘匿するデータを表すコード語としてコード化された秘匿データコードに所定の加工を施して、前記終端識別コードの後、または前記終端識別情報により特定される前記終端位置の後、に配置することを技術的特徴とする。
In order to achieve the above object, in the two-dimensional code generation method according to
The secret data code encoded as a code word representing the data to be concealed is subjected to predetermined processing and placed after the termination identification code or after the termination position specified by the termination identification information. Technical features.
特許請求の範囲に記載の請求項36の二次元コードの生成方法では、請求項35記載の二次元コードの生成方法において、前記終端識別コードと前記秘匿データコードとの間には、後続のデータコードが前記秘匿データコードであることを示す秘匿識別コードが配置されていることを技術的特徴とする。
37. The two-dimensional code generation method according to claim 36 according to
特許請求の範囲に記載の請求項37の二次元コードの生成方法では、請求項35または36記載の二次元コードの生成方法において、前記所定の加工は、前記秘匿データを構成するビットの並替え、前記秘匿データを構成するビットの分散配置、前記秘匿データを構成するビットにより特定されるデータ値の変換、のいずれかであることを技術的特徴とする。 37. The two-dimensional code generation method according to claim 37, wherein the predetermined processing is rearrangement of bits constituting the secret data. Further, the present invention is technically characterized by any one of a distributed arrangement of bits constituting the secret data and a conversion of a data value specified by the bits constituting the secret data.
特許請求の範囲に記載の請求項38の二次元コードの生成方法では、請求項37記載の二次元コードの生成方法において、前記ビットの並替えまたは分散配置は、前記開示データコードの内容に基づいて行われることを技術的特徴とする。
38. The two-dimensional code generation method according to
特許請求の範囲に記載の請求項39の二次元コードの生成方法では、請求項37記載の二次元コードの生成方法において、前記ビットの並替えまたは分散配置は、当該二次元コードに付随する固有情報に基づいて行われることを技術的特徴とする。 40. The two-dimensional code generation method according to claim 39, wherein the bit rearrangement or distributed arrangement is a unique property associated with the two-dimensional code. It is a technical feature that it is performed based on information.
特許請求の範囲に記載の請求項40の二次元コードの生成方法では、請求項37記載の二次元コードの生成方法において、前記データ値の変換は、所定の変換テーブルまたは所定の変換式に基づいて行われることを技術的特徴とする。
42. The two-dimensional code generation method according to
特許請求の範囲に記載の請求項41の二次元コードの生成方法では、請求項35〜40のいずれか一項に記載の二次元コードの生成方法において、前記開示するデータと前記秘匿するデータとが、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合、前記秘匿データコードには、前記データレコード中の位置関係を示す位置情報が付加されていることを技術的特徴とする。
42. The two-dimensional code generation method according to
上記目的を達成するため、特許請求の範囲に記載の請求項42の二次元コードの読取装置において、データを表すコード語としてコード化されたデータコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置される二次元コードを読取可能な二次元コードの読取装置であって、前記終端識別コードよりも前に配置される前記データコード、または前記終端識別情報により特定される前記終端位置よりも前に配置される前記データコード、である第1のデータコードをデコードする第1デコード手段と、前記終端識別コードの後または前記終端位置よりも後に第2のデータコードが配置されているか否かを判断するデータコード判断手段と、前記データコード判断手段により前記第2のデータコードが配置されていると判断した場合、所定の抽出処理により前記第2のデータコードを抽出する抽出手段と、前記抽出手段により抽出された前記第2のデータコードをデコードする第2デコード手段と、を備えることを特徴とする。
In order to achieve the above object, in the two-dimensional code reader according to
特許請求の範囲に記載の請求項43の二次元コードの読取装置では、前記第2のデータコードと前記終端識別コードとの間に、前記第2のデータコードが秘匿するデータを表すコード語としてコード化された秘匿データコードであることを示す秘匿識別コードが配置されている場合における請求項42記載の二次元コードの読取装置であって、前記秘匿識別コードが配置されているか否かを判断する秘匿識別コード判断手段と、前記秘匿識別コード判断手段により前記秘匿識別コードが配置されていると判断した場合、前記第2のデータコードが秘匿データである旨の情報を出力する秘匿情報出力手段と、を備えることを技術的特徴とする。
In the two-dimensional code reading device according to
特許請求の範囲に記載の請求項44の二次元コードの読取装置では、前記第2のデータコードが、当該第2のデータコードを構成するビットの並替えまたはビットの分散配置により加工されていた場合における請求項42または43記載の二次元コードの読取装置であって、前記所定の抽出処理は、前記第2のデータコードを構成するビットの並替えまたはビットの分散配置を元に戻すことが可能な前記第1のデータコードの内容に基づいて、当該第2のデータコードを抽出することを技術的特徴とする。
45. The two-dimensional code reader according to
特許請求の範囲に記載の請求項45の二次元コードの読取装置では、前記第2のデータコードが、当該第2のデータコードを構成するビットの並替えまたはビットの分散配置により加工されていた場合における請求項42または43記載の二次元コードの読取装置であって、前記所定の抽出処理は、当該二次元コードに付随する固有情報で、前記第2のデータコードを構成するビットの並替えまたはビットの分散配置を元に戻すことが可能な情報に基づいて、当該第2のデータコードを抽出することを技術的特徴とする。 In the two-dimensional code reader according to claim 45, the second data code is processed by rearrangement of bits constituting the second data code or distributed arrangement of bits. 44. The two-dimensional code reading device according to claim 42 or 43, wherein the predetermined extraction process is rearrangement of bits constituting the second data code by unique information accompanying the two-dimensional code. Alternatively, it is a technical feature that the second data code is extracted based on information that can restore the distributed distribution of bits.
特許請求の範囲に記載の請求項46の二次元コードの読取装置では、前記第2のデータコードが、当該第2のデータコードを構成するビットにより特定されるデータ値の変換により加工されていた場合における請求項42または43記載の二次元コードの読取装置であって、前記所定の抽出処理は、前記第2のデータコードを構成するビットにより特定されるデータ値を逆変換することが可能な所定の変換テーブルまたは所定の変換式に基づいて、当該第2のデータコードを抽出することを技術的特徴とする。
In the two-dimensional code reading device according to
特許請求の範囲に記載の請求項47の二次元コードの読取装置では、請求項42〜46のいずれか一項に記載の二次元コードの読取装置において、前記第1デコード手段による前記第1のデータコードのデコード機能と、前記第2デコード手段による前記第2のデータコードのデコード機能と、のいずれか一方を当該二次元コードの読取装置の使用者に選択させ得るデコード機能選択手段を備えることを技術的特徴とする。
47. The two-dimensional code reader according to claim 47, wherein the first decoding means includes the first decoding means according to any one of
請求項1の発明では、秘匿するデータを表すコード語としてコード化された秘匿データコードを埋め草コードの一部または全部に代えて、終端識別コードの後に配置する。一般に、二次元コードの読取装置は、二次元コードのデコード処理において、コード領域に配置されたデータコードの先頭からコード列の終端を示す終端識別コードまでを読み取ってデコードするアルゴリズム仕様に設定されているため、通常、終端識別コードの後に配置される埋め草コード等は読み取りの対象にならない。このため、終端識別コードの後に、埋め草コードの一部または全部に代えて配置されるデータコードは、たとえそれが読み取り可能なコード語であっても、一般仕様の読取装置ではデコードすることはないので、終端識別コードの後に秘匿したいデータコード(秘匿データコード)を配置することにより、終端識別コードの前に配置されたデータコードは読み取ることはできても、当該秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからないので、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。 According to the first aspect of the present invention, the secret data code encoded as a code word representing the data to be concealed is placed after the terminal identification code in place of part or all of the padding code. 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の発明では、終端識別コードと秘匿データコードとの間には、後続のデータコードが秘匿データコードであることを示す秘匿識別コードが配置されている。これにより、終端識別コードの後に配置されたデータコードは、秘匿データコードであることがわかるので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。
In the invention of
請求項3の発明では、秘匿データコードは、所定の暗号化方式により暗号化されている。これにより、たとえ終端識別コードの後に埋め草コードの一部または全部に代えて、秘匿データコードが配置されていることが利用者等に知られても、当該秘匿データコードは所定の暗号化方式により暗号化されているので、セキュリティの強度を高めることができる。
In the invention of
請求項4の発明では、秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵を特定可能な鍵特定情報が付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、秘匿データコードを復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。
In the invention of
請求項5の発明では、秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵が付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、秘匿データコードを復号できる鍵を持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。
In the invention of
請求項6の発明では、秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、各秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵を特定可能な鍵特定情報がそれぞれに付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、各秘匿データコードごとに復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。
In the invention of
請求項7の発明では、秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、各秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵がそれぞれに付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、各秘匿データコードごとに復号できる鍵を持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。
In the invention of
請求項8の発明では、開示するデータと秘匿するデータとが、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合、秘匿データコードには、データレコード中の位置関係を示す位置情報が付加されている。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。 In the invention of claim 8, when the disclosed data and the data to be concealed are mixed before and after in the positional relationship in the data record before being coded as a code word, the concealed data code includes the data in the data record. Position information indicating the positional relationship is added. 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.
請求項9の発明では、データコード判断手段により、終端識別コードの後に第2のデータコードが配置されているか否かを判断し、第2のデータコードが配置されていると判断した場合には、第1デコード手段により第1のデータコードをデコードするとともに、第2デコード手段により第2のデータコードをデコードする。これにより、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、第2のデータコードが配置されていても、この第2のデータコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。
In the invention of
請求項10の発明では、第2のデータコードと終端識別コードとの間に、第2のデータコードが秘匿するデータを表すコード語としてコード化された秘匿データコードであることを示す秘匿識別コードが配置されている場合においては、秘匿識別コード判断手段により、秘匿識別コードが配置されているか否かを判断し、秘匿識別コードが配置されていると判断した場合、秘匿情報出力手段により、第2のデータコードが秘匿データである旨の情報を出力する。これにより、この情報を受けた他の装置、処理またはシステムでは、第2のデータコードが秘匿データである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので第2のデータコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データである旨の情報が出力されないので、第2のデータコード以外のものをデコードすることで生じ得る誤動作を防止することができる。
In a tenth aspect of the present invention, the secret identification code indicating that the second data code is a secret data code encoded as a code word representing the secret data between the second data code and the termination identification code. Is determined by the concealment identification code determining means, and if it is determined that the concealment identification code is disposed, the concealment information output means Information indicating that the
請求項11の発明では、第2のデータコードが所定の暗号化方式により暗号化されている場合においては、復号手段により、暗号化された第2のデータコードを復号できる鍵を用いて暗号化された第2のデータコードを復号する。これにより、第2デコード手段によりデコードされた第2のデータコードの内容が所定の暗号化方式により暗号化されている場合でも、その内容を復号して元の平文に戻すことができる。 In the eleventh aspect of the invention, when the second data code is encrypted by a predetermined encryption method, the second data code is encrypted by the decrypting means using a key capable of decrypting the encrypted second data code. The decoded second data code is decoded. Thereby, even when the content of the second data code decoded by the second decoding means is encrypted by a predetermined encryption method, the content can be decrypted and returned to the original plaintext.
請求項12の発明では、復号できる鍵は、当該二次元コードの読取装置が備えている。これにより、当該二次元コード自体には復号できる鍵を含めたり、他から取得する必要がないので、復号に関する情報処理を簡素化することができる。
In the invention of
請求項13の発明では、鍵適合判断手段により、鍵特定情報に基づいて、当該二次元コードの読取装置が有する鍵が復号できる鍵であるか否かを判断し、当該読取装置が有する鍵が復号できる鍵であると判断した場合にはこの鍵を用いて復号手段により第2のデータコードを復号し、当該読取装置が有する鍵が復号できる鍵でないと判断した場合には第2のデータコードを復号しない。これにより、終端識別コードよりも前に配置される第1のデータコードは第1デコード手段によりデコードされても、当該読取装置が有する鍵が復号できる鍵でない場合には、終端識別コードよりも後に配置される第2のデータコードはデコードも復号されないので、不要な復号処理を抑制することができる。
In the invention of
請求項14の発明では、第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されており、第2のデータコードには、暗号化されている第2のデータコードを復号できる鍵特定情報がそれぞれに付加されている場合において、鍵適合判断手段は、各第2のデータコードについて当該二次元コードの読取装置が有する鍵が復号できる鍵であるか否かを判断する。これにより、各第2のデータコードごとに異なった鍵で暗号化されている場合であっても、各第2のデータコードについて、請求項13の発明と同様に、終端識別コードよりも前に配置される第1のデータコードは第1デコード手段によりデコードされても、当該読取装置が有する鍵が復号できる鍵でない場合には、終端識別コードよりも後に配置される第2のデータコードは復号されないので、不要な復号処理を抑制することができる。
In the invention of
請求項15の発明では、復号できる鍵が第2のデータコードに付加されている場合において、鍵分離手段により分離した鍵を用いて復号手段により第2のデータコードを復号する。これにより、秘匿データコードを復号できる鍵を当該読取装置が持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。 According to the fifteenth aspect of the present invention, when a key that can be decrypted is added to the second data code, the second data code is decrypted by the decrypting means using the key separated by the key separating means. Thereby, even if the reader does not have a key that can decrypt the secret data code, the secret data code can be decrypted and returned to the original plaintext.
請求項16の発明では、第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されている場合であっても、各第2のデータコードについて、請求項15の発明と同様に、秘匿データコードを復号できる鍵を当該読取装置が持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。 In the invention of claim 16, even when there are a plurality of second data codes and each second data code is encrypted with a different key, the second data code is defined for each second data code. Similar to the invention, even if the reader does not have a key that can decrypt the secret data code, the secret data code can be decrypted and returned to the original plaintext.
請求項17の発明では、コード化される前のデータレコード中の位置関係を示す位置情報が第2のデータコードに付加されている場合において、位置情報分離手段により第2のデータコードから位置情報を分離し、この分離された位置情報に基づいて第2のデータをデータ配置手段によりデータレコード中に配置する。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。
In the invention of
請求項18の発明では、秘匿するデータを表すコード語としてコード化された秘匿データコードを終端識別コードの後、または終端識別情報により特定される終端位置の後、に配置する。一般に、二次元コードの読取装置は、二次元コードのデコード処理において、コード領域に配置されたデータコードの先頭からコード列の終端を示す終端識別コードまでを読み取ってデコードするアルゴリズム仕様に設定されているため、通常、終端識別コードの後に配置されるデータコードは読み取りの対象にならない。このため、終端識別コードの後に配置されるコード等は、たとえそれが読み取り可能なコード語であっても、一般仕様の読取装置ではデコードすることはないので、終端識別コードの後、または終端識別情報により特定される終端位置の後、に秘匿したいデータコード(秘匿データコード)を配置することにより、終端識別コードの前に配置されたデータコードは読み取ることはできても、当該秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからないので、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。 In the eighteenth aspect of the invention, the secret data code encoded as a code word representing the data to be concealed is arranged after the end identification code or after the end position specified by the end identification information. 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, the data code arranged after the terminal identification code is not a reading target. For this reason, the code placed after the terminal identification code is not decoded by a general-purpose reader even if it is a readable code word. By placing a data code (secret data code) to be concealed after the end position specified by the information, the data code placed before the end identification code can be read, but the concealed data code is It cannot be read. 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.
請求項19の発明では、終端識別コードと秘匿データコードとの間には、後続のデータコードが秘匿データコードであることを示す秘匿識別コードが配置されている。これにより、終端識別コードの後に配置されたデータコードは、秘匿データコードであることがわかるので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。 According to the nineteenth aspect of the present invention, a secret identification code indicating that the subsequent data code is a secret data code is disposed between the termination identification code and the secret data code. As a result, it can be seen that the data code arranged after the terminal identification code is a secret data code. For example, data that is not to be read or garbled data is prevented from being misidentified as a secret data code. In addition, it is possible to prevent the occurrence of malfunction due to this.
請求項20の発明では、秘匿データコードは、所定の暗号化方式により暗号化されている。これにより、たとえ終端識別コードの後に秘匿データコードが配置されていることが利用者等に知られても、当該秘匿データコードは所定の暗号化方式により暗号化されているので、セキュリティの強度を高めることができる。
In the invention of
請求項21の発明では、秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵を特定可能な鍵特定情報が付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、秘匿データコードを復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。
In the invention of
請求項22の発明では、秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵が付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、秘匿データコードを復号できる鍵を持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。 In the twenty-second aspect of the present invention, the secret data code is appended with a key that can decrypt the encrypted secret data code. Thereby, even if the reader or system for the two-dimensional code does not have a key for decrypting the secret data code, the secret data code can be decrypted and returned to the original plaintext.
請求項23の発明では、秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、各秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵を特定可能な鍵特定情報がそれぞれに付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、各秘匿データコードごとに復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。
In the invention of
請求項24の発明では、秘匿データコードは、複数で、各秘匿データコードごとに異なった鍵で暗号化されており、各秘匿データコードには、暗号化されている秘匿データコードを復号できる鍵がそれぞれに付加されている。これにより、当該二次元コードの読取装置やシステムにおいては、各秘匿データコードごとに復号できる鍵を持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。
In the invention of
請求項25の発明では、開示するデータと秘匿するデータとが、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合、秘匿データコードには、データレコード中の位置関係を示す位置情報が付加されている。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。
In the invention of
請求項26の発明では、データコード判断手段により、終端識別コードの後または終端位置よりも後に第2のデータコードが配置されているか否かを判断し、第2のデータコードが配置されていると判断した場合には、第1デコード手段により第1のデータコードをデコードするとともに、第2デコード手段により第2のデータコードをデコードする。これにより、本来、データコードが配置されない終端識別コードの後のコード領域(コード領域の空き部分)等に、第2のデータコードが配置されていても、この第2のデータコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。 In the invention of claim 26, the data code judging means judges whether or not the second data code is arranged after the termination identification code or after the termination position, and the second data code is arranged. If it is determined that the first data code is decoded by the first decoding means, the second data code is decoded by the second decoding means. As a result, even if the second data code is arranged in the code area (empty part of the code area) after the terminal identification code where the data code is not arranged, the second data code is decoded. Can do. 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.
請求項27の発明では、第2のデータコードと終端識別コードとの間に、第2のデータコードが秘匿するデータを表すコード語としてコード化された秘匿データコードであることを示す秘匿識別コードが配置されている場合においては、秘匿識別コード判断手段により、秘匿識別コードが配置されているか否かを判断し、秘匿識別コードが配置されていると判断した場合、秘匿情報出力手段により、第2のデータコードが秘匿データである旨の情報を出力する。これにより、この情報を受けた他の装置、処理またはシステムでは、第2のデータコードが秘匿データである旨を把握することができる。また、本来、データコードが配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、第2のデータコードではないもの(例えばデータ化けしたコード相当のもの)が配置されている場合には、秘匿データである旨の情報が出力されないので、第2のデータコード以外のものをデコードすることで生じ得る誤動作を防止することができる。
In the invention of
請求項28の発明では、第2のデータコードが所定の暗号化方式により暗号化されている場合においては、復号手段により、暗号化された第2のデータコードを復号できる鍵を用いて暗号化された第2のデータコードを復号する。これにより、第2デコード手段によりデコードされた第2のデータコードの内容が所定の暗号化方式により暗号化されている場合でも、その内容を復号して元の平文に戻すことができる。 In the invention of claim 28, when the second data code is encrypted by a predetermined encryption method, the second data code is encrypted by a decrypting means using a key capable of decrypting the encrypted second data code. The decoded second data code is decoded. Thereby, even when the content of the second data code decoded by the second decoding means is encrypted by a predetermined encryption method, the content can be decrypted and returned to the original plaintext.
請求項29の発明では、復号できる鍵は、当該二次元コードの読取装置が備えている。これにより、当該二次元コード自体には復号できる鍵を含めたり、他から取得する必要がないので、復号に関する情報処理を簡素化することができる。 In the invention of claim 29, the key that can be decrypted is provided in the two-dimensional code reader. As a result, it is not necessary to include a key that can be decrypted in the two-dimensional code itself or to obtain it from others, so that information processing relating to decryption can be simplified.
請求項30の発明では、鍵適合判断手段により、鍵特定情報に基づいて、当該二次元コードの読取装置が有する鍵が復号できる鍵であるか否かを判断し、当該読取装置が有する鍵が復号できる鍵であると判断した場合にはこの鍵を用いて復号手段により第2のデータコードを復号し、当該読取装置が有する鍵が復号できる鍵でないと判断した場合には第2のデータコードを復号しない。これにより、終端識別コードよりも前に配置される第1のデータコードは第1デコード手段によりデコードされても、当該読取装置が有する鍵が復号できる鍵でない場合には、終端識別コードよりも後に配置される第2のデータコードはデコードも復号されないので、不要な復号処理を抑制することができる。 In the invention of claim 30, the key conformity determining means determines whether or not the key possessed by the two-dimensional code reader is a key that can be decrypted based on the key specifying information, and the key possessed by the reader is When it is determined that the key can be decrypted, the second data code is decrypted by the decrypting means using this key, and when it is determined that the key of the reading device is not a decryptable key, the second data code Is not decrypted. Thereby, even if the first data code arranged before the terminal identification code is decoded by the first decoding means, if the key of the reading device is not a key that can be decrypted, the first data code is placed after the terminal identification code. Since the arranged second data code is neither decoded nor decoded, unnecessary decoding processing can be suppressed.
請求項31の発明では、第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されており、第2のデータコードには、暗号化されている第2のデータコードを復号できる鍵特定情報がそれぞれに付加されている場合において、鍵適合判断手段は、各第2のデータコードについて当該二次元コードの読取装置が有する鍵が復号できる鍵であるか否かを判断する。これにより、各第2のデータコードごとに異なった鍵で暗号化されている場合であっても、各第2のデータコードについて、請求項13の発明と同様に、終端識別コードよりも前に配置される第1のデータコードは第1デコード手段によりデコードされても、当該読取装置が有する鍵が復号できる鍵でない場合には、終端識別コードよりも後に配置される第2のデータコードは復号されないので、不要な復号処理を抑制することができる。
In the invention of
請求項32の発明では、復号できる鍵が第2のデータコードに付加されている場合において、鍵分離手段により分離した鍵を用いて復号手段により第2のデータコードを復号する。これにより、秘匿データコードを復号できる鍵を当該読取装置が持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。 In the invention of claim 32, when a key that can be decrypted is added to the second data code, the second data code is decrypted by the decrypting means using the key separated by the key separating means. Thereby, even if the reader does not have a key that can decrypt the secret data code, the secret data code can be decrypted and returned to the original plaintext.
請求項33の発明では、第2のデータコードが複数あり、各第2のデータコードごとに異なった鍵で暗号化されている場合であっても、各第2のデータコードについて、請求項15の発明と同様に、秘匿データコードを復号できる鍵を当該読取装置が持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。
In the invention of
請求項34の発明では、コード化される前のデータレコード中の位置関係を示す位置情報が第2のデータコードに付加されている場合において、位置情報分離手段により第2のデータコードから位置情報を分離し、この分離された位置情報に基づいて第2のデータをデータ配置手段によりデータレコード中に配置する。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。 In the invention of claim 34, in the case where the positional information indicating the positional relationship in the data record before being encoded is added to the second data code, the positional information is separated from the second data code by the positional information separating means. And the second data is arranged in the data record by the data arrangement means based on the separated position information. 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.
請求項35の発明では、秘匿するデータを表すコード語としてコード化された秘匿データコードに所定の加工を施して、終端識別コードの後、または終端識別情報により特定される終端位置の後、に配置する。一般に、二次元コードの読取装置は、二次元コードのデコード処理において、コード領域に配置されたデータコードの先頭からコード列の終端を示す終端識別コードまでを読み取ってデコードするアルゴリズム仕様に設定されているため、通常、終端識別コードの後に配置されるデータコードは読み取りの対象にならない。このため、終端識別コードの後に配置されるコード等は、たとえそれが読み取り可能なコード語であっても、一般仕様の読取装置ではデコードすることはないので、終端識別コードの後、または終端識別情報により特定される終端位置の後、に秘匿したいデータコード(秘匿データコード)を配置することにより、終端識別コードの前に配置されたデータコードは読み取ることはできても、当該秘匿データコードは読み取ることはできない。また、秘匿データコードは、所定の加工を施されて当該秘匿データコードの存在がわからないように加工されているので、たとえ終端識別コードの後等を読み取る試みがなされても、秘匿データコードが配置されていることすらわからない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからないので、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。また、セキュリティの強度を一層高めることができる。
In the invention of
請求項36の発明では、終端識別コードと秘匿データコードとの間には、後続のデータコードが秘匿データコードであることを示す秘匿識別コードが配置されている。これにより、終端識別コードの後に配置されたデータコードは、秘匿データコードであることがわかるので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。 In a thirty-sixth aspect of the present invention, a secret identification code indicating that the subsequent data code is a secret data code is disposed between the termination identification code and the secret data code. As a result, it can be seen that the data code arranged after the terminal identification code is a secret data code. For example, data that is not to be read or garbled data is prevented from being misidentified as a secret data code. In addition, it is possible to prevent the occurrence of malfunction due to this.
請求項37の発明では、請求項35の所定の加工を例示する。即ち、所定の加工は、秘匿データを構成するビットの並替え、秘匿データを構成するビットの分散配置、秘匿データを構成するビットにより特定されるデータ値の変換、のいずれかである。
In the invention of claim 37, the predetermined processing of
例えば、請求項38の発明では、請求項35の所定の加工がビットの並替えまたは分散配置である場合には、開示データコードの内容に基づいて行われる。
For example, in the invention of
また、請求項39の発明では、請求項35の所定の加工がビットの並替えまたは分散配置である場合には、当該二次元コードに付随する固有情報に基づいて行われる。
In the invention of claim 39, when the predetermined processing of
さらに、請求項40の発明では、請求項35の所定の加工がデータ値の変換である場合には、所定の変換テーブルまたは所定の変換式に基づいて行われる。
Furthermore, in the invention of
請求項41の発明では、開示するデータと秘匿するデータとが、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合、秘匿データコードには、データレコード中の位置関係を示す位置情報が付加されている。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。
In the invention of
請求項42の発明では、第1デコード手段により、終端識別コードよりも前に配置されるデータコード、または終端識別情報により特定される終端位置よりも前に配置されるデータコード、である第1のデータコードをデコードし、データコード判断手段により、終端識別コードの後または終端位置よりも後に第2のデータコードが配置されているか否かを判断し、データコード判断手段により第2のデータコードが配置されていると判断した場合、抽出手段による所定の抽出処理により第2のデータコードを抽出する。そして、抽出手段により抽出された第2のデータコードを第2デコード手段によってデコードする。これにより、本来、データコードが配置されない終端識別コードの後のコード領域(コード領域の空き部分)等に、所定の加工が施された第2のデータコードが配置されていても、この第2のデータコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。
In the invention of
請求項43の発明では、第2のデータコードと終端識別コードとの間に、第2のデータコードが秘匿するデータを表すコード語としてコード化された秘匿データコードであることを示す秘匿識別コードが配置されている場合においては、秘匿識別コード判断手段により、秘匿識別コードが配置されているか否かを判断し、秘匿識別コードが配置されていると判断した場合、秘匿情報出力手段により、第2のデータコードが秘匿データである旨の情報を出力する。これにより、この情報を受けた他の装置、処理またはシステムでは、第2のデータコードが秘匿データである旨を把握することができる。また、本来、データコードが配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、第2のデータコードではないもの(例えばデータ化けしたコード相当のもの)が配置されている場合には、秘匿データである旨の情報が出力されないので、第2のデータコード以外のものをデコードすることで生じ得る誤動作を防止することができる。
In the invention of
請求項44の発明では、第2のデータコードが、当該第2のデータコードを構成するビットの並替えまたはビットの分散配置により加工されていた場合においては、所定の抽出処理は、第2のデータコードを構成するビットの並替えまたはビットの分散配置を元に戻すことが可能な第1のデータコードの内容に基づいて、当該第2のデータコードを抽出する。これにより、第1のデータコードの内容に基づいて、ビットの並替えや分散配置といった所定の加工が行われている場合においては、このような第2のデータコードをデコードすることができる。
In the invention of
請求項45の発明では、第2のデータコードが、当該第2のデータコードを構成するビットの並替えまたはビットの分散配置により加工されていた場合においては、所定の抽出処理は、当該二次元コードに付随する固有情報で、第2のデータコードを構成するビットの並替えまたはビットの分散配置を元に戻すことが可能な情報に基づいて、当該第2のデータコードを抽出する。これにより、当該二次元コードに付随する固有情報に基づいて、ビットの並替えや分散配置といった所定の加工が行われている場合においては、このような第2のデータコードをデコードすることができる。 In the invention of claim 45, when the second data code is processed by rearrangement of bits constituting the second data code or distributed arrangement of bits, the predetermined extraction processing is performed by the two-dimensional The second data code is extracted on the basis of information that can return the rearrangement of bits constituting the second data code or the distributed arrangement of the bits to the original information that is associated with the code. As a result, such a second data code can be decoded when predetermined processing such as bit rearrangement and distributed arrangement is performed based on the unique information accompanying the two-dimensional code. .
請求項46の発明では、第2のデータコードが、当該第2のデータコードを構成するビットにより特定されるデータ値の変換により加工されていた場合においては、所定の抽出処理は、第2のデータコードを構成するビットにより特定されるデータ値を逆変換することが可能な所定の変換テーブルまたは所定の変換式に基づいて、当該第2のデータコードを抽出する。これにより、所定の変換テーブルまたは所定の変換式に基づいて、データ値の変換といった所定の加工が行われている場合においては、このような第2のデータコードをデコードすることができる。
In the invention of
請求項47の発明では、デコード機能選択手段により、第1デコード手段による第1のデータコードのデコード機能と、第2デコード手段による第2のデータコードのデコード機能と、のいずれか一方を当該二次元コードの読取装置の使用者に選択させ得る。これにより、当該二次元コードの読取装置の使用者は、デコード機能選択手段によって、第1デコード手段による第1のデータコードのデコード機能と、第2デコード手段による第2のデータコードのデコード機能と、のいずれか一方を選択することができるので、例えば、第2のデータコードは読んでも第1のデータコードを読みたくない場合や、それとは逆に、第1のデータコードは読んでも第2のデータコードを読みたくない場合に、不要なデコード処理によるデコード時間を削減することができる。したがって、デコード時間を短縮することができる。 In the invention of claim 47, the decoding function selection means performs either one of the decoding function of the first data code by the first decoding means and the decoding function of the second data code by the second decoding means. The user of the dimension code reader can be selected. Accordingly, the user of the two-dimensional code reader can use the decoding function selection unit to decode the first data code by the first decoding unit and the second data code decoding function by the second decoding unit. Can be selected, for example, when the second data code is read but the first data code is not desired, or conversely, the first data code is read but the second data code is read. When it is not desired to read the data code, decoding time due to unnecessary decoding processing can be reduced. Therefore, the decoding time can be shortened.
以下、本発明の二次元コードの生成方法およびその読取装置の実施形態について図を参照して説明する。なお、以下説明する各実施形態では、二次元コードの例として、QRコードを挙げるが、本発明に係る二次元コードはこれに限られることはなく、例えば、データマトリクス、マキシコード、CPコード、PDF417やRSSコンポジット等であってもQRコードと同様に本発明を適用することができる。 Embodiments of a two-dimensional code generation method and a reader thereof according to the present invention will be described below with reference to the drawings. In each embodiment described below, a QR code is given as an example of a two-dimensional code. However, the two-dimensional code according to the present invention is not limited to this, for example, a data matrix, a maxi code, a CP code, Even in the case of PDF417, RSS composite, etc., the present invention can be applied similarly to the QR code.
[第1実施形態]
まず、本発明の第1実施形態に係るQRコードプリンタ10の構成を、図1を参照して説明する。なお、図1(A) には、本第1実施形態に係るQRコードプリンタ10とそれに接続されるパーソナルコンピュータ(以下「パソコン」という)1とを示す説明図が図示されており、また図1(B) には、QRコードプリンタ10のハードウェア構成例を示すブロック図が図示されている。
[First Embodiment]
First, the configuration of the
図1(A) に示すように、QRコードプリンタ10は、ケーブル5を介してパソコン1に接続されることにより、パソコン1から出力されて当該QRコードプリンタ10に入力される英数字、漢字や記号等の文字データ(以下これらを「印刷データ」と総称する)に基づいてQRコードを生成してラベルP等に印刷する機能を有するものである。なお、ここでいう「QRコード」とは、日本工業規格(JIS)の二次元コードシンボル−QRコード−基本仕様(JIS X 0510:2004)に従うものである。
As shown in FIG. 1 (A), the
パソコン1は、パソコン本体2およびディスプレイ3により構成されており、パソコン本体2は、図略の、MPU、メインメモリ(主記憶装置)、ハードディスク(補助記憶装置)、入出力インタフェース、通信インタフェース、キーボード、ポインティングデバイス等からなる情報処理装置で、またディスプレイ3は、パソコン本体2に接続されることによりパソコン本体2から出力される情報を画面表示可能な情報表示装置である。
The
なお、このパソコン本体2には、QRコードプリンタ10のデバイスドライバがインストールされて(組み込まれて)おり、当該パソコン1の利用者が、QRコードとしてラベルPに印刷したい文字等を含んだ印刷データを、パソコン本体2からQRコードプリンタ10に対して任意に出力可能にしている。
The personal computer
これに対し、QRコードプリンタ10は、図1(B) に示すように、主に、MPU11、メモリ12、インタフェース13、ローラ制御部14、ヘッド制御部15、ローラ17、ヘッド18等から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
On the other hand, as shown in FIG. 1B, the
MPU11は、QRコードプリンタ10全体を制御可能なマイクロコンピュータ(以下「マイコン」という)で、メモリバスを介して接続されるメモリ12とともに情報処理装置を構成し得るもので情報処理機能を有する。このMPU11には、メモリ12のほかに、インタフェース13、ローラ制御部14やヘッド制御部15も接続されている。なお、後述するコード生成処理は、このMPU11およびメモリ12により実行される。
The
メモリ12は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ12のうちのRAMには、前述したパソコン1から送られてくる文字データを蓄積するバッファ領域のほか、MPU11が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述のコード生成処理等を実行可能な所定プログラムやその他、ローラ制御部14やヘッド制御部15等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
The
インタフェース13は、前述したパソコン1のパソコン本体2から送られてくる印刷データ等を受信可能にする入力インタフェースで、シリアルバス等を介してMPU11に接続されている。このインタフェース13を介してMPU11に入力された印刷データは、コード生成処理によって後述するように情報処理されてコード化される。
The
ローラ制御部14は、ローラ17の駆動機構(図略)を制御し得る制御装置で、シリアルバス等を介してMPU11に接続されている。これにより、MPU11から受けた制御信号に従ってローラ17の回転の開始や停止あるいは回転方向等を制御している。
The
ヘッド制御部15は、例えば、感熱用紙からなるラベルに対して任意のパターンを印刷し得るサーマルヘッドで、シリアルバス等を介してMPU11に接続されている。本実施形態では、後述のコード生成処理によって生成されたQRコードを感熱ラベルに印刷可能にするもので、前述したローラ制御部14による感熱ラベルの紙送りタイミングに同期して、QRコードを構成する位置検出パターン、タイミングパターンやデータコード等を当該ラベルに印刷する。
The
なお、以下、ヘッド制御部15として、サーマルヘッドの場合を例示して説明するが、QRコードを印刷できるものであれば、例えば、インクジェット用やドットインパクト用のヘッドでも良いし、また印刷機構として、レーザプリンタやLEDプリンタ等であっても良い。
In the following, the case of a thermal head will be described as an example of the
このようにQRコードプリンタ10を構成することによって、パソコン1から出力されて当該QRコードプリンタ10に入力された印刷データは、インタフェース13を介してメモリ12のバッファ領域に一旦蓄えられた後、次に説明するコード生成処理に渡される。ここで、コード生成処理を図2〜図4を参照して説明する。なお、図2には、コード生成処理の流れを示すフローチャートが図示されている。また図3には、図2に示すコード生成処理により情報処理されるデータやコードのフォーマット例が図示されている。さらに図4には、1型のQRコードの構成例が図示されている。
By configuring the
図2に示すように、コード生成処理は、QRコードプリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、まずステップS101により初期設定処理が行われる。この処理は、メモリ12の作業領域や印刷データを蓄えるバッファ領域をクリアしたり、所定のフラグやカウンタ等をクリアする。
As shown in FIG. 2, the code generation process is started by the
ステップS103では、印刷データを受信したか否かを判断する処理で、印刷データを受信するまで、このステップを繰り返す(S103;No)。そして、印刷データを受信したと判断すると(S103;Yes)、続くステップS105によりタイマーのカウント値をクリアする処理を行う。このステップS105でカウンタ値がクリアされるタイマーは、次のステップS107により所定時間の経過を計時するものである。 In step S103, this step is repeated until print data is received in the process of determining whether or not print data has been received (S103; No). When it is determined that the print data has been received (S103; Yes), the timer count value is cleared in the subsequent step S105. The timer whose counter value is cleared in step S105 measures the lapse of a predetermined time in the next step S107.
ステップS107では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、パソコン1から送られてくる印刷データに、暗号化等に関するデータが含まれているか否かを次のステップS111により判断する必要上、例えば、所定時間として1秒間が経過したか否かを判断し、この時間が経過するまでに、パソコン1から暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップS109に処理を移行する(S107;Yes)。
In step S107, processing is performed to determine whether or not a predetermined time has elapsed by the previous timer. That is, it is necessary to determine whether or not the print data sent from the
これに対し、所定時間が経過していない場合には(S107;No)、次のステップS111により暗号化等に関するデータとして、秘匿する必要のあるデータ(以下「秘匿データ」という)のデータレコード中の位置関係を示す秘匿データ位置情報と暗号するために用いる暗号キー(暗号鍵)とを受信したか否かを判断する処理が行われる。そして、これらを受信していると判断した場合には(S111;Yes)、続くステップS113に処理を移行し、これらを受信していると判断できない場合には(S111;No)、前述したステップS107に処理を戻して、再度、時間の経過を判断する。 On the other hand, if the predetermined time has not elapsed (S107; No), in the data record of data that needs to be concealed (hereinafter referred to as “confidential data”) as data relating to encryption or the like in the next step S111. A process is performed to determine whether or not the secret data position information indicating the positional relationship and the encryption key (encryption key) used for encryption have been received. If it is determined that these have been received (S111; Yes), the process proceeds to the subsequent step S113. If it is not possible to determine that these have been received (S111; No), the steps described above are performed. The process returns to S107, and the passage of time is determined again.
そして、所定時間が経過したとステップS107により判断した場合には(S107;Yes)、ステップS109により所定のフラグに「0」をセットする。このフラグは、印刷データに秘匿データが含まれているか否かを示すもので、「0」がセットされている場合には、秘匿データが含まれていないことを示し、「1」がセットされている場合には、秘匿データが含まれていることを示す。このため、ステップS111により暗号化等に関するデータを受信していると判断した場合には(S111;Yes)、続くステップS113によりこのフラグに「1」をセットする処理が行われる。 If it is determined in step S107 that the predetermined time has elapsed (S107; Yes), “0” is set to a predetermined flag in step S109. This flag indicates whether or not confidential data is included in the print data. When “0” is set, it indicates that confidential data is not included and “1” is set. Indicates that confidential data is included. For this reason, if it is determined in step S111 that data relating to encryption or the like is received (S111; Yes), a process of setting “1” to this flag is performed in subsequent step S113.
ステップS113により所定のフラグに「1」をセットすると、続くステップ115により、開示データおよび秘匿データを並び替える処理が行われる。即ち、印刷データに、第三者に開示するデータ(開示データ)と、第三者には秘密にして隠しておきたいデータ(秘匿データ)と、が含まれており、これらがデータレコード中で混在している場合に、ステップS111により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行う。 When “1” is set to the predetermined flag in step S113, a process of rearranging the disclosed data and the confidential data is performed in subsequent step 115. That is, the print data includes data disclosed to a third party (disclosure data) and data (secret data) that the third party wants to keep secret and concealed. If they are mixed, based on the “positional information indicating the positional relationship in the data record of the confidential data” received in step S111, the order of the data is changed and divided into a collection of disclosed data and a collection of confidential data. Process.
例えば、図3(A) に示すように、例えば、パソコン1から送られてくる印刷データのレコードに、開示データA、秘匿データα、開示データB、秘匿データβの順に並ぶデータが含まれていたとすると、ステップS115により、これらのデータの順番を入れ替えて図3(B) に示すように、開示データA、開示データB、秘匿データα、秘匿データβの順に並び替える処理を行う。これにより、開示データと秘匿データとがそれぞれまとめられるので、後のステップ121による終端識別コードの付加処理や、ステップS125による秘匿識別コードの付加処理等が容易になる。
For example, as shown in FIG. 3 (A), for example, the print data record sent from the
次のステップS117では、開示データや秘匿データ等の各データをJISの基本仕様(JIS X 0510:2004)に従って符号化する処理が行われる。これにより、開示するデータを表すコード語としてコード化された開示データコードが生成され、また秘匿するデータを表すコード語としてコード化された秘匿データコードが生成される。 In the next step S117, a process of encoding each data such as disclosed data and secret data in accordance with JIS basic specifications (JIS X 0510: 2004) is performed. As a result, a disclosed data code encoded as a code word representing data to be disclosed is generated, and a secret data code encoded as a code word representing data to be concealed is generated.
また続くステップS119では、開示データの各データに対する誤り訂正符号をJISの基本仕様(JIS X 0510:2004)に準拠して生成しさらにそれをコード化して誤り訂正コードを生成する処理が行われる。また、秘匿データについても、例えば、開示データと同様に、JISの基本仕様(JIS X 0510:2004)に記載されている誤り訂正コードの生成アルゴリズムを用いて誤り訂正符号を生成しそれをコード化して誤り訂正コードを生成する処理が行われる。 In the subsequent step S119, an error correction code for each data of the disclosed data is generated in accordance with JIS basic specifications (JIS X 0510: 2004), and further encoded to generate an error correction code. For confidential data, for example, as with the disclosed data, an error correction code is generated using the error correction code generation algorithm described in the JIS basic specification (JIS X 0510: 2004) and encoded. Then, a process for generating an error correction code is performed.
そして、続くステップS121により、開示データコードの後に終端識別コードを付加する処理が行われる。終端識別コードは、例えば、4ビットパターンで「0000」であり、図3(C) に示すように、開示データコードAの後に続く開示データコードBの直後に位置する。なお、図3(C) では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。 Then, in the subsequent step S121, processing for adding a terminal identification code after the disclosed data code is performed. The end identification code is, for example, “0000” in a 4-bit pattern, and is located immediately after the disclosed data code B following the disclosed data code A, as shown in FIG. In FIG. 3C, for the sake of convenience, the disclosed data code is expressed as “disclosed code” and the terminal identification code is expressed as “end terminal”.
次のステップS123では、前述した所定のフラグが「1」にセットされているか否か、即ち秘匿データが含まれているか否かを判断する処理が行われる。そして、秘匿データが含まれている場合には(フラグが「1」にセットされている場合:S123;Yes)、ステップS125に処理を移行し、また秘匿データが含まれていない場合には(フラグが「0」にセットされている場合:S123;No)、一連の秘匿処理(S125〜S133)を飛ばしてステップS135に処理を移行する。 In the next step S123, processing for determining whether or not the above-mentioned predetermined flag is set to “1”, that is, whether or not confidential data is included, is performed. If secret data is included (if the flag is set to “1”: S123; Yes), the process proceeds to step S125, and if secret data is not included ( When the flag is set to “0”: S123; No), a series of concealment processing (S125 to S133) is skipped, and the process proceeds to step S135.
ステップS125〜S133は、印刷データに秘匿データが含まれている場合に行われる一連の秘匿処理である。まず、ステップS125により、秘匿識別コードを終端識別コードの直後に付加する処理が行われる。 Steps S <b> 125 to S <b> 133 are a series of confidential processing that is performed when confidential data is included in the print data. First, in step S125, a process of adding the secret identification code immediately after the termination identification code is performed.
このステップS125による処理は、秘匿識別コードを終端識別コードの直後に配置することで、この終端識別コードの後に配置されているデータコードが「秘匿するデータを表すコード語としてコード化されたものであること」を明示的に表す。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、当該QRコードQに秘匿データコードが含まれていることを認識可能にするので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。 In the processing in step S125, the secret identification code is arranged immediately after the termination identification code, so that the data code arranged after the termination identification code is “coded as a code word representing the confidential data”. It expresses "something". As a result, when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, it is possible to recognize that the QR code Q includes a secret data code. It is possible to prevent unintended data, garbled data, and the like from being mistakenly read as a secret data code, and to prevent malfunction caused by this.
次のステップS127では、秘匿データコードのデータ長を計算して求め、このデータ長をコード化したものを秘匿識別コードの直後に付加する処理が行われる。これにより、秘匿データコードが配置される領域や範囲がわかるので、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、どこまでが秘匿データコードであるか、または暗号データコードであるかを認識可能にする。 In the next step S127, a process is performed in which the data length of the secret data code is calculated and obtained, and the data length encoded is added immediately after the secret identification code. As a result, the area and range where the secret data code is arranged can be known, so when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, how far is the secret data code, or Makes it possible to recognize whether it is an encrypted data code.
例えば、図3(C) に示す例では、秘匿データコードαのデータ長と秘匿データコードβのデータ長との和が当該データ長として計算されて秘匿識別コードの直後に付加される。なお、図3(C) では、便宜上、秘匿データコードを「秘匿コード」、秘匿識別コードを「秘匿識別子」、とそれぞれ表現している。 For example, in the example shown in FIG. 3C, the sum of the data length of the secret data code α and the data length of the secret data code β is calculated as the data length and added immediately after the secret identification code. In FIG. 3C, for the sake of convenience, the secret data code is expressed as “secret code”, and the secret identification code is expressed as “secret identifier”.
続くステップS129では、暗号キーがあるか否かを判断することによって、秘匿データコードを暗号化する必要があるか否かを判断する。即ち、ステップS111によって暗号キーをパソコン1から受信している場合には、暗号キーがあるので(S129;Yes)、ステップS131に移行して暗号化処理を行う。これに対して、ステップS111によって暗号キーをパソコン1から受信していない場合には、暗号キーがないので(S129;No)、ステップS131による暗号化処理を飛ばしてステップS133に移行する。
In a succeeding step S129, it is determined whether or not the secret data code needs to be encrypted by determining whether or not there is an encryption key. That is, when the encryption key is received from the
なお、ステップS111により暗号キーを受信していない場合であっても、パソコン1が予め暗号キーをメモリ12やハードディスク等の情報記憶媒体に保持しているときには暗号キーがあるので(S129;Yes)、ステップS131で暗号化処理を行う。
Even if the encryption key has not been received in step S111, since the encryption key is present when the
ステップS131では、秘匿データコードを暗号化する処理が行われる。この処理は、例えば、公知の視覚復号型暗号技術(視覚復号型秘密分散法)を用いて秘匿データコードを暗号化する。これにより、このような暗号化されていない平文データが付加されている場合に比べてセキュリティの強度を高めることができる。 In step S131, a process for encrypting the secret data code is performed. In this process, for example, the secret data code is encrypted using a known visual decryption encryption technique (visual decryption secret sharing method). Thereby, the strength of security can be increased as compared with the case where such unencrypted plaintext data is added.
例えば、図3(D) に示す例では、秘匿データコードαを構成する「暗号化データ」の部分が暗号化され、「開始桁」、「文字数」および「復号キー検査データ」も併せて生成される。最初に位置する「開始桁」は、当該暗号化された秘匿データの位置情報として、印刷データの先頭をゼロ番地とした場合に表現可能なアドレス値がこれに相当する。また次の「文字数」は、暗号化されている秘匿データの文字数である。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。 For example, in the example shown in FIG. 3 (D), the “encrypted data” portion of the secret data code α is encrypted, and the “start digit”, “number of characters”, and “decryption key check data” are also generated. Is done. The “start digit” positioned first corresponds to an address value that can be expressed as the position information of the encrypted confidential data when the top of the print data is set to zero. The next “number of characters” is the number of characters of the encrypted confidential data. As a result, the QR code Q generated by the code generation process is decoded by a QR code reader or the like even when the data records are mixed in the positional relationship in the data record before being encoded as a code word. In this case, the decoded data can be arranged in the positional relationship before encoding based on the positional information.
最後に付加されている「復号キー検査データ」は、当該暗号を解読するのに用いる復号キーを特定可能な鍵特定情報で、暗号方式が暗号キーと復号キーとが同じ共通鍵暗号方式(「秘密鍵暗号方式」ともいう)の場合には、当該復号キー検査データは暗号キーも特定できる。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、秘匿データコードを復号キー(復号できる鍵)を容易に特定することができたり、復号キーであるか否かを判断することができる。 “Decryption key check data” added at the end is key specifying information that can specify a decryption key used for decrypting the cipher, and a common key encryption method (“ In the case of “private key encryption method”, the decryption key check data can also specify the encryption key. As a result, when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, it is possible to easily specify the decryption key (decryptable key) of the secret data code, It can be determined whether or not there is.
なお、秘匿データコードβについても秘匿データコードαと同様に構成され、「復号キー検査データ」として、秘匿データコードαを復号する復号キーと同じ情報を付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、他の復号キーを特定する「復号キー検査データ」を付加しても良い。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、各秘匿データコードごとに復号できる鍵を容易に特定することができたり、復号できる鍵であるか否かを判断することができる。 The secret data code β is configured in the same manner as the secret data code α, and the same information as the decryption key for decrypting the secret data code α may be added as the “decryption key check data”, or the secret data code When the secret data of the secret data code β is encrypted with another encryption key different from the α encryption key, “decryption key check data” for specifying another decryption key may be added. Thereby, when the QR code Q generated by this code generation process is decoded by a QR code reader or the like, it is possible to easily specify a key that can be decrypted for each secret data code, or a key that can be decrypted. It can be determined whether or not.
ステップS133では、データ長の直後に秘匿データコードを付加する処理が行われる。図3(D) に示す例では、秘匿データコードαおよび秘匿データコードβをデータ長の後に付加する。これにより、一般仕様の二次元コードの読取装置では、二次元コードのデコード処理において、終端識別コードの後に配置される埋め草コード等は読み取りの対象にしないため、このように終端識別コードの後に配置された秘匿データコードは読み取ることはできない。したがって、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードの存在はわからないので、当該読取装置の利用者には秘匿データの存在を認識させないようにすることが可能となる。 In step S133, processing for adding a secret data code immediately after the data length is performed. In the example shown in FIG. 3D, the secret data code α and the secret data code β are added after the data length. As a result, in the two-dimensional code reader of the general specification, in the two-dimensional code decoding process, the padding code placed after the terminal identification code is not subject to reading, and thus, after the terminal identification code as described above. The arranged secret data code cannot be read. Therefore, even if a two-dimensional code including such a secret data code is read by a general-purpose reader, the existence of the secret data code is not known, so the user of the reader does not recognize the presence of the secret data. It becomes possible to do so.
続くステップS135では、例えば、JISの基本仕様(JIS X 0510:2004)に記載されている処理アルゴリズムに準拠して、秘匿データコードの後に埋め草コードを付加する処理が行われ、さらにステップS137では、誤り訂正コードを付加する処理が行われる。これにより、図3(C) に示すフォーマットのデータコードが生成される。 In the subsequent step S135, for example, in accordance with the processing algorithm described in the JIS basic specification (JIS X 0510: 2004), a process of adding a padding code after the secret data code is performed, and in step S137, further. Then, a process of adding an error correction code is performed. As a result, a data code having the format shown in FIG. 3C is generated.
そして、ステップS139では、ステップS137により生成されたデータコードに基づいて、各セルを生成し、図4に示すデータブロックに配置する処理が行われる。即ち、図4に示す1型のQRコードでは、1辺が21セル(モジュール)の正方形状に構成されているため、三隅に設けられている位置検出パターンや形式情報(図4に示す斜線部分)、さらにはタイミングパターンを除いたコード領域に、8個のセルを4行2列に配置して構成されるデータブロックを26ブロック(A0〜A25)配置する。 In step S139, each cell is generated on the basis of the data code generated in step S137, and processing for arranging the cells in the data block shown in FIG. 4 is performed. That is, since the one-type QR code shown in FIG. 4 is formed in a square shape with 21 cells (modules) on one side, position detection patterns and format information provided at three corners (the hatched portion shown in FIG. 4). In addition, 26 blocks (A0 to A25) of data blocks configured by arranging 8 cells in 4 rows and 2 columns are arranged in the code area excluding the timing pattern.
例えば、図3(C) に示す例では、開示データコードAをA0〜A2、開示データコードBをA3〜A6に配置し、終端識別コードをA7に配置する。そして、この終端識別コードの後方で、通常は埋め草コードが配置される位置に相当するA8〜A17に、秘匿識別コード、データ長、秘匿識別コード等を配置する。 For example, in the example shown in FIG. 3C, the disclosed data code A is arranged in A0 to A2, the disclosed data code B is arranged in A3 to A6, and the terminal identification code is arranged in A7. Then, behind this termination identification code, a secret identification code, a data length, a secret identification code, and the like are usually arranged at A8 to A17 corresponding to positions where the padding code is arranged.
即ち、A8に秘匿識別コードを配置し、その後のA9にデータ長を配置して、さらにこの後のA10〜A13に秘匿データコードα、A14〜A17に秘匿データコードβをそれぞれ配置する。そして、通常のQRコードと同様に、誤り訂正コードを最後のA20〜A25に配置して、この間の空いている部分であるA18〜A19に埋め草コードを配置する。なお、A15およびA18は、タイミングパターンを挟んで位置していることから、A15はA15とA15’とに、またA18はA18とA18’とに分割されている。 That is, a secret identification code is arranged at A8, a data length is arranged at A9 thereafter, a secret data code α is arranged at A10 to A13, and a secret data code β is arranged at A14 to A17. Then, similarly to the normal QR code, the error correction code is arranged in the last A20 to A25, and the padding code is arranged in A18 to A19 which are vacant portions therebetween. Since A15 and A18 are located across the timing pattern, A15 is divided into A15 and A15 ', and A18 is divided into A18 and A18'.
なお、ステップS131において、図3(E) に示すように、「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、例えば、当該QRコードリーダ等が秘匿データコードαの復号キーを持っていなくても、秘匿データコードαを復号して元の平文に戻すことができる。 In step S131, as shown in FIG. 3E, the decryption key itself may be added instead of the “decryption key check data”. Thus, when the QR code Q generated by the code generation process is decoded by a QR code reader or the like, for example, even if the QR code reader or the like does not have a decryption key for the secret data code α, the secret data The code α can be decrypted and restored to the original plaintext.
また、秘匿データコードβについても、同様に「復号キー検査データ」に代えて、復号キーそのものを付加しても良い。付加する復号キーは、秘匿データコードαを復号する復号キーと同じものを付加しても良いし、また秘匿データコードαの暗号キーとは異なった他の暗号キーで秘匿データコードβの秘匿データを暗号化した場合には、この他の暗号キーに対応する他の復号キーを付加しても良い。これにより、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際に、当該QRコードリーダ等が、各秘匿データコードごとに対応するそれぞれの復号キーを持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。 Similarly, the decryption key itself may be added to the secret data code β instead of the “decryption key check data”. The decryption key to be added may be the same as the decryption key for decrypting the secret data code α, or the secret data of the secret data code β may be different from the encryption key of the secret data code α. May be added with another decryption key corresponding to the other encryption key. As a result, when the QR code Q generated by the code generation process is decoded by a QR code reader or the like, the QR code reader or the like does not have a corresponding decryption key for each secret data code. Also, each secret data code can be decrypted and returned to the original plaintext.
また、ステップS123により、秘匿データが含まれていないと判断した場合であっても(フラグが「0」にセットされている場合:S123;No)、図3(F) に示すように、暗号化していない平文データの前に、ステップS131で付加した「開始桁」や「文字数」を付加する処理ステップを、ステップS123とステップS135との間に設けても良い。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、本コード生成処理によって生成されたQRコードQを、QRコードリーダ等のデコードする際において、デコードしたデータをこの位置情報に基づいてコード化前の位置関係に配置することができる。 Even if it is determined in step S123 that confidential data is not included (if the flag is set to “0”: S123; No), as shown in FIG. A processing step for adding the “start digit” or “number of characters” added in step S131 before the plaintext data that has not been converted may be provided between step S123 and step S135. As a result, the QR code Q generated by the code generation process is decoded by a QR code reader or the like even when the data records are mixed in the positional relationship in the data record before being encoded as a code word. In this case, the decoded data can be arranged in the positional relationship before encoding based on the positional information.
以上説明したように、本第1実施形態に係るQRコードプリンタ10によると、MPU11により実行されるコード生成処理によって生成されるQRコードQでは、ステップS133により秘匿データコードが、埋め草コードの一部または全部に代えて、終端識別コードの後に配置されている。これにより、終端識別コードの後に配置された秘匿データコードは、一般仕様の読取装置では読み取りの対象にならないので、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからない。したがって、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。
As described above, according to the
よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。 Therefore, even if such a secret data code is included, since the data corresponding to the decode data of the secret data code is not displayed on the screen in the general-purpose reading device, the user can recognize the presence of the secret data. Therefore, the user is not distrusted or inadvertently motivated to try to decipher. Further, even if control data or the like corresponding to the decoded data of the secret data code is not displayed on the screen, the screen display is not disturbed.
なお、上述した第1実施形態では、QRコードプリンタ10により、ラベルPにQRコードQを印刷する例を挙げて説明したが、本発明はこれに限られることはなく、QRコードQを視覚的に表現可能なものであればよく、例えば、図2に示すコード生成処理をパソコン本体2により実行してディスプレイ3にQRコードQを表示するように構成しても良い。この場合、コード生成処理は、コンピュータプログラムとして概念できるので、例えば、「開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置するとともに、前記コード領域の空き部分にデータを表さない埋め草コードを配置する二次元コードの生成装置として、コンピュータを機能させるためのプログラムであって、秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする二次元コードの生成プログラム。」と表現可能な技術的思想を把握できる。これにより、この二次元コードの生成プログラムにより二次元コードの生成装置として機能するコンピュータは、上述したQRコードプリンタ10のMPU11等と同様の作用および効果を奏する。
In the first embodiment described above, an example in which the QR code Q is printed on the label P by the
また、上述した第1実施形態では、QRコードプリンタ10にパソコン1を接続して当該パソコン1から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、QRコードプリンタ10に接続する構成を採っても上述した作用および効果を得ることができる。
In the first embodiment described above, the configuration in which the
[第2実施形態]
次に、本発明の第2実施形態に係るQRコードリーダ20の構成を説明する。本第2実施形態に係るQRコードリーダ20は、第1実施形態で説明したQRコードプリンタ10により印刷されたQRコードQをデコード可能なQRコードリーダ20である。なお、QRコードリーダ20によりデコード可能なQRコードQの構成は、図3および図4を参照して既に説明しているので、ここでは説明を割愛する。
[Second Embodiment]
Next, the configuration of the
まず、本発明の第2実施形態に係るQRコードリーダ20の構成を図5を参照して説明する。なお、図5には、本第2実施形態に係るQRコードリーダのハードウェア構成例を示すブロック図が図示されている。
First, the configuration of the
図5に示すように、QRコードリーダ20は、主に、照明光源21、受光センサ23、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示器46等のマイコン系と、電源スイッチ41、バッテリ49等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されており、ハードウェア的には一般仕様のQRコードリーダ(読取装置)と同様に構成されている。
As shown in FIG. 5, the
光学系は、照明光源21、受光センサ23、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本第2実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、図略のケースの読取口を介してラベルPに向けて照明光Lfを照射可能に構成されている。このラベルPには、第1実施形態で説明したQRコードQが印刷されている。
The optical system includes an
受光センサ23は、ラベルPやQRコードQに照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。受光センサ23は、結像レンズ27を介して入射する入射光をこの受光面23aで受光可能に図略のプリント配線板に実装されている。
The
結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
The
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等から構成されている。このマイコン系は、その名の通り、マイコンとして機能し得る制御回路40およびメモリ35と中心に構成される。
Next, a configuration outline of the microcomputer system will be described. The microcomputer system includes an
光学系の受光センサ23から出力される画像信号は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データは、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
An image signal output from the
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述するデコード処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
The
制御回路40は、QRコードリーダ20全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなり、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40には、内蔵された入出力インタフェースを介して種々の入出力装置と接続可能に構成されており、本第2実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示器46、通信インタフェース48等が接続されている。
The
これにより、例えば、電源スイッチ41や操作スイッチ42の監視や管理、またインジケータとして機能するLED43の点灯・消灯、ビープ音やアラーム音を発生可能なブザー44の鳴動のオンオフ、さらには読み取ったQRコードQによるコード内容を画面表示可能な液晶表示器46の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース48の通信制御等を可能にしている。なお、通信インタフェース48に接続される外部装置には、当該QRコードリーダ20の上位システムに相当するホストコンピュータHST等が含まれる。
Thereby, for example, monitoring and management of the
電源系は、電源スイッチ41、バッテリ49等により構成されており、制御回路40により管理される電源スイッチ41のオンオフによって、上述した各装置や各回路に、バッテリ49から供給される駆動電圧の導通や遮断が制御されている。なお、バッテリ49は、所定の直流電圧を発生可能な二次電池で、例えば、リチウムイオン電池等がこれに相当する。また、バッテリ49によることなく、例えば、通信インタフェース48を介して接続されるホストコンピュータHST等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該バッテリ49は不要となる。
The power supply system includes a
このようにQRコードリーダ20を構成することによって、例えば、電源スイッチ41がオンされて所定の自己診断処理等が正常終了し、QRコードQの読み取りが可能な状態になると、照明光Lfの発光を指示する操作スイッチ42(例えばトリガースイッチ)の入力を受け付ける。これにより、利用者がトリガースイッチを引いてオンにすることで、制御回路40が同期信号を基準に照明光源21に発光信号を出力するので、当該発光信号を受けた照明光源21は、LEDを発光させて照明光Lfを照射する。
By configuring the
すると、QRコードQに照射された照明光Lfが反射し、その反射光Lrが読取口を介して結像レンズ27に入射するため、受光センサ23の受光面23aには、QRコードQの像が結像される。これにより、QRコードQの像が受光センサ23を露光するため、上述したマイコン系によって画像処理された当該QRコードQの画像データが、メモリ35の画像データ蓄積領域を介して、次に説明するデコード処理に渡される。
Then, the illumination light Lf irradiated to the QR code Q is reflected, and the reflected light Lr enters the
ここで、デコード処理を図4,図6および図7を参照して説明する。なお、図6には、デコード処理の流れを示すフローチャートが図示されている。また図7には、図6に示す復号化処理の流れを示すフローチャートが図示されている。また、図4には、1型のQRコードの構成例を示す説明図が図示されている。
Here, the decoding process will be described with reference to FIG. 4, FIG. 6, and FIG. FIG. 6 is a flowchart showing the flow of the decoding process. FIG. 7 is a flowchart showing the flow of the decoding process shown in FIG. FIG. 4 is an explanatory diagram showing a configuration example of a
図6に示すように、デコード処理は、QRコードリーダ20の電源投入により起動する制御回路40およびメモリ35によって開始され、まずステップS201により初期設定処理が行われる。この処理は、メモリ35の作業領域や画像データを蓄える画像データ蓄積領域をクリアしたり、所定のフラグやカウンタ等をクリアする。なお、ここで説明するQRコードリーダ20は、ホストコンピュータHSTと接続されており、当該ホストコンピュータHSTから設定データとして復号キーのデータを取得するものとする。
As shown in FIG. 6, the decoding process is started by the
ステップS203では、タイマーのカウント値をクリアする処理が行われる。このステップS203でカウンタ値がクリアされるタイマーは、次のステップS205により所定時間の経過を計時するものである。 In step S203, processing for clearing the count value of the timer is performed. The timer whose counter value is cleared in step S203 measures the elapse of a predetermined time in the next step S205.
ステップS205では、先のタイマーにより所定時間が経過したか否かを判断する処理が行われる。即ち、ホストコンピュータHSTから送られてくる設定データに復号キーのデータが含まれているか否かを次のステップS209により判断する必要上、例えば、所定時間として5秒間が経過したか否かを判断し、この時間が経過するまでに、ホストコンピュータHSTから暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップS207に処理を移行する(S205;Yes)。 In step S205, processing is performed to determine whether or not a predetermined time has elapsed by the previous timer. That is, it is necessary to determine whether or not the decryption key data is included in the setting data sent from the host computer HST. For example, it is determined whether or not 5 seconds have passed as the predetermined time. If no data related to encryption is sent from the host computer HST before this time elapses, the process proceeds to step S207 as the predetermined time elapses (S205; Yes).
これに対し、所定時間が経過していない場合には(S205;No)、次のステップS209により復号キー(復号鍵)を受信したか否かを判断する処理が行われる。そして、これを受信していると判断した場合には(S209;Yes)、続くステップS211に処理を移行し、受信していると判断できない場合には(S209;No)、前述したステップS205に処理を戻して、再度、時間の経過を判断する。 On the other hand, when the predetermined time has not elapsed (S205; No), a process of determining whether or not a decryption key (decryption key) has been received in the next step S209 is performed. If it is determined that it has been received (S209; Yes), the process proceeds to the subsequent step S211. If it cannot be determined that it has been received (S209; No), the process proceeds to step S205 described above. The processing is returned and the passage of time is determined again.
そして、所定時間が経過したとステップS205により判断した場合には(S205;Yes)、ステップS207により所定のフラグに「0」をセットする。このフラグは、QRコードQの秘匿データコードを復号キーで復号するか否かを示すもので、「0」がセットされている場合には、復号キーで復号しないことを示し、「1」がセットされている場合には、復号キーで復号することを示す。このため、209により復号キーを受信していると判断した場合には(S209;Yes)、続くステップS211によりこのフラグに「1」をセットする処理が行われる。 If it is determined in step S205 that the predetermined time has elapsed (S205; Yes), “0” is set to a predetermined flag in step S207. This flag indicates whether or not the secret data code of the QR code Q is decrypted with the decryption key. When “0” is set, this flag indicates that decryption with the decryption key is not performed. When set, it indicates that decryption is performed with the decryption key. For this reason, when it is determined by 209 that the decryption key has been received (S209; Yes), a process of setting “1” to this flag is performed in the subsequent step S211.
ステップS211により所定のフラグに「1」をセットすると、続くステップ213により、画像データを取得する処理が行われる。即ち、メモリ35の画像データ蓄積領域から蓄えられている画像データを読み出す処理を行う。これにより、例えば、図4に示すようなQRコードQのコード画像が得られる。
When “1” is set in the predetermined flag in step S211, a process of acquiring image data is performed in the subsequent step 213. That is, a process of reading out image data stored from the image data storage area of the
続くステップS215では、位置検出パターンを検出する処理が行われる。即ち、QRコードQは、図4に示すように、その三隅に位置検出パターンが設けられているため、これらを検出することによって、次のステップS217によりQRコードQのコード外形を検出する。 In subsequent step S215, processing for detecting a position detection pattern is performed. That is, as shown in FIG. 4, since the QR code Q is provided with position detection patterns at its three corners, the code outline of the QR code Q is detected in the next step S217 by detecting these.
そして、ステップS219により各セルの中心座標を算出する処理を行うことによって次ステップS221により各セルの白黒を判別する。これにより、図4に示す形式情報(図4に示す斜線部分)やデータブロックを認識可能になるので、続くステップS223により、欠損等しているデータブロックがある場合には、そのブロックを誤り訂正可能であるか否かを判断する。 Then, by performing the process of calculating the center coordinates of each cell in step S219, the monochrome of each cell is determined in the next step S221. This makes it possible to recognize the format information shown in FIG. 4 (the hatched portion shown in FIG. 4) and the data block. If there is a missing data block in the subsequent step S223, the block is error-corrected. Determine whether it is possible.
そして、ステップS223により誤り訂正可能であると判断できる場合には(S223;OK)、誤り訂正をして続くステップS300により復号化処理を行う。これに対し、ステップS223により誤り訂正可能であると判断できない場合には(S223;NG)、誤り訂正できないので、ステップS213に処理を移行して再度、画像データを取得してステップS215〜S221の各処理を行う。 If it can be determined in step S223 that error correction is possible (S223; OK), error correction is performed and decoding processing is performed in subsequent step S300. On the other hand, if it cannot be determined in step S223 that the error can be corrected (S223; NG), the error cannot be corrected. Therefore, the process proceeds to step S213, and image data is acquired again, and steps S215 to S221 are performed. Perform each process.
ステップS300は、その詳細が図7に図示されているので、ここからは図7を参照して復号化処理を説明する。図7に示すように、復号化処理では、ステップS301により、まずカウンタnに0(零)をセットする処理が行われる。このカウンタnは、本復号化処理において、QRコードQを構成するデータコードの順番を示す変数として機能する。 Details of step S300 are shown in FIG. 7, and the decoding process will be described below with reference to FIG. As shown in FIG. 7, in the decoding process, first, a process of setting 0 (zero) to the counter n is performed in step S301. The counter n functions as a variable indicating the order of data codes constituting the QR code Q in the present decoding process.
ステップS303では、カウンタnが指すn番目のデータコードを取得する処理が行われる。そして、続くステップS305では、ステップS303により取得されたn番目のデータコードが、終端識別コードであるか否かを判断する処理が行われる。これにより、当該データコードが終端識別コードであると判断した場合には(S305;Yes)、終端識別コードよりも前に配置される通常のデータコードはこれ以上、当該QRコードQには含まれていないことになるので、ステップS315に処理を移行する。 In step S303, processing for obtaining the nth data code pointed to by the counter n is performed. Then, in the subsequent step S305, a process for determining whether or not the nth data code acquired in step S303 is a terminal identification code is performed. As a result, when it is determined that the data code is a terminal identification code (S305; Yes), the normal data code arranged before the terminal identification code is no longer included in the QR code Q. Therefore, the process proceeds to step S315.
これに対し、当該データコードが終端識別コードであると判断できない場合には(S305;No)、終端識別コードよりも前にまだ通常のデータコードが存在することになるので、続くステップS307に処理を移行して次のデータコード、つまり(n+1)番目のデータコードをコード数iを取得する。これは、第1実施形態で図3(D) を参照して説明したように、データコードの2文字目相当の位置には、文字数が格納されていることに基づくもので、その詳細は、JISの基本仕様(JIS X 0510:2004)の「8.4データの符号化」に記載されている。 On the other hand, if it is not possible to determine that the data code is the termination identification code (S305; No), the normal data code still exists before the termination identification code, so the process proceeds to step S307. And the code number i is acquired for the next data code, that is, the (n + 1) th data code. As described with reference to FIG. 3D in the first embodiment, this is based on the fact that the number of characters is stored at the position corresponding to the second character of the data code. It is described in “8.4 Data Encoding” in JIS Basic Specification (JIS X 0510: 2004).
ステップS307によりコード数iを取得すると、続くステップS309では、この文字数(i)分だけデータコードを取得する処理が行われ、さらにステップS311により当該データコード、つまり開示データコード(開示するデータを表すコード語としてコード化されたデータコード)を復号(デコード)する処理が行われる。 When the number of codes i is acquired in step S307, in the subsequent step S309, a process for acquiring data codes for the number of characters (i) is performed. A process of decoding (decoding) a data code encoded as a code word is performed.
ステップS311による復号処理が終わると、ステップS313により、カウンタnが次のデータコードを指すように「n+i+1」をカウンタnに設定する処理が行われた後、再びステップS303に処理を戻してn番目のデータコードを取得する処理が行われる。 When the decoding process in step S311 is completed, in step S313, the process of setting “n + i + 1” to the counter n is performed so that the counter n indicates the next data code, and then the process returns to step S303 to return to the nth The process of acquiring the data code is performed.
このように、ステップS303〜S313では、終端識別コードの前方に配置されて元来デコードされる通常のデータコード(第1のデータコード、開示データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、特許請求の範囲に記載の「第1デコード手段」に相当し得るものである。
As described above, in steps S303 to S313, a process of obtaining and decoding a normal data code (first data code, disclosed data code) that is arranged in front of the terminal identification code and originally decoded is performed. For this reason, the
ステップS315は、前述した所定のフラグに「1」がセットされているか否か、つまりQRコードQの秘匿データコードを復号キーで復号するか否かを判断する処理が行われる。そして、当該フラグに「1」がセットされていない場合には(S315;No)、復号キーで復号する必要がないため、本復号化処理を終了して図6に示すステップS300を終えてデコード処理を終了する。 In step S315, a process of determining whether or not “1” is set in the predetermined flag, that is, whether or not the secret data code of the QR code Q is decrypted with the decryption key is performed. If “1” is not set in the flag (S315; No), it is not necessary to perform decryption with the decryption key. Therefore, the present decryption process is terminated and step S300 shown in FIG. 6 is terminated. End the process.
これに対し、所定のフラグに「1」がセットされている場合には(S315;Yes)、復号キーで復号する必要があるため、続くステップS317に処理を移行してカウンタnにn+1を設定し、さらにステップS319によりカウンタnが指すn番目のデータコードを取得する処理が行われる。 On the other hand, if “1” is set in the predetermined flag (S315; Yes), it is necessary to decrypt with the decryption key. Therefore, the process proceeds to subsequent step S317 and n + 1 is set to the counter n. Further, in step S319, a process for obtaining the nth data code indicated by the counter n is performed.
そして、続くステップS321では、ステップS319により取得されたn番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このため、このステップS321を実行する制御回路40等は、特許請求の範囲に記載の「データコード判断手段」や「秘匿識別コード判断手段」に相当し得るものである。
In subsequent step S321, a process is performed to determine whether or not the nth data code acquired in step S319 is a secret identification code. For this reason, the
これにより、当該データコードが秘匿識別コードであると判断した場合には(S321;Yes)、秘匿識別コードよりも後には、秘匿データコードが存在することになるので、続くステップS323に処理を移行して次のデータコード、つまり(n+1)番目のデータコードをコード数jを取得する。これも、ステップS309と同様に、データコードの2文字目相当の位置には、文字数が格納されていることに基づくものである。 As a result, when it is determined that the data code is a secret identification code (S321; Yes), since the secret data code exists after the secret identification code, the process proceeds to the subsequent step S323. The code number j is acquired for the next data code, that is, the (n + 1) th data code. This is also based on the fact that the number of characters is stored at the position corresponding to the second character of the data code, as in step S309.
なお、ステップS321により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータHSTに対して当該QRコードQには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータHSTでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので秘匿データコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータHSTに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。 When it is determined in step S321 that the secret identification code is arranged, for example, the host computer HST is notified that the secret identification code is arranged in the QR code Q. You may do it. As a result, the host computer HST can recognize that the data code behind the terminal identification code is a secret data code. In addition, in the code area after the termination identification code (the empty area of the code area) where only the padding code is originally placed, it is other than the padding code and is not a secret data code (for example, it corresponds to the padding code due to data corruption) In this case, since the information indicating that the data is a secret data code is not output to the host computer HST, a malfunction that may be caused by decoding something other than the secret data code is prevented. be able to.
これに対し、当該データコードが秘匿識別コードであると判断できない場合には(S321;No)、秘匿識別コードよりも後には、これ以上、秘匿データコードが当該QRコードQには含まれていないことになるので、本復号化処理を終了して図6に示すステップS300を終えてデコード処理を終了する。 On the other hand, when it cannot be determined that the data code is a secret identification code (S321; No), no more secret data code is included in the QR code Q after the secret identification code. Therefore, this decoding process is finished, step S300 shown in FIG. 6 is finished, and the decoding process is finished.
ステップS323によりコード数jを取得すると、続くステップS325では、この文字数(j)分だけデータコードを取得する処理が行われ、さらにステップS327によりカウンタnが次のデータコード、つまり秘匿データコードを指すように「n+j+2」をカウンタnに設定する処理が行われた後、ステップS329によりn番目の復号キー検査データ(鍵特定情報)を取得する処理が行われる。 When the code number j is acquired in step S323, in the subsequent step S325, a process for acquiring the data code for the number of characters (j) is performed, and in step S327, the counter n indicates the next data code, that is, the secret data code. Thus, after the process of setting “n + j + 2” to the counter n is performed, the process of acquiring the nth decryption key check data (key specifying information) is performed in step S329.
そして、このステップS329により取得した復号キー検査データに基づいて、先のステップS209によりホストコンピュータHSTから受信した復号キーがこのn番目の秘匿データコードの暗号化データを解読する鍵として適合しているか否かの判断をステップS331により行う。ステップS331に当該復号キーが適合していると判断した場合には(S331;Yes)、続くステップS333により暗号化データを解読する。 Then, based on the decryption key check data acquired in step S329, whether the decryption key received from the host computer HST in previous step S209 is suitable as a key for decrypting the encrypted data of the nth secret data code A determination of whether or not is made in step S331. If it is determined that the decryption key is suitable for step S331 (S331; Yes), the encrypted data is decrypted in the subsequent step S333.
なお、ここでの暗号化は、第1実施形態で説明した公知の視覚復号型暗号技術(視覚復号型秘密分散法)を用いたもので、これにより、秘匿データコードの暗号化データがこのような視覚復号型暗号技術により暗号化されている場合でも、復号して元の平文に戻すことができる。なお、このステップS333を実行する制御回路40等は、特許請求の範囲に記載の「復号手段」に相当し得るものである。
The encryption here uses the well-known visual decryption type encryption technique (visual decryption type secret sharing method) described in the first embodiment, so that the encrypted data of the secret data code is like this. Even if it is encrypted by a visual decryption type encryption technique, it can be decrypted and returned to the original plaintext. Note that the
これに対して、ステップS331に当該復号キーが適合していると判断できない場合には(S331;No)、当該n番目の秘匿データコードを解読することなく、その次の秘匿データコードを取得すべく、ステップS337に移行してカウンタnにn+1を設定する。これにより、QRコードリーダ20が有する復号キーが当該n番目の秘匿データコードを解読できる復号キーでない場合には、当該n番目の秘匿データコードは解読も復号されないので、不要な復号処理を抑制することができる。なお、このステップS331を実行する制御回路40等は、特許請求の範囲に記載の「鍵適合判断手段」に相当し得るものである。
On the other hand, when it cannot be determined in step S331 that the decryption key is suitable (S331; No), the next secret data code is acquired without decrypting the nth secret data code. Therefore, the process proceeds to step S337 and n + 1 is set to the counter n. As a result, if the decryption key of the
ステップS335では、秘匿データコードを復号する処理が行われる。即ちその前のステップS333により暗号化データを解読することができているので、このステップS335により解読した暗号化データに基づいて秘匿データコードを復号(デコード)する。 In step S335, a process for decoding the secret data code is performed. That is, since the encrypted data can be decrypted in the previous step S333, the secret data code is decrypted based on the encrypted data decrypted in this step S335.
ステップS335による復号処理が終わると、ステップS337により、カウントnが次のデータコードを指すように「n+1」をカウンタnに設定する処理が行われた後、続くステップS339により、n番目のデータコードを取得する処理が行われる。 When the decoding process in step S335 is completed, a process for setting “n + 1” to the counter n is performed in step S337 so that the count n indicates the next data code. Then, in the subsequent step S339, the nth data code is set. The process of acquiring is performed.
そして、ステップS341により、ステップS339で取得したn番目のデータコードが埋め草コードであるか否かを判断する処理が行われる。これにより、もし当該n番目のデータコードが埋め草コードである場合には(S341;Yes)、これ以上、当該QRコードQには秘匿データコードが含まれていないことになるので、本復号化処理を終了して図6に示すステップS300を終えてデコード処理を終了する。 In step S341, processing is performed to determine whether the nth data code acquired in step S339 is a padding code. As a result, if the nth data code is a padding code (S341; Yes), the QR code Q does not contain any more secret data code. The process is finished, and step S300 shown in FIG. 6 is finished, and the decoding process is finished.
これに対し、ステップS341により当該n番目のデータコードが埋め草コードであると判断されない場合には(S341;No)、当該n番目のデータコードは、秘匿データコードであるので、ステップS323に処理を移行して、再び(n+1)番目のデータコードをコード数jを取得することで、前述と同様の処理を行う。 On the other hand, if it is not determined in step S341 that the n-th data code is a padding code (S341; No), the n-th data code is a secret data code, so the process proceeds to step S323. , And the number n of the (n + 1) th data code is acquired again to perform the same processing as described above.
このように、ステップS319,S323〜S335では、終端識別コードの後方に配置されて、本来はデコードされないデータコード(第2のデータコード、秘匿データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、特許請求の範囲に記載の「第2デコード手段」に相当し得る。
As described above, in steps S319 and S323 to S335, a process of obtaining and decoding a data code (second data code, secret data code) that is arranged behind the termination identification code and is not originally decoded is performed. Therefore, the
以上説明したように、本第2実施形態に係るQRコードリーダ20によると、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、秘匿データコード(第2のデータコード)が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、第1実施形態で説明したQRコードプリンタ10により印刷されたQRコードQを、本第2実施形態に係るQRコードリーダ20によりデコードすることができる。
As described above, according to the
なお、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(E) を参照して説明したように復号キーそのものが秘匿データコードに付加されている場合には、このステップS329に代えて、n番目の復号キーを取得するように構成しても良い。これにより、秘匿データコードの復号キー(復号できる鍵)を当該QRコードリーダ20が持っていなくても、当該秘匿データコードを復号して元の平文に戻すことができる。この場合、「n番目の復号キーを取得する」処理を実行する制御回路40等は、特許請求の範囲に記載の「鍵分離手段」に相当し得る。
In the decoding process described above, the nth decryption key check data is obtained in step S329. For example, as described with reference to FIG. 3E in the first embodiment, the decryption key itself is used. May be added to the secret data code, the n-th decryption key may be obtained instead of step S329. Thus, even if the
また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップS329に代えて、n番目の復号キーを取得するように構成することで、秘匿データコードの復号キーを当該QRコードリーダ20が持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
Even if each secret data code is encrypted with a different encryption key, if each decryption key is added to each secret data code, the nth decryption is performed instead of step S329. By configuring so as to acquire the key, each secret data code can be decrypted and returned to the original plaintext even if the
さらに、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(D) を参照して説明したように位置情報としての「開始桁」が秘匿データコードに付加されている場合には、このステップS329に代えて、秘匿データコードから「開始桁」を分離してこの分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置するように構成しても良い。これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。この場合、「秘匿データコードから「開始桁」を分離する」処理を実行する制御回路40等は、特許請求の範囲に記載の「位置情報分離手段」に相当し得る。また、「この分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置する」処理を実行する制御回路40等は、特許請求の範囲に記載の「データ配置手段」に相当し得る。
Further, in the decoding process described above, the n-th decryption key check data is obtained in step S329. For example, as described with reference to FIG. If the “start digit” is added to the secret data code, instead of this step S329, the “start digit” is separated from the secret data code, and the secret data is based on the separated “start digit”. The secret data obtained by decoding (decoding) the code may be arranged in a positional relationship in the data record before being encoded. As a result, even if the positional relationship in the data record before being coded as a code word is mixed before and after, the decoded data is arranged in the positional relationship before coding based on this positional information. be able to. In this case, the
[第3実施形態]
次に、本発明の第3実施形態に係るQRコードプリンタ10による他のQRコードの生成処理を図8および図9を参照して説明する。ここで説明する他のQRコードは、図9(C) に示すように、埋め草コード(11101100)の代わりに、任意のコード(例えば00000000や11111111)を空き領域に詰めるフォーマットを採るものである。
[Third Embodiment]
Next, another QR code generation process by the
なお、図8に示すコード生成処理のフローチャートにおいて、既に説明したコード生成処理(図2)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図9に示すデータやコードのフォーマット例についても、同様に、既に説明したフォーマット例(図3)と実質的に同一のフォーマットについては詳細な説明を省略する。なお、図9では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。 In the flowchart of the code generation process shown in FIG. 8, process steps that are substantially the same as the process steps that make up the already described code generation process (FIG. 2) are assigned the same reference numerals, and detailed description thereof is omitted. Similarly, for the data and code format examples shown in FIG. 9, detailed description of the format substantially the same as the format example (FIG. 3) already described is omitted. In FIG. 9, for the sake of convenience, the disclosed data code is expressed as “disclosed code”, and the terminal identification code is expressed as “end terminal”.
図8に示すように、コード生成処理は、QRコードプリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、ステップS101により初期設定処理が行われると、次にステップS103により印刷データを受信する。そして、ステップS107,S111を経て秘匿データを受信すると、ステップS115により開示データおよび秘匿データを並び替え、さらにステップS117により開示データや秘匿データ等の各データを符号化した後、ステップS119により誤り訂正符号を生成してステップS121により開示データコードの後に終端識別コードを付加する。
As shown in FIG. 8, the code generation process is started by the
なお、このような終端識別コードを開示データコードの後に付加するのではなく、例えば、図9(C) の括弧内に示すフォーマットのように、全ての開示データコードのデータ長を算出することによって得られる「開示データコードがなすコード列の終端位置」(以下単に「終端位置」という)を特定できる終端位置データ(図9(C) では「終端情報」)を開示データコードの先頭に配置または付加しても良い。 Instead of adding such a terminal identification code after the disclosed data code, for example, by calculating the data length of all disclosed data codes as in the format shown in parentheses in FIG. The end position data (in FIG. 9C, “end information”) that can identify the “end position of the code string formed by the disclosed data code” (hereinafter simply referred to as “end position”) is placed at the beginning of the disclosed data code. It may be added.
そして、印刷データに秘匿データが含まれている場合には(S123;Yes)、ステップS125〜S133によって、終端位置に続けて秘匿識別コード等を付加した後、また印刷データに秘匿データが含まれていない場合には(S123;No)、終端位置の後に、それぞれステップS135’により、前述した任意コードとして、例えば、00000000や11111111を付加する。 If the secret data is included in the print data (S123; Yes), the secret data is added to the print data after adding the secret identification code after the end position in steps S125 to S133. If not (S123; No), for example, 00000000 or 11111111 is added as the above-mentioned arbitrary code after the end position in step S135 ′.
即ち、ステップS135’による任意コードの付加処理では、終端位置よりも後で誤り訂正コードよりも前の範囲において、秘匿データコードを詰めても空き領域(コード領域の空き部分)が生じる場合に埋め草コードに代えて任意のコード(例えば00000000や11111111)を詰める。このため、例えば、このようなデータフォーマットを構成するメモリ上で、予め全ての範囲をこのような任意のコードで埋める初期化処理をステップS101において処理している場合には、当該ステップS135’を行うことなく省略できる(図8ではステップS135’の枠線は破線で表現されている)。 That is, in the arbitrary code addition processing in step S135 ′, if an empty area (empty portion of the code area) is generated even if the secret data code is packed in the range after the end position and before the error correction code, Instead of the grass code, an arbitrary code (for example, 00000000 or 11111111) is packed. For this reason, for example, in the case where an initialization process in which the entire range is preliminarily filled with such an arbitrary code on the memory constituting such a data format in step S101, step S135 ′ is performed. It can be omitted without performing (in FIG. 8, the frame line of step S135 ′ is represented by a broken line).
そして、ステップS137により、誤り訂正コードを付加する処理が行われると、図9(C) に示すフォーマットのデータコードが生成されるため、続くステップS139によりこのようなデータコードに基づいて各セルを生成して図4に示して説明したデータブロックに配置される。つまり、本来、埋め草コードが配置される範囲に前述した任意コードが配置されること以外は、図2〜図4を参照して説明したQRコードと同様に配置される。 Then, when the process of adding an error correction code is performed in step S137, a data code having the format shown in FIG. 9C is generated. In subsequent step S139, each cell is changed based on such a data code. Generated and placed in the data block described with reference to FIG. In other words, the QR code is arranged in the same manner as the QR code described with reference to FIGS. 2 to 4 except that the arbitrary code described above is originally arranged in the range in which the padding code is arranged.
以上説明したように、本第3実施形態に係るQRコードプリンタ10によると、MPU11により実行されるコード生成処理によって生成されるQRコードQでは、ステップS133により秘匿データコードが終端位置の後に配置されている。これにより、終端位置の後に配置された秘匿データコードは、一般仕様の読取装置では読み取りの対象にならないので、このような秘匿データコードが含まれる二次元コードを一般仕様の読取装置で読み取っても、当該秘匿データコードによって秘匿しようとするデータの存在はわからない。したがって、一般仕様の読取装置の利用者には秘匿データの存在を認識させないようにすることができる。
As described above, according to the
よって、このような秘匿データコードを含んでいても、一般仕様の読取装置には当該秘匿データコードのデコードデータに相当するものが画面表示されないので、利用者に秘匿データの存在を認識させることがなく、当該利用者に対して不信感を与えたり、解読を試みようとする不用意な動機を与えることがない。また、当該秘匿データコードのデコードデータに相当するものが制御データ等であっても、それが画面表示されることがないので、画面表示が乱れたりもしない。 Therefore, even if such a secret data code is included, since the data corresponding to the decode data of the secret data code is not displayed on the screen in the general-purpose reading device, the user can recognize the presence of the secret data. Therefore, the user is not distrusted or inadvertently motivated to try to decipher. Further, even if control data or the like corresponding to the decoded data of the secret data code is not displayed on the screen, the screen display is not disturbed.
なお、上述した第3実施形態では、QRコードプリンタ10により、ラベルPにQRコードQを印刷する例を挙げて説明したが、本発明はこれに限られることはなく、QRコードQを視覚的に表現可能なものであればよく、例えば、図8に示すコード生成処理をパソコン本体2により実行してディスプレイ3にQRコードQを表示するように構成しても良い。この場合、コード生成処理は、コンピュータプログラムとして概念できるので、例えば、「開示するデータを表すコード語としてコード化された開示データコードの総数が、コード語を配置すべきコード領域に収容可能な容量に満たない場合、前記コード領域に配置された前記開示データコードがなすコード列の終端を示す終端識別コードをこのコード列の最後に配置、または前記開示データコードがなすコード列の終端位置を特定可能な終端識別情報をこのコード列の所定の位置に配置する二次元コードの生成装置として、コンピュータを機能させるためのプログラムであって、秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、または前記終端識別情報により特定される前記終端位置の後、に配置することを特徴とする二次元コードの生成プログラム。」と表現可能な技術的思想を把握できる。これにより、この二次元コードの生成プログラムにより二次元コードの生成装置として機能するコンピュータは、上述したQRコードプリンタ10のMPU11等と同様の作用および効果を奏する。
In the third embodiment described above, an example in which the QR code Q is printed on the label P by the
また、上述した第3実施形態では、QRコードプリンタ10にパソコン1を接続して当該パソコン1から印刷データを送る構成を例示して説明したが、英数字、漢字や記号等の文字データを出力可能な情報処理装置であれば、このような機能を備えたデジタルカメラや携帯電話機、あるいはハンドヘルドコンピュータやハンディターミナル等を、QRコードプリンタ10に接続する構成を採っても上述した作用および効果を得ることができる。
In the third embodiment described above, the configuration in which the
[第4実施形態]
次に、本発明の第4実施形態に係るQRコードリーダ20による他のQRコードのデコード処理を図10および図11を参照して説明する。なお、「他のQRコード」とは、埋め草コード(11101100)の代わりに、任意のコード(例えば00000000や11111111)を空き領域に詰めるフォーマットを採るコードのことで、第3実施形態に係るQRコードプリンタ10により印刷されたQRコードのことである。
[Fourth Embodiment]
Next, another QR code decoding process by the
なお、図10に示すデコード処理のフローチャートにおいて、既に説明したデコード処理(図6)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図11に示す復号化処理のフローチャートにおいて、既に説明した復号化処理(図7)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。 Note that, in the flowchart of the decoding process shown in FIG. 10, the processing steps that are substantially the same as the processing steps constituting the decoding process (FIG. 6) already described are assigned the same reference numerals and detailed description thereof is omitted. Also, in the flowchart of the decoding process shown in FIG. 11, processing steps that are substantially the same as the processing steps constituting the decoding process (FIG. 7) already described are assigned the same reference numerals and detailed description thereof is omitted.
図10に示すように、デコード処理は、QRコードリーダ20の電源投入により起動する制御回路40およびメモリ35によって開始され、ステップS201により初期設定処理が行われると、ステップS205により所定時間を経過した後(S205;Yes)、またはステップS209により復号キーを受信した後(S209;Yes)、ステップS213により画像データを取得する。そして、ステップS215,S217,S219,S221によりQRコードQを画像認識してステップS223により誤り訂正可能であるか否かを判断して、誤り訂正可能であると判断できる場合には(S223;OK)、誤り訂正をした後、ステップS300’により復号化処理(図11)を行う。
As shown in FIG. 10, the decoding process is started by the
図11に示すように、ステップS300’の復号化処理では、ステップS301〜S313により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)が見つかると(S305’;Yes)、ステップS315,S317,S319によりカウンタnが指すn番目のデータコードを取得してそれが秘匿識別コードであるか否かをステップS321により判断する。そして、秘匿識別コードであると判断すると(S321;Yes)、S323〜S331により復号キーの適合を調べてその復号キーでS333により暗号化データを解読し、さらにステップS335により秘匿データコードを復号する。 As shown in FIG. 11, in the decoding process in step S300 ′, the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) in steps S301 to S313. If it is found (S305 ′; Yes), the nth data code pointed to by the counter n is acquired in steps S315, S317, and S319, and it is determined in step S321 whether or not it is a secret identification code. If it is determined that the code is a secret identification code (S321; Yes), the compatibility of the decryption key is checked in S323 to S331, the encrypted data is decrypted in S333 using the decryption key, and the secret data code is decrypted in step S335. .
なお、ステップS321により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータHSTに対して当該QRコードQには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータHSTでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので秘匿データコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータHSTに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。 When it is determined in step S321 that the secret identification code is arranged, for example, the host computer HST is notified that the secret identification code is arranged in the QR code Q. You may do it. As a result, the host computer HST can recognize that the data code behind the terminal identification code is a secret data code. In addition, in the code area after the termination identification code (the empty area of the code area) where only the padding code is originally placed, it is other than the padding code and is not a secret data code (for example, it corresponds to the padding code due to data corruption) In this case, since the information indicating that the data is a secret data code is not output to the host computer HST, a malfunction that may be caused by decoding something other than the secret data code is prevented. be able to.
そして、ステップS336’によりこの復号した秘匿データコードが最後の秘匿データコードであるか否かを判断する。具体的には、例えば、図9(C) に示すように、秘匿識別子の次には、その後に続く秘匿データコードのデータ長が格納されているので、これに基づいて当該秘匿データコードが最後の秘匿データコードに該当するか否かを判断する。また、前述したように、最後の秘匿データコードの後、つまり空き領域(コード領域の空き部分)には任意のコード(例えば00000000や11111111)が詰められているので、このような任意のコードの存在に基づいて当該秘匿データコードが最後の秘匿データコードに該当するか否かを判断する。 In step S336 ', it is determined whether or not the decrypted secret data code is the last secret data code. Specifically, for example, as shown in FIG. 9 (C), since the data length of the subsequent secret data code is stored after the secret identifier, the secret data code is the last one based on this. It is determined whether it corresponds to the secret data code. In addition, as described above, after the last secret data code, that is, an arbitrary code (for example, 00000000 or 11111111) is packed in the empty area (the empty area of the code area). Based on the presence, it is determined whether or not the secret data code corresponds to the last secret data code.
ステップS336’により当該秘匿データコードが最後の秘匿データコードであると判断されない場合(最後の秘匿データコードでない判断された場合)には(S336’;No)、ステップS337により、カウントnが次のデータコードを指すように「n+1」をカウンタnに設定する処理が行われた後、続くステップS339により、n番目のデータコードを取得する処理が行われて、前述と同様にステップS323〜S331により復号キーの適合を調べる。 When it is not determined in step S336 ′ that the secret data code is the last secret data code (when it is determined that the secret data code is not the last secret data code) (S336 ′; No), the count n is set to the next count in step S337. After the process of setting “n + 1” in the counter n so as to indicate the data code is performed, the process of acquiring the nth data code is performed in the subsequent step S339, and the process of steps S323 to S331 is performed as described above. Check decryption key match.
これに対し、ステップS336’により当該秘匿データコードが最後の秘匿データコードであると判断された場合には(S336’;Yes)、これ以上、当該QRコードQには秘匿データコードが含まれていないことになるので、本復号化処理を終了して図10に示すステップS300’を終えてデコード処理を終了する。 On the other hand, when it is determined in step S336 ′ that the secret data code is the last secret data code (S336 ′; Yes), the QR code Q further includes the secret data code. Therefore, the present decoding process is finished, step S300 ′ shown in FIG. 10 is finished, and the decoding process is finished.
なお、ステップS303〜S313では、終端位置の前方に配置されて元来デコードされる通常のデータコード(第1のデータコード、開示データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、特許請求の範囲に記載の「第1デコード手段」に相当し得るものである。
In steps S303 to S313, a process of obtaining and decoding a normal data code (first data code, disclosed data code) that is arranged in front of the end position and originally decoded is performed. For this reason, the
また、ステップS321では、ステップS319により取得されたn番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このため、このステップS321を実行する制御回路40等は、特許請求の範囲に記載の「データコード判断手段」や「秘匿識別コード判断手段」に相当し得るものである。さらに、ステップS331やS333を実行する制御回路40等は、特許請求の範囲に記載の「鍵適合判断手段」や「復号手段」に相当し得るものである。
In step S321, processing for determining whether or not the nth data code acquired in step S319 is a secret identification code is performed. For this reason, the
さらに、ステップS319,S323〜S335では、終端位置の後方に配置されて、本来はデコードされないデータコード(第2のデータコード、秘匿データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、特許請求の範囲に記載の「第2デコード手段」に相当し得るものである。
Further, in steps S319 and S323 to S335, a process of acquiring and decoding a data code (second data code, secret data code) that is arranged behind the end position and is not originally decoded is performed. For this reason, the
以上説明したように、本第4実施形態に係るQRコードリーダ20によると、本来、データコードが配置されない終端位置の後のコード領域(コード領域の空き部分)に、秘匿データコード(第2のデータコード)が配置されていても、この秘匿データコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。よって、第3実施形態で説明したQRコードプリンタ10により印刷されたQRコードQを、本第4実施形態に係るQRコードリーダ20によりデコードすることができる。
As described above, according to the
なお、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(E) を参照して説明したように第3実施形態でも同様に、復号キーそのものが秘匿データコードに付加されている場合には(図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 third implementation is performed. Similarly, in the embodiment, when the decryption key itself is added to the secret data code (see FIG. 9E), the n-th decryption key may be obtained instead of step S329. good. Thus, even if the
また、各秘匿データコードごとに異なった暗号キーで暗号化されている場合であっても、各秘匿データコードについてそれぞれの復号キーが付加されているときには、ステップS329に代えて、n番目の復号キーを取得するように構成することで、秘匿データコードの復号キーを当該QRコードリーダ20が持っていなくても、それぞれの秘匿データコードを復号して元の平文に戻すことができる。
Even if each secret data code is encrypted with a different encryption key, if each decryption key is added to each secret data code, the nth decryption is performed instead of step S329. By configuring so as to acquire the key, each secret data code can be decrypted and returned to the original plaintext even if the
さらに、上述したデコード処理では、ステップS329によりn番目の復号キー検査データを取得するように構成したが、例えば、第1実施形態で図3(D) を参照して説明したように第3実施形態でも同様に、位置情報としての「開始桁」が秘匿データコードに付加されている場合には(図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 third 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
[第5実施形態]
次に、本発明の第5実施形態に係るQRコードプリンタ10による他のQRコードの生成処理を図12〜図14を参照して説明する。ここで説明する他のQRコードは、図14(B) 等に示すように、秘匿データコードα,β等に所定の加工を施して空き領域に詰めるフォーマットを採るものである。
[Fifth Embodiment]
Next, another QR code generation process by the
なお、図12に示すコード生成処理のフローチャートにおいて、既に説明したコード生成処理(図2)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図14に示すコードのフォーマット例についても、同様に、既に説明したフォーマット例(図3)と実質的に同一のフォーマットについては詳細な説明を省略する。なお、図14では、便宜上、開示データコードを「開示コード」、終端識別コードを「終端子」、とそれぞれ表現している。 In the flowchart of the code generation process shown in FIG. 12, process steps that are substantially the same as the process steps constituting the code generation process (FIG. 2) already described are assigned the same reference numerals and detailed description thereof is omitted. Similarly, with respect to the code format example shown in FIG. 14, the detailed description of the format substantially the same as the format example (FIG. 3) already described is omitted. In FIG. 14, for the sake of convenience, the disclosed data code is expressed as “disclosed code”, and the terminal identification code is expressed as “end terminal”.
図12に示すように、コード生成処理は、QRコードプリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、ステップS101により初期設定処理が行われると、次にステップS103により印刷データを受信する。そして、ステップS107,S111を経て秘匿データを受信すると、ステップS117により開示データや秘匿データ等の各データを符号化した後、ステップS121’により開示データコードの後に終端識別コード等(開示データコードがなすコード列の終端位置を含む)を付加する。
As shown in FIG. 12, the code generation process is started by the
そして、印刷データに秘匿データが含まれている場合には(S123;Yes)、ステップS125,S127により終端位置に続けて秘匿識別コードを付加等した後、ステップS131により秘匿データコードを暗号化し、さらにステップS132により空き領域に埋め草コードを付加する。そして、この後にステップS500による所定の加工処理が行われる。一方、印刷データに秘匿データが含まれていない場合には(S123;No)、これらの各処理(S125,S127,S131,S132,S500)を行うことなく、ステップS133に処理を移行する。 If the print data includes secret data (S123; Yes), after adding a secret identification code following the end position in steps S125 and S127, the secret data code is encrypted in step S131. In step S132, a padding code is added to the empty area. Thereafter, predetermined processing in step S500 is performed. On the other hand, when the secret data is not included in the print data (S123; No), the process proceeds to step S133 without performing these processes (S125, S127, S131, S132, S500).
ここで、ステップS500による所定の加工処理を図13を参照して説明する。図13に示すように、所定の加工処理では、まずステップS501によりポインタiをゼロクリアする処理が行われる。このポインタiは、ステップS507〜S517による分散配置処理の対象となるビット位置を指すもので、このクリア処理によって0ビット目からスタートする。 Here, the predetermined processing in step S500 will be described with reference to FIG. As shown in FIG. 13, in the predetermined processing, first, a process of clearing the pointer i to zero is performed in step S501. This pointer i indicates the bit position to be subjected to the distributed arrangement processing in steps S507 to S517, and starts from the 0th bit by this clear processing.
ステップS503では、終端位置よりも後に存在する空き領域(図14(A)〜(C)参照)、即ち、本来埋め草コードで埋められる領域で誤り訂正コードの範囲を除いた領域のビット数nを求める処理が行われる。この処理は、後述のステップS513により疑似乱数Rを求める際に使用される定数である。 In step S503, the number of bits n in an empty area existing after the end position (see FIGS. 14A to 14C), that is, an area that is originally filled with padding code and excluding the error correction code range n. Is obtained. This process is a constant used when the pseudo random number R is obtained in step S513 described later.
続くステップS505では、暗号化データのビット数と復号キー検査データのビット数との和m(図14(D),(E)参照)を求める処理が行われる。即ち、分散配置処理の対象となる秘匿データコードのビット数を把握することにより、後述のステップS519による分散配置完了の可否判断を可能にしている。 In subsequent step S505, a process for obtaining the sum m (see FIGS. 14D and 14E) of the number of bits of the encrypted data and the number of bits of the decryption key check data is performed. That is, by determining the number of bits of the secret data code that is the target of the distributed arrangement process, it is possible to determine whether or not the distributed arrangement can be completed in step S519 described later.
次のステップS507では、開示データコードと暗号化データとを2バイト単位で排他的論理和(EXOR)演算を行いその結果Sを求める処理が行われ、続くステップS509ではこのような演算結果SをステップS513による疑似乱数のシード値にセットする処理が行われる。このシード値は、所定の演算により疑似乱数を発生させるための種で、このシード値が同じであれば、発生する乱数はまったく同じものとなる。つまり、ステップS513による疑似乱数は、この演算結果Sの値によって発生する値およびその発生順が一義的に定まる。この点で、本加工処理は、開示データコードの内容に基づいて行われることとなる。 In the next step S507, an exclusive OR (EXOR) operation is performed on the disclosed data code and the encrypted data in units of 2 bytes, and the result S is obtained. In the subsequent step S509, such an operation result S is obtained. Processing for setting the seed value of the pseudo random number in step S513 is performed. This seed value is a seed for generating a pseudo-random number by a predetermined calculation. If this seed value is the same, the generated random number is exactly the same. That is, the pseudo-random number in step S513 is uniquely determined by the value of the calculation result S and the order of generation. In this respect, this processing is performed based on the content of the disclosed data code.
ステップS511では、ポインタiをインクリメント、つまり1だけカウントアップさせる処理が行われる。これにより、ステップS517等による分散配置処理の対象となるビットの位置(ポインタiが指し示す位置)のカウントがアップされる。先の例では、0から1にカウントアップされることで、1ビット目が指し示めされる。 In step S511, a process of incrementing the pointer i, ie, counting up by 1, is performed. As a result, the count of the bit position (position pointed by the pointer i) to be subjected to the distributed arrangement processing in step S517 or the like is increased. In the previous example, counting up from 0 to 1 points to the first bit.
続くステップS513により、疑似乱数Rを求める処理が行われる。この演算は、前述したシード値に基づいて所定の乱数発生アルゴリズムに従った情報処理を行うことにより、擬似的に乱数を発生させるもので、ここでは、1からn(nは、空き領域のビット数)までの範囲で、疑似乱数を発生させる。このため、例えば「R=rand()mod n + 1」なる演算式で演算される。 In the subsequent step S513, a process for obtaining the pseudo random number R is performed. This operation is to generate a pseudo random number by performing information processing according to a predetermined random number generation algorithm based on the seed value described above. Here, 1 to n (n is a bit in a free area) Pseudo-random numbers are generated in the range up to (number). For this reason, for example, it is calculated by an arithmetic expression “R = rand () mod n + 1”.
なお、rand()は、シード値Sに対して疑似乱数を返す関数で、また、x mod yは、xに対してモジュロー値yを求める関数である。即ち、先の演算式では、modの前の引数x(rand()のこと)となる疑似乱数の値を、modの後の引数y(nのこと)で割ったときの余りに、1を加えた値として疑似乱数Rが求められる。なお、nは、前述したように、空き領域のビット数である。 Note that rand () is a function that returns a pseudo-random number for the seed value S, and x mod y is a function that calculates a modulo value y for x. That is, in the previous arithmetic expression, 1 is added to the remainder when the value of the pseudo random number that is the argument x (that is, rand ()) before mod is divided by the argument y that is after mod (n). As a value, a pseudo random number R is obtained. Note that n is the number of bits in the free area as described above.
このようにステップS513によって1〜nまでの疑似乱数Rが求められると、次のステップS515により当該疑似乱数Rが既に発生したものであるか否かの判断処理が行われる。つまり、疑似乱数Rとして同じ値が発生すると、次のステップS517による再配置処理においてビット値の上書きが行われることから、それ以前に同じビット位置に配置された値が破壊されてしまうことを防止するためである。このため、このステップS515により既に疑似乱数Rとして同じ値が発生していると判断された場合には(S515;Yes)、ステップS513に戻って再度、疑似乱数Rを求める。 When the pseudo-random numbers R from 1 to n are obtained in step S513 in this way, the next step S515 determines whether or not the pseudo-random numbers R have already been generated. That is, when the same value is generated as the pseudo random number R, the bit value is overwritten in the rearrangement process in the next step S517, so that the value previously arranged at the same bit position is prevented from being destroyed. It is to do. For this reason, if it is determined in step S515 that the same value has already been generated as the pseudorandom number R (S515; Yes), the process returns to step S513 to obtain the pseudorandom number R again.
ステップS515により既に発生した疑似乱数Rと同じ値であると判断されない場合には(S515;No)、続くステップS517により暗号化データのiビット目(ポインタiが指し示すビットの位置)の値を空き領域のRビット目にセットする処理、つまり配置処理が行われる。先の例では、1ビット目の値が空き領域のRビット目にセットされる。これにより、本来1ビット目に位置している情報が、乱数により不規則的に発生するRビット目に移動する。 If it is not determined in step S515 that the value is the same as the pseudorandom number R that has already been generated (S515; No), the value of the i-th bit (the position of the bit pointed to by the pointer i) of the encrypted data is made empty in the subsequent step S517. Processing to set the R bit in the region, that is, placement processing is performed. In the previous example, the value of the first bit is set to the R bit of the empty area. As a result, the information originally located at the first bit moves to the R bit generated irregularly by the random number.
続くステップS519では、ポインタiの値が、分散配置処理の対象となる秘匿データコードのビット数の終わり(最終ビット)に達しているか否かを判断する処理、つまり分散配置完了の可否判断が行われる。そして、ポインタiと秘匿データコードの全ビット数とが一致している場合には、秘匿データコードの全てのビットが前述したステップS507〜517による分散配置処理が施されていることになるので(S519;Yes)、本加工処理を終了する。 In the subsequent step S519, a process for determining whether or not the value of the pointer i has reached the end (last bit) of the number of bits of the secret data code that is the target of the distributed arrangement process, that is, whether or not the distributed arrangement has been completed is determined. Is called. When the pointer i matches the total number of bits of the secret data code, all the bits of the secret data code have been subjected to the distributed arrangement processing in steps S507 to S517 described above ( S519; Yes), this processing ends.
これに対して、ポインタiと秘匿データコードの全ビット数とが一致していない場合には、秘匿データコードにはまだ分散配置処理が施されていないビットが残存することになるので(S519;No)、ステップS511によりポインタiをカウントアップして再度ステップS513による疑似乱数発生処理を行う。 On the other hand, when the pointer i and the total number of bits of the secret data code do not match, the bits that have not yet been distributed and arranged remain in the secret data code (S519; No), the pointer i is counted up in step S511, and the pseudo-random number generation process in step S513 is performed again.
このようにステップS513〜S517による処理を秘匿データコードの全ビットに対して繰り返し行うことにより、本来、1ビット目、2ビット目、3ビット目、…、(n−1)ビット目、nビット目というように順番に並ぶ各ビット情報が、不規則的に変動する疑似乱数Rに従った位置にRビット目にそれぞれ移動してしまう。このため、ステップS500による所定の加工処理が終了すると、例えば、図14(B) に示すように、分散配置処理が施される前の秘匿データコードα,β(図14(A) )は、いずれもビット単位でバラバラに分解されて秘匿データコード片として分散して再配置され、また、埋め草コードも同様に分散配置処理よってビット単位でバラバラに分解されるため、秘匿データコード片と混在した状態で、空き領域内に再配置される。 Thus, by repeating the processing in steps S513 to S517 for all the bits of the secret data code, the first bit, the second bit, the third bit,..., The (n−1) th bit, the n bit Each piece of bit information arranged in order, such as an eye, moves to the position corresponding to the random number R that fluctuates irregularly. Therefore, when the predetermined processing process in step S500 is completed, for example, as shown in FIG. 14B, the secret data codes α and β (FIG. 14A) before the distributed arrangement process is performed. Both are disassembled in bit units and distributed and rearranged as confidential data code fragments, and the padded grass code is also disassembled into bits in the same manner by distributed allocation processing. In this state, it is rearranged in the free area.
これにより、暗号化されている秘匿データコードがさらにスクランブルされてしまうので、セキュリティの強度を一層高めることが可能となる。 As a result, the encrypted secret data code is further scrambled, so that the security can be further enhanced.
なお、本加工処理では、このようなステップS507〜S517による分散配置処理に代えて、例えば、ビット位置を変換可能なビット位置変換テーブル(変換テーブル)に基づくビットの並替えでも良い。具体的には、例えば、1ビット目を4ビット目に、2ビット目を13ビット目に、3ビット目を1ビット目に、4ビット目を2ビット目に、5ビット目を15ビット目に、6ビット目を11ビット目に、7ビット目を8ビット目に、8ビット目を3ビット目に、9ビット目を10ビット目に、10ビット目を6ビット目に、11ビット目を12ビット目に、12ビット目を5ビット目に、13ビット目を9ビット目に、14ビット目を16ビット目に、15ビット目を7ビット目に、16ビット目を14ビット目に、それぞれ位置を変換するビット位置変換テーブルを設けその変換規則に従ってビット位置を変換する。これにより、例えば、16ビット構成のデータ「1001011011010110」(96D6h)は、「0101101101100001」(5A61h)に変換される。 In this processing, instead of such distributed arrangement processing in steps S507 to S517, for example, bit rearrangement based on a bit position conversion table (conversion table) that can convert bit positions may be used. Specifically, for example, the 1st bit is the 4th bit, the 2nd bit is the 13th bit, the 3rd bit is the 1st bit, the 4th bit is the 2nd bit, the 5th bit is the 15th bit 6th bit to 11th bit, 7th bit to 8th bit, 8th bit to 3rd bit, 9th bit to 10th bit, 10th bit to 6th bit, 11th bit To the 12th bit, 12th bit to 5th bit, 13th bit to 9th bit, 14th bit to 16th bit, 15th bit to 7th bit, 16th bit to 14th bit Each bit position conversion table for converting the position is provided to convert the bit position according to the conversion rule. Thereby, for example, data “1001011011010110” (96D6h) having a 16-bit configuration is converted into “0101101101100001” (5A61h).
また、このようなビット位置変換テーブルを通すことによって、例えば、先の例では、16進表記のデータ「96D6h」が、「5A61h」に変換されることから、秘匿データコードを構成するビットにより特定されるデータ値、そのものを所定のデータ値変換テーブル(変換テーブル)に基づいて変換する技術的思想として把握することができる。なお、このデータ値の変換は、例えば、入力データXを2倍にしてから1を減算して出力Y(=X×2−1)するといった所定のデータ値変換式によっても可能である。 In addition, by passing through such a bit position conversion table, for example, in the above example, the data “96D6h” in hexadecimal notation is converted to “5A61h”, so that it is specified by the bits constituting the secret data code. It can be grasped as a technical idea that the data value itself is converted based on a predetermined data value conversion table (conversion table). This data value conversion can also be performed by a predetermined data value conversion formula, for example, by doubling the input data X and subtracting 1 to output Y (= X × 2-1).
さらに、例えば、ビット位置を所定ビット数だけLSB側に循環してシフトするように、循環シフトレジスタを通しても良い。先の16ビット構成のデータ例では、「1001011011010110」(96D6h)は、「0110100101101101」(696Dh)に変換される。勿論、シフト量は4ビットに限られることはなく、16ビット構成の場合には、1ビット〜15ビットのうちのいずれでも良く、またシフト方向もMSB側であっても良い。なお、ここで例示した16ビット構成の16ビットは、上述した暗号化データのビット数と復号キー検査データのビット数の和mに相当するものである。なお、図14(D) には、上述したような分散配置処理以外のビットの並替えやビット値の変換によるフォーマット例(暗号化データ+復号キー検査データ)が図示されている(図14(E) は、比較として第3実施形態のコード生成処理により生成された秘匿コードの構成例である。)。 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 third 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.
以上説明したように、本第5実施形態に係るQRコードプリンタ10によると、MPU11により実行されるコード生成処理によって生成されるQRコードQでは、ステップS500による加工処理により秘匿データコードに所定の加工を施して、終端識別コードの後、または終端識別情報により特定される終端位置の後、に配置する。これにより、秘匿データコードは、所定の加工を施されて当該秘匿データコードの存在がわからないように加工されているので、たとえ終端識別コードの後等を読み取る試みがなされても、秘匿データコードが配置されていることすらわからないので、セキュリティの強度を一層高めることができる。
As described above, according to the
なお、上述した第5実施形態では、ステップS113の後に、開示データおよび秘匿データを並び替える処理(図2に示すS115相当)を介在させていないが、印刷データに、第三者に開示するデータ(開示データ)と、第三者には秘密にして隠しておきたいデータ(秘匿データ)と、が含まれており、これらがデータレコード中で混在している場合に、ステップS111により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行っても良い。これにより、例えば、パソコン1から送られてくる印刷データのレコードに、開示データA、秘匿データα、開示データB、秘匿データβの順に並ぶデータが含まれていた場合には、ステップS115により、開示データA、開示データB、秘匿データα、秘匿データβの順に並び替える処理を行うことにより、開示データと秘匿データとがそれぞれまとめられるので、後のステップ121による終端識別コードの付加処理や、ステップS125による秘匿識別コードの付加処理等が容易になる。
In the fifth embodiment described above, the process of rearranging the disclosed data and the confidential data (corresponding to S115 shown in FIG. 2) is not performed 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
[第6実施形態]
次に、本発明の第6実施形態に係るQRコードリーダ20による他のQRコードのデコード処理を図15〜図17を参照して説明する。なお、ここで説明する他のQRコードは、図14(B) 等を参照して前述したように、秘匿データコードα,β等に所定の加工を施して空き領域に詰めるフォーマットを採るものである。
[Sixth Embodiment]
Next, another QR code decoding process by the
なお、図15に示すデコード処理のフローチャートにおいて、既に説明したデコード処理(図10)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。また、図16に示す復号化処理のフローチャートにおいて、既に説明した復号化処理(図11)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。 In the decoding process flowchart shown in FIG. 15, processing steps that are substantially the same as the processing steps that constitute the decoding process (FIG. 10) that has already been described are assigned the same reference numerals, and detailed descriptions thereof are omitted. Also, in the flowchart of the decoding process shown in FIG. 16, the processing steps that are substantially the same as the processing steps constituting the decoding process (FIG. 11) already described are assigned the same reference numerals and detailed description thereof is omitted.
図15に示すように、デコード処理は、QRコードリーダ20の電源投入により起動する制御回路40およびメモリ35によって開始され、ステップS201により初期設定処理が行われると、ステップS205により所定時間を経過した後(S205;Yes)、またはステップS209により復号キーを受信した後(S209;Yes)、ステップS213により画像データを取得する。そして、ステップS215,S217,S219,S221によりQRコードQを画像認識してステップS223により誤り訂正可能であるか否かを判断して、誤り訂正可能であると判断できる場合には(S223;OK)、誤り訂正をした後、ステップS300”により復号化処理(図16)を行う。
As shown in FIG. 15, the decoding process is started by the
図16に示すように、ステップS300”の復号化処理では、ステップS301〜S313により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)が見つかると(S305’;Yes)、ステップS315,S317,S319によりカウンタnが指すn番目のデータコードを取得してそれが秘匿識別コードであるか否かをステップS321により判断する。そして、秘匿識別コードであると判断すると(S321;Yes)、続くステップS323によりコード数jを取得した後、ステップS600による所定の抽出処理が行われる。 As shown in FIG. 16, in the decoding process of step S300 ″, the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) in steps S301 to S313. If found (S305 ′; Yes), the nth data code pointed to by the counter n is obtained in steps S315, S317, and S319, and it is determined whether or not it is a secret identification code in step S321. If it is determined that it is a code (S321; Yes), the number j of codes is acquired in the subsequent step S323, and then a predetermined extraction process in step S600 is performed.
なお、ステップS321により秘匿識別コードが配置されていると判断した場合には、例えば、ホストコンピュータHSTに対して当該QRコードQには、秘匿識別コードが配置されている旨を通知するように構成しても良い。これにより、ホストコンピュータHSTでは、終端識別コードよりも後方のデータコードが秘匿データコードである旨を把握することができる。また、本来、埋め草コードしか配置されない終端識別コードの後のコード領域(コード領域の空き部分)に、埋め草コード以外のもので秘匿データコードではないもの(例えばデータ化けにより埋め草コードに該当しなくなったもの)が配置されている場合には、秘匿データコードである旨の情報がホストコンピュータHSTに対して出力されないので、秘匿データコード以外のものをデコードすることで生じ得る誤動作を防止することができる。 When it is determined in step S321 that the secret identification code is arranged, for example, the host computer HST is notified that the secret identification code is arranged in the QR code Q. You may do it. As a result, the host computer HST can recognize that the data code behind the terminal identification code is a secret data code. In addition, in the code area after the termination identification code (the empty area of the code area) where only the padding code is originally placed, it is other than the padding code and is not a secret data code (for example, it corresponds to the padding code due to data corruption) In this case, since the information indicating that the data is a secret data code is not output to the host computer HST, a malfunction that may be caused by decoding something other than the secret data code is prevented. be able to.
ここで、ステップS600による所定の抽出処理を図17を参照して説明する。なお、図17に示す所定の抽出処理は、既に第5実施形態で説明した所定の加工処理(図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 to the predetermined processing (FIG. 13) already described in the fifth embodiment, and the processing steps constituting the predetermined processing are as follows. 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によりセットされるシード値は、第5実施形態で説明したように、所定の演算により疑似乱数を発生させるための種であり、このシード値が同じであれば、発生する乱数はまったく同じものとなる。このため、同一のQRコードQであれば、所定の加工処理(図13)のシード値と本抽出処理のシード値とは、同じ値となり、次のステップS513による疑似乱数の値およびその発生順も同じになる。 As described in the fifth embodiment, the seed value set in step S509 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 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.
即ち、第5実施形態の所定の加工処理では、ステップS517により、暗号化データのiビット目(ポインタiが指し示すビットの位置)の値を空き領域のRビット目にセットする処理を行うことによって、例えば、1ビット目の値を空き領域のRビット目にセットしたが、本抽出処理のステップS617では、これとは逆に、空き領域のRビット目の値を暗号化データバッファのiビット目(ポインタiが指し示すビットの位置)にセット、例えば、空き領域のRビット目の値を暗号化データバッファの1ビット目にセットする。 That is, in the predetermined processing of the fifth 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.
これにより、第5実施形態の所定の加工処理により空き領域のRビット目にセットされた暗号化データのiビット目の値は、本抽出処理によって、暗号化データバッファのiビット目にセットされるので、ビット単位でバラバラに分解された秘匿データコード片等を元通りに復元することが可能となる。つまり、ステップS617等では集約復元処理が可能となる。 As a result, the value of the i-th bit of the encrypted data set in the R bit of the empty area by the predetermined processing in the fifth embodiment is set in the i-th bit of the encrypted data buffer by this extraction processing. 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による集約復元処理に代えて、例えば、ビット位置を逆方向に変換可能なビット位置逆変換テーブルに基づくビットの並替えでも良い。具体的には、例えば、第5実施形態で説明したビット位置逆変換テーブルにおいては、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 reverse conversion table described in the fifth 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).
また、このようなビット位置逆変換テーブルを通すことに代えて、秘匿データコードを構成するビットにより特定されるデータ値を逆方向に変換可能なデータ値逆変換テーブルを用いても良い。例えば、第5実施形態で説明したデータ値変換テーブルの例においては、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 fifth embodiment, the data “96D6h” in hexadecimal notation is converted to “5A61h”, so that “5A61h” is converted to “96D6h” in the reverse direction. By performing conversion based on a predetermined data value reverse conversion table that can be converted back to, restoration processing can be performed.
さらに、このようなビット位置逆変換テーブルを通すことに代えて、秘匿データコードを構成するビットにより特定されるデータ値を逆方向に変換可能なデータ値逆変換式を用いても良い。例えば、第5実施形態で説明した所定のデータ値変換式の例においては、入力データ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 fifth 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.
さらに、第5実施形態で説明した循環シフトレジスタを通す場合に対しては、所定の加工処理とは逆方向にシフトする循環シフトレジスタを復元処理に用いることで、復元処理が可能となる。例えば、先の16ビット構成のデータ例では、所定の加工処理においてLSB側に4ビットシフトさせることで「1001011011010110」(96D6h)を「0110100101101101」(696Dh)に変換したので、これを、復元処理では、逆方向のMSB側に4ビットシフトさせることで、「1001011011010110」(96D6h)というように元に戻すことが可能となる。 Further, when the cyclic shift register described in the fifth 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 previous 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によりセットされる疑似乱数のシード値については、第5実施形態と同様に、当該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 fifth 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. For this reason, the
また、ステップS321では、ステップS319により取得されたn番目のデータコードが、秘匿識別コードであるか否かを判断する処理が行われる。このため、このステップS321を実行する制御回路40等は、特許請求の範囲に記載の「データコード判断手段」や「秘匿識別コード判断手段」に相当し得るものである。さらに、ステップS333を実行する制御回路40等は、特許請求の範囲に記載の「復号手段」に相当し得るものである。
In step S321, processing for determining whether or not the nth data code acquired in step S319 is a secret identification code is performed. For this reason, the
さらに、ステップS319,S323〜S335では、終端位置の後方に配置されて、本来はデコードされないデータコード(第2のデータコード、秘匿データコード)を取得してデコードする処理が行われる。このため、これらの各ステップを実行する制御回路40等は、特許請求の範囲に記載の「第2デコード手段」に相当し得るものである。
Further, in steps S319 and S323 to S335, a process of acquiring and decoding a data code (second data code, secret data code) that is arranged behind the end position and is not originally decoded is performed. For this reason, the
以上説明したように、本第6実施形態に係るQRコードリーダ20によると、本来、データコードが配置されない終端識別コードの後のコード領域(コード領域の空き部分)等に、所定の加工が施された秘匿データコード(第2のデータコード)が配置されていても、この第2のデータコードをデコードすることができる。したがって、コード語を配置すべきコード領域の空き部分に存在するデータコードをデコードすることができる。
As described above, according to the
また、上述したデコード処理では、ステップS329’によりj番目の復号キー検査データを取得するように構成したが、例えば、第5実施形態で述べたように、ステップS113の後に、開示データおよび秘匿データを並び替える処理(図2に示すS115相当)を介在させて、ステップS111により受信した「秘匿データのデータレコード中の位置関係を示す位置情報」に基づいて、データの順番を入れ替えて、開示データの集まりと秘匿データの集まりとに分ける処理を行った場合には、ステップS329’に代えて、秘匿データコードから「開始桁」を分離してこの分離された「開始桁」に基づいて秘匿データコードを復号(デコード)した秘匿データをコード化される前のデータレコード中の位置関係に配置するように構成しても良い。 In the decoding process described above, the j-th decryption key check data is obtained in step S329 ′. For example, as described in the fifth embodiment, disclosed data and secret data are provided after step S113. 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”. The secret data that has been decoded (decoded) is arranged in a positional relationship in the data record before being encoded. Good.
これにより、コード語としてコード化される前のデータレコード中の位置関係において前後して混在する場合であっても、デコードしたデータを、この位置情報に基づいてコード化前の位置関係に配置することができる。この場合、「秘匿データコードから「開始桁」を分離する」処理を実行する制御回路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
[第7実施形態]
次に、本発明の第7実施形態に係るQRコードリーダ20によるQRコードQのデコード処理を図18および図19を参照して説明する。なお、ここで説明するQRコードQは、これまで第1実施形態〜第5実施形態において説明した各秘匿データコードを含むQRコードを意味する。
[Seventh Embodiment]
Next, QR code Q decoding processing by the
なお、本第7実施形態では、デコード処理のフローチャートは図示しないが、図6、図10や図15に示されるステップS300,S300’,S300”の各復号処理を図18に示す復号処理に置き換えることで、これらのデコード処理を本第7実施形態に適用することができる。また、図18に示す復号化処理のフローチャートにおいて、既に説明した復号化処理(図11)を構成する処理ステップと実質的に同一の処理ステップについては同一符号を付し詳細な説明を省略する。 In the seventh embodiment, although the flowchart of the decoding process is not shown, 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. Thus, these decoding processes can be applied to the seventh embodiment, and the processing steps constituting the decoding process (FIG. 11) already described in the flowchart of the decoding process shown in FIG. The same processing steps are denoted by the same reference numerals, and detailed description thereof is omitted.
図18に示すように、復号化処理は、S305’により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)でないと判断すると(S305’;No)、ステップS307,S309により文字数i分のデータコードを取得した後、ステップS310により開示データコードをデコードするか否かを判断する。 As shown in FIG. 18, the decoding process determines that the end position is not the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) (S305 ′). No), after obtaining the data code for the number of characters i in steps S307 and S309, it is determined whether or not to decode the disclosed data code in step S310.
即ち、このステップS310では、後で図19を参照して説明する「読取フラグS」の状態((1) 開示データコードだけをデコードするフラグS=1、(2) 秘匿データコードだけをデコードするフラグS=2、(3) 開示データコードと秘匿データコードの双方をデータコードするフラグS=0)に基づいて、開示データコードを復号する情報が当該読取フラグSにセットされているか否かを判断する。この読取フラグSは、例えば、QRコードリーダ20を構成するメモリ35の所定領域またはレジスタに設定されるもので、後述する読取フラグ設定処理(図19参照)により設定される。
That is, in this step S310, the state of “read flag S” described later with reference to FIG. 19 ((1) flag S = 1 for decoding only the disclosed data code, (2) decoding only the secret data code. Flag S = 2, (3) flag S = 0 for data coding of both the disclosed data code and the secret data code), whether or not the information for decoding the disclosed data code is set in the reading flag S to decide. This reading flag S is set, for example, in a predetermined area or register of the
そして、(1) 開示データコードだけをデコードするフラグS=1、または(3) 開示データコードと秘匿データコードの双方をデータコードするフラグS=0が読取フラグにセットされている場合)には(S310;Yes)、続くステップS311により開示データコードを復号する処理を行い、(2) 秘匿データコードだけをデコードするフラグS=2が読取フラグにセットされている場合には(S310;No)、続くステップS311により開示データコードを復号する処理をスキップして、ステップS313,S303等により次のデータコードを取得する処理を行う。 (1) When the flag S = 1 for decoding only the disclosed data code or (3) The flag S = 0 for data encoding both the disclosed data code and the confidential data code is set in the reading flag) (S310; Yes), the process of decoding the disclosed data code is performed in the following step S311. (2) When the flag S = 2 for decoding only the secret data code is set in the reading flag (S310; No) Then, the process of decoding the disclosed data code is skipped in the subsequent step S311, and the process of acquiring the next data code is performed in steps S313, S303 and the like.
一方、ステップS301〜S313により終端位置(開示データコードがなすコード列の終端位置で、終端識別コードまたは終端位置データにより特定可能なもの)が見つかると(S305’;Yes)、ステップS314により秘匿データコードをデコードするか否かを判断する。 On the other hand, when the end position (the end position of the code string formed by the disclosed data code, which can be specified by the end identification code or the end position data) is found in steps S301 to S313 (S305 ′; Yes), the confidential data is determined in step S314. Determine whether to decode the code.
即ち、このステップS314は、前述したステップS310とは反対に、秘匿データコードをデコードするか否かを読取フラグSに基づいて判断する。つまり、(2) 秘匿データコードだけをデコードするフラグS=2、または(3) 開示データコードと秘匿データコードの双方をデータコードするフラグS=0が読取フラグにセットされている場合には(S314;Yes)、続くステップS315〜S335により秘匿データコードを復号する処理を行い、(1) 開示データコードだけをデコードするフラグS=1が読取フラグにセットされている場合には(S314;No)、本復号処理を終了する。 That is, in step S314, contrary to step S310 described above, it is determined based on the read flag S whether or not the secret data code is to be decoded. In other words, when (2) the flag S = 2 for decoding only the secret data code or (3) the flag S = 0 for data encoding both the disclosed data code and the secret data code is set in the reading flag ( (S314; Yes), the process of decoding the secret data code is performed in the following steps S315 to S335. (1) When the flag S = 1 for decoding only the disclosed data code is set in the reading flag (S314; No) ), This decoding process is terminated.
ここで、読取フラグ設定処理を図19を参照して説明する。なお、この読取フラグ設定処理は、例えば、当該QRコードリーダ20を構成するハードウェアの各種設定状態(例えば、ビープ音のオンオフ、液晶表示器46のバックライトのオンオフ等)を変更、解除または初期化する場合に起動されるメンテナンスプログラムに含まれるもので、通常のデコード処理(図6、図10や図15)には含まれないものである。なおここでは、メンテナンスプログラムによるメンテナンス処理のフローチャートおよびその説明は省略する。
Here, the reading flag setting process will be described with reference to FIG. The reading flag setting process is performed by changing, canceling, or initializing various setting states (for example, on / off of a beep sound, on / off of the backlight of the
図19に示すように、読取フラグ設定処理では、まずステップS901により読取フラグSに0(S=0)をセットする等の所定の初期化処理を行った後、ステップS903によりタイマー値をクリアする処理が行われる。このタイマーは、次のステップS905により所定時間を経過したか否かを判断するためにカウントされるものである。 As shown in FIG. 19, in the reading flag setting process, first, a predetermined initialization process such as setting the reading flag S to 0 (S = 0) is performed in step S901, and then the timer value is cleared in step S903. Processing is performed. This timer is counted to determine whether or not a predetermined time has passed in the next step S905.
そして、ステップS905により所定時間を経過していないと判断した場合には(S905;No)、続くステップS907によりコマンドを受信したか否かを判断する処理が行われる。このコマンドは、例えば、前述したメンテナンスプログラムにおいて、ホストコンピュータHSTから受信したり、当該QRコードリーダ20を構成する操作スイッチ42から入力されたりするものである。
If it is determined in step S905 that the predetermined time has not elapsed (S905; No), processing is performed to determine whether or not a command has been received in subsequent step S907. For example, this command is received from the host computer HST or input from the
ステップS907によりコマンドを受信したと判断しない(受信していないと判断した)場合には(S907;No)、ステップS905により再び所定時間を経過しているか否かを判断する。これに対し、コマンドを受信したと判断した場合には(S907;Yes)、続くステップS909により受信したコマンドの内容を判断する処理が行われる。 If it is not determined at step S907 that the command has been received (it is determined that it has not been received) (S907; No), it is determined again at step S905 whether the predetermined time has elapsed. On the other hand, when it is determined that a command has been received (S907; Yes), processing for determining the content of the received command is performed in the subsequent step S909.
即ち、ステップS909により、当該コマンドが(1) 開示データコードだけをデコードするものである場合には、ステップS911により読取フラグSに「1」をセットし(S=1)、当該コマンドが(2) 秘匿データコードだけをデコードするものである場合には、ステップS913により読取フラグSに「2」をセットする(S=2)。これに対し、当該コマンドがこれらのいずれでもない場合には、読取フラグSを「0」のままにして、本読取フラグ設定処理を終了する。つまり、この場合には、前述したステップS901によりデフォルトで設定されている「0」をそのまま引き継ぐことで、(3) 開示データコードと秘匿データコードの双方をデータコードする読取フラグSを維持する。 That is, if the command is to decode only the disclosed data code (1) in step S909, “1” is set to the reading flag S in step S911 (S = 1), and the command is (2 If only the secret data code is to be decoded, “2” is set to the reading flag S in step S913 (S = 2). On the other hand, if the command is none of these, the reading flag S is kept “0” and the reading flag setting process is terminated. In other words, in this case, “0” set by default in step S901 described above is used as it is, and (3) the reading flag S for data coding of both the disclosed data code and the secret data code is maintained.
ステップS911,S913により読取フラグがセットされると、本読取フラグ設定処理を終了する。なお、ステップS310,S314は、特許請求の範囲に記載の「デコード機能選択手段」に相当し得るものである。また、ステップS311は、特許請求の範囲に記載の「第1のデータコードのデコード機能」に相当し、ステップS335は、特許請求の範囲に記載の「第2のデータコードのデコード機能」に相当し得るものである。 When the reading flag is set in steps S911 and S913, the reading flag setting process is terminated. Steps S310 and S314 can correspond to “decoding function selection means” described in the claims. Step S311 corresponds to the “decoding function of the first data code” described in the claims, and step S335 corresponds to the “decoding function of the second data code” described in the claims. It is possible.
以上説明したように、本第7実施形態に係るQRコードリーダ20によると、当該QRコードリーダ20の使用者は、開示データコードをデコードするか、秘匿データコードのデコードするか、の少なくとも一方を選択することができるので、例えば、秘匿データコードは読んでも開示データコードを読みたくない場合や、それとは逆に、開示データコードは読んでも秘匿データコードを読みたくない場合に、不要なデコード処理によるデコード時間を削減することができる。したがって、デコード時間を短縮することができる。
As described above, according to the
なお、上述した実施形態のなかには、例えば、第1実施形態(図2)や第3実施形態(図8)で説明したように、コード生成処理のステップS119において誤り訂正コードを生成しているものがあるが、必ずしもこのステップS119で誤り訂正コードを生成する必要はなく、例えば、当該ステップS119に相当する処理(誤り訂正コード生成処理)を、誤り訂正コードを付加する処理(ステップS137)とともにまたはその前段階で実行するように、コード生成処理の流れを構成しても良い。 In the above-described embodiments, for example, as described in the first embodiment (FIG. 2) or the third embodiment (FIG. 8), an error correction code is generated in step S119 of the code generation processing. However, it is not always necessary to generate an error correction code in step S119. For example, a process corresponding to step S119 (error correction code generation process) is performed together with a process of adding an error correction code (step S137) or The flow of code generation processing may be configured to be executed at the previous stage.
1…パソコン
10…QRコードプリンタ
11…MPU
12…メモリ
20…QRコードリーダ(二次元コードの読取装置)
35…メモリ(第1デコード手段、データコード判断手段、第2デコード手段、秘匿識別コード判断手段、秘匿情報出力手段、復号手段、鍵適合判断手段、鍵分離手段、位置情報分離手段、データ配置手段、抽出手段、デコード機能選択手段)
40…制御回路(第1デコード手段、データコード判断手段、第2デコード手段、秘匿識別コード判断手段、秘匿情報出力手段、復号手段、鍵適合判断手段、鍵分離手段、位置情報分離手段、データ配置手段、抽出手段、デコード機能選択手段)
HST…ホストコンピュータ
P…ラベル
Q…QRコード(二次元コード)
1 ...
12 ...
35. Memory (first decoding means, data code judgment means, second decoding means, secret identification code judgment means, secret information output means, decryption means, key matching judgment means, key separation means, position information separation means, data arrangement means Extraction means, decoding function selection means)
40 ... Control circuit (first decoding means, data code judging means, second decoding means, secret identification code judging means, secret information output means, decoding means, key matching judgment means, key separating means, position information separating means, data arrangement Means, extraction means, decoding function selection means)
HST ... Host computer P ... Label Q ... QR code (two-dimensional code)
Claims (47)
秘匿するデータを表すコード語としてコード化された秘匿データコードを前記埋め草コードの一部または全部に代えて、前記終端識別コードの後に配置することを特徴とする二次元コードの生成方法。 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 method for generating 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 portion of the code area,
A method 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.
前記終端識別コードよりも前に配置される前記データコードである第1のデータコードをデコードする第1デコード手段と、
前記終端識別コードの後に第2のデータコードが配置されているか否かを判断するデータコード判断手段と、
前記データコード判断手段により前記第2のデータコードが配置されていると判断した場合、前記第2のデータコードをデコードする第2デコード手段と、
を備えることを特徴とする二次元コードの読取装置。 When the total number of data codes coded as code words representing data is less than the capacity that can be accommodated in the code area where the code word is to be arranged, the end of the code string formed by the data code arranged in the code area Is a two-dimensional code reader that can read a two-dimensional code in which a padding code not representing data is arranged in an empty portion of the code area. There,
First decoding means for decoding a first data code which is the data code arranged before the end identification code;
Data code determining means for determining whether or not a second data code is arranged after the end identification code;
A second decoding means for decoding the second data code when the data code judging means judges that the second data code is arranged;
A two-dimensional code reader comprising:
前記秘匿識別コードが配置されているか否かを判断する秘匿識別コード判断手段と、
前記秘匿識別コード判断手段により前記秘匿識別コードが配置されていると判断した場合、前記第2のデータコードが秘匿データである旨の情報を出力する秘匿情報出力手段と、を備えることを特徴とする二次元コードの読取装置。 A secret identification code indicating that the second data code is a secret data code encoded as a code word representing data to be concealed is disposed between the second data code and the termination identification code. A two-dimensional code reader according to claim 9, wherein
A secret identification code judging means for judging whether or not the secret identification code is arranged;
And a secret information output means for outputting information indicating that the second data code is secret data when the secret identification code determining means determines that the secret identification code is arranged. A two-dimensional code reader.
前記暗号化された第2のデータコードを復号できる鍵を用いて前記暗号化された第2のデータコードを復号する復号手段、を備えることを特徴とする二次元コードの読取装置。 The two-dimensional code reader according to claim 9 or 10, wherein the second data code is encrypted by a predetermined encryption method.
An apparatus for reading a two-dimensional code, comprising: decrypting means for decrypting the encrypted second data code using a key capable of decrypting the encrypted second data code.
前記鍵特定情報に基づいて、当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断する鍵適合判断手段を備え、
前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵であると判断した場合にはこの鍵を用いて前記復号手段により前記第2のデータコードを復号し、
前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵でないと判断した場合には前記第2のデータコードを復号しない、
ことを特徴とする二次元コードの読取装置。 The two-dimensional code reader according to claim 11, wherein key specifying information capable of specifying the decryptable key is added to the second data code.
Based on the key identification information, comprising key matching judgment means for judging whether or not the key of the two-dimensional code reader is the key that can be decrypted,
If it is determined by the key conformity determination means that the key of the two-dimensional code reader is the key that can be decrypted, the decryption means decrypts the second data code using the key,
If the key matching determination means determines that the key of the two-dimensional code reader is not a key that can be decrypted, the second data code is not decrypted.
A two-dimensional code reader.
前記鍵適合判断手段は、前記各第2のデータコードについて当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断することを特徴とする二次元コードの読取装置。 There are a plurality of the second data codes, and each second data code is encrypted with a different key, and the second data code includes the encrypted second data code. The two-dimensional code reader according to claim 13, wherein key specifying information that can be decrypted is added to each,
The two-dimensional code reading device, wherein the key matching determination means determines whether or not the key of the two-dimensional code reading device is the decryptable key for each of the second data codes.
前記復号できる鍵を前記第2のデータコードから分離する鍵分離手段を備え、
前記鍵分離手段により分離した鍵を用いて前記復号手段により前記第2のデータコードを復号することを特徴とする二次元コードの読取装置。 The two-dimensional code reader according to claim 11, wherein the decryptable key is added to the second data code.
Key separation means for separating the decryptable key from the second data code;
An apparatus for reading a two-dimensional code, wherein the second data code is decrypted by the decryption means using the key separated by the key separation means.
前記鍵分離手段は、前記各第2のデータコードから前記復号できる鍵を分離することを特徴とする二次元コードの読取装置。 There are a plurality of the second data codes, and each second data code is encrypted with a different key, and the second data code includes the encrypted second data code. The two-dimensional code reader according to claim 15, wherein a decryptable key is attached to each of the two-dimensional code readers,
The two-dimensional code reading device, wherein the key separation means separates the decodable key from each of the second data codes.
前記第2のデータコードから前記位置情報を分離する位置情報分離手段と、
前記第2デコード手段によりデコードされた第2のデータを前記位置情報分離手段により分離された位置情報に基づいて前記データレコード中に配置するデータ配置手段と、
を備えることを特徴とする二次元コードの読取装置。 The two-dimensional code reader according to any one of claims 9 to 16, wherein positional information indicating a positional relationship in a data record before being encoded is added to the second data code. There,
Position information separating means for separating the position information from the second data code;
Data arrangement means for arranging the second data decoded by the second decoding means in the data record based on the position information separated by the position information separation means;
A two-dimensional code reader comprising:
秘匿するデータを表すコード語としてコード化された秘匿データコードを、前記終端識別コードの後、または前記終端識別情報により特定される前記終端位置の後、に配置することを特徴とする二次元コードの生成方法。 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 arrangement in which an end identification code indicating the end of the code string is arranged at the end of the code string, or end identification information that can specify the end position of the code string formed by the disclosed data code is arranged at a predetermined position of the code string A code generation method,
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 termination identification code or after the termination position specified by the termination identification information Generation method.
前記終端識別コードよりも前に配置される前記データコード、または前記終端識別情報により特定される前記終端位置よりも前に配置される前記データコード、である第1のデータコードをデコードする第1デコード手段と、
前記終端識別コードの後または前記終端位置よりも後に第2のデータコードが配置されているか否かを判断するデータコード判断手段と、
前記データコード判断手段により前記第2のデータコードが配置されていると判断した場合、前記第2のデータコードをデコードする第2デコード手段と、
を備えることを特徴とする二次元コードの読取装置。 When the total number of data codes coded as code words representing data is less than the capacity that can be accommodated in the code area where the code word is to be arranged, the end of the code string formed by the data code arranged in the code area A two-dimensional code can be read that is placed at the end of this code string, or the terminal identification information that can identify the end position of the code string formed by the data code is placed at a predetermined position in this code string. A two-dimensional code reader,
A first data code that decodes a first data code that is the data code arranged before the end identification code or the data code arranged before the end position specified by the end identification information Decoding means;
Data code judging means for judging whether or not a second data code is arranged after the end identification code or after the end position;
A second decoding means for decoding the second data code when the data code judging means judges that the second data code is arranged;
A two-dimensional code reader comprising:
前記秘匿識別コードが配置されているか否かを判断する秘匿識別コード判断手段と、
前記秘匿識別コード判断手段により前記秘匿識別コードが配置されていると判断した場合、前記第2のデータコードが秘匿データである旨の情報を出力する秘匿情報出力手段と、を備えることを特徴とする二次元コードの読取装置。 A secret identification code indicating that the second data code is a secret data code encoded as a code word representing data to be concealed is disposed between the second data code and the termination identification code. The two-dimensional code reader according to claim 26, wherein:
A secret identification code judging means for judging whether or not the secret identification code is arranged;
And a secret information output means for outputting information indicating that the second data code is secret data when the secret identification code determining means determines that the secret identification code is arranged. A two-dimensional code reader.
前記暗号化された第2のデータコードを復号できる鍵を用いて前記暗号化された第2のデータコードを復号する復号手段、を備えることを特徴とする二次元コードの読取装置。 28. The two-dimensional code reader according to claim 26 or 27, wherein the second data code is encrypted by a predetermined encryption method.
An apparatus for reading a two-dimensional code, comprising: decrypting means for decrypting the encrypted second data code using a key capable of decrypting the encrypted second data code.
前記鍵特定情報に基づいて、当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断する鍵適合判断手段を備え、
前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵であると判断した場合にはこの鍵を用いて前記復号手段により前記第2のデータコードを復号し、
前記鍵適合判断手段により当該二次元コードの読取装置が有する鍵が前記復号できる鍵でないと判断した場合には前記第2のデータコードを復号しない、
ことを特徴とする二次元コードの読取装置。 29. The two-dimensional code reader according to claim 28, wherein key specifying information capable of specifying the decryptable key is added to the second data code.
Based on the key identification information, comprising key matching judgment means for judging whether or not the key of the two-dimensional code reader is the key that can be decrypted,
If it is determined by the key conformity determination means that the key of the two-dimensional code reader is the key that can be decrypted, the decryption means decrypts the second data code using the key,
If the key matching determination means determines that the key of the two-dimensional code reader is not a key that can be decrypted, the second data code is not decrypted.
A two-dimensional code reader.
前記鍵適合判断手段は、前記各第2のデータコードについて当該二次元コードの読取装置が有する鍵が前記復号できる鍵であるか否かを判断することを特徴とする二次元コードの読取装置。 There are a plurality of the second data codes, and each second data code is encrypted with a different key, and the second data code includes the encrypted second data code. The two-dimensional code reader according to claim 30, wherein key specifying information that can be decrypted is added to each of the two-dimensional code readers,
The two-dimensional code reading device, wherein the key matching determination means determines whether or not the key of the two-dimensional code reading device is the decryptable key for each of the second data codes.
前記復号できる鍵を前記第2のデータコードから分離する鍵分離手段を備え、
前記鍵分離手段により分離した鍵を用いて前記復号手段により前記第2のデータコードを復号することを特徴とする二次元コードの読取装置。 29. The two-dimensional code reader according to claim 28, wherein the decryptable key is added to the second data code.
Key separation means for separating the decryptable key from the second data code;
An apparatus for reading a two-dimensional code, wherein the second data code is decrypted by the decryption means using the key separated by the key separation means.
前記鍵分離手段は、前記各第2のデータコードから前記復号できる鍵を分離することを特徴とする二次元コードの読取装置。 There are a plurality of the second data codes, and each second data code is encrypted with a different key, and the second data code includes the encrypted second data code. The two-dimensional code reader according to claim 32, wherein a decryptable key is attached to each of the two-dimensional code readers,
The two-dimensional code reading device, wherein the key separation means separates the decodable key from each of the second data codes.
前記第2のデータコードから前記位置情報を分離する位置情報分離手段と、
前記第2デコード手段によりデコードされた第2のデータを前記位置情報分離手段により分離された位置情報に基づいて前記データレコード中に配置するデータ配置手段と、
を備えることを特徴とする二次元コードの読取装置。 34. The two-dimensional code reader according to claim 26, wherein position information indicating a positional relationship in a data record before being encoded is added to the second data code. There,
Position information separating means for separating the position information from the second data code;
Data arrangement means for arranging the second data decoded by the second decoding means in the data record based on the position information separated by the position information separation means;
A two-dimensional code reader comprising:
秘匿するデータを表すコード語としてコード化された秘匿データコードに所定の加工を施して、前記終端識別コードの後、または前記終端識別情報により特定される前記終端位置の後、に配置することを特徴とする二次元コードの生成方法。 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 arrangement in which an end identification code indicating the end of the code string is arranged at the end of the code string, or end identification information that can specify the end position of the code string formed by the disclosed data code is arranged at a predetermined position of the code string A code generation method,
The secret data code encoded as a code word representing the data to be concealed is subjected to predetermined processing and placed after the termination identification code or after the termination position specified by the termination identification information. A method for generating a characteristic two-dimensional code.
前記秘匿データを構成するビットの並替え、前記秘匿データを構成するビットの分散配置、前記秘匿データを構成するビットにより特定されるデータ値の変換、のいずれかであることを特徴とする請求項35または36記載の二次元コードの生成方法。 The predetermined processing is:
The rearrangement of bits constituting the secret data, distributed arrangement of the bits constituting the secret data, or conversion of a data value specified by the bits constituting the secret data, 37. A method for generating a two-dimensional code according to 35 or 36.
前記終端識別コードよりも前に配置される前記データコード、または前記終端識別情報により特定される前記終端位置よりも前に配置される前記データコード、である第1のデータコードをデコードする第1デコード手段と、
前記終端識別コードの後または前記終端位置よりも後に第2のデータコードが配置されているか否かを判断するデータコード判断手段と、
前記データコード判断手段により前記第2のデータコードが配置されていると判断した場合、所定の抽出処理により前記第2のデータコードを抽出する抽出手段と、
前記抽出手段により抽出された前記第2のデータコードをデコードする第2デコード手段と、を備えることを特徴とする二次元コードの読取装置。 When the total number of data codes coded as code words representing data is less than the capacity that can be accommodated in the code area where the code word is to be arranged, the end of the code string formed by the data code arranged in the code area A two-dimensional code can be read that is placed at the end of this code string, or the terminal identification information that can identify the end position of the code string formed by the data code is placed at a predetermined position in this code string. A two-dimensional code reader,
A first data code that decodes a first data code that is the data code arranged before the end identification code or the data code arranged before the end position specified by the end identification information Decoding means;
Data code judging means for judging whether or not a second data code is arranged after the end identification code or after the end position;
An extraction means for extracting the second data code by a predetermined extraction process when the data code determination means determines that the second data code is arranged;
A two-dimensional code reading apparatus comprising: second decoding means for decoding the second data code extracted by the extracting means.
前記秘匿識別コードが配置されているか否かを判断する秘匿識別コード判断手段と、
前記秘匿識別コード判断手段により前記秘匿識別コードが配置されていると判断した場合、前記第2のデータコードが秘匿データである旨の情報を出力する秘匿情報出力手段と、を備えることを特徴とする二次元コードの読取装置。 A secret identification code indicating that the second data code is a secret data code encoded as a code word representing data to be concealed is disposed between the second data code and the termination identification code. A two-dimensional code reader according to claim 42, wherein:
A secret identification code judging means for judging whether or not the secret identification code is arranged;
And a secret information output means for outputting information indicating that the second data code is secret data when the secret identification code determining means determines that the secret identification code is arranged. A two-dimensional code reader.
前記所定の抽出処理は、前記第2のデータコードを構成するビットの並替えまたはビットの分散配置を元に戻すことが可能な前記第1のデータコードの内容に基づいて、当該第2のデータコードを抽出することを特徴とする二次元コードの読取装置。 44. The two-dimensional code reader according to claim 42 or 43, wherein the second data code is processed by rearrangement of bits constituting the second data code or by distributed arrangement of bits.
The predetermined extraction processing is based on the contents of the first data code that can return the rearrangement of bits constituting the second data code or the distributed arrangement of bits. A two-dimensional code reader characterized by extracting a code.
前記所定の抽出処理は、当該二次元コードに付随する固有情報で、前記第2のデータコードを構成するビットの並替えまたはビットの分散配置を元に戻すことが可能な情報に基づいて、当該第2のデータコードを抽出することを特徴とする二次元コードの読取装置。 44. The two-dimensional code reader according to claim 42 or 43, wherein the second data code is processed by rearrangement of bits constituting the second data code or by distributed arrangement of bits.
The predetermined extraction process is specific information associated with the two-dimensional code, and is based on information that can return the rearrangement of bits constituting the second data code or the distributed arrangement of bits. A two-dimensional code reader, wherein a second data code is extracted.
前記所定の抽出処理は、前記第2のデータコードを構成するビットにより特定されるデータ値を逆変換することが可能な所定の変換テーブルまたは所定の変換式に基づいて、当該第2のデータコードを抽出することを特徴とする二次元コードの読取装置。 44. The two-dimensional code reader according to claim 42 or 43, wherein the second data code is processed by conversion of a data value specified by a bit constituting the second data code,
The predetermined extraction process is performed based on a predetermined conversion table or a predetermined conversion formula capable of inversely converting a data value specified by the bits constituting the second data code. A two-dimensional code reader characterized by extracting the two-dimensional code.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008041448A JP4924468B2 (en) | 2007-05-29 | 2008-02-22 | Two-dimensional code generation method and reader |
US12/155,018 US8532299B2 (en) | 2007-05-29 | 2008-05-29 | Method for producing two-dimensional code and reader for reading the two-dimensional code |
CN200810144647.6A CN101320436B (en) | 2007-05-29 | 2008-05-29 | Method for producing two-dimensional code and reader for reading the two-dimensional code |
EP08009853.6A EP2000950B1 (en) | 2007-05-29 | 2008-05-29 | Method for producing two-dimensional code and reader for reading the two-dimensional code |
US13/965,330 US8879737B2 (en) | 2007-05-29 | 2013-08-13 | Method for producing two-dimensional code and reader for reading the two-dimensional code |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142239 | 2007-05-29 | ||
JP2007142239 | 2007-05-29 | ||
JP2008041448A JP4924468B2 (en) | 2007-05-29 | 2008-02-22 | Two-dimensional code generation method and reader |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012026479A Division JP5206887B2 (en) | 2007-05-29 | 2012-02-09 | Printer for printing two-dimensional code, display device for displaying two-dimensional code, and system |
JP2012026480A Division JP5206888B2 (en) | 2007-05-29 | 2012-02-09 | Two-dimensional code generation program and two-dimensional code |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009009547A JP2009009547A (en) | 2009-01-15 |
JP4924468B2 true JP4924468B2 (en) | 2012-04-25 |
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 After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 |
Country Status (2)
Country | Link |
---|---|
JP (3) | JP4924468B2 (en) |
CN (1) | CN101320436B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9819772B2 (en) | 2015-06-30 | 2017-11-14 | Ricoh Company, Ltd. | Information processing apparatus and recording medium |
Families Citing this family (31)
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 |
SG181277A1 (en) | 2010-11-30 | 2012-06-28 | Denso Wave Inc | System for reading information code and medium on which information code is formed |
CN102708345B (en) | 2010-11-30 | 2018-05-25 | 电装波动株式会社 | Message code reads system, message code reading device and message code and forms medium |
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 |
JP5844306B2 (en) * | 2013-04-30 | 2016-01-13 | 京セラドキュメントソリューションズ株式会社 | Image forming apparatus, control program for image forming apparatus, and image forming method |
JP6136688B2 (en) * | 2013-07-17 | 2017-05-31 | 株式会社デンソーウェーブ | Information code utilization system and information code reader |
CN105706118B (en) * | 2013-10-30 | 2019-01-04 | 凸版Tdk标签株式会社 | The method for generating two-dimensional bar code, the device for generating two-dimensional bar code, the method for reading two-dimensional bar code, device, two-dimensional bar code and the program for reading two-dimensional bar code |
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 |
JP6041025B2 (en) * | 2015-08-20 | 2016-12-07 | 株式会社デンソーウェーブ | Information code reading system |
CN105615470A (en) * | 2015-12-15 | 2016-06-01 | 宁波市铭时三维科技发展有限公司 | Science-popularizing tea pot containing two-dimensional codes and having water molecule structure |
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 |
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 |
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 |
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 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004094510A (en) * | 2002-08-30 | 2004-03-25 | Inst Of Physical & Chemical Res | Method of preventing false display in merchandise distribution and label writing device with tampering prevention function used for the method |
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 |
CN100433053C (en) * | 2005-08-26 | 2008-11-12 | 毛山 | Two-dimensional bar code based information transfer method and encoding/decoding device |
JP3953501B1 (en) * | 2006-03-03 | 2007-08-08 | 株式会社バンダイナムコゲームス | Program, information storage medium, two-dimensional code generation system, image generation system, and two-dimensional code |
-
2008
- 2008-02-22 JP JP2008041448A patent/JP4924468B2/en active Active
- 2008-05-29 CN CN200810144647.6A patent/CN101320436B/en active Active
-
2012
- 2012-02-09 JP JP2012026479A patent/JP5206887B2/en active Active
- 2012-02-09 JP JP2012026480A patent/JP5206888B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9819772B2 (en) | 2015-06-30 | 2017-11-14 | Ricoh Company, Ltd. | Information processing apparatus and recording medium |
Also Published As
Publication number | Publication date |
---|---|
CN101320436B (en) | 2012-12-05 |
JP2009009547A (en) | 2009-01-15 |
JP5206887B2 (en) | 2013-06-12 |
CN101320436A (en) | 2008-12-10 |
JP2012089179A (en) | 2012-05-10 |
JP5206888B2 (en) | 2013-06-12 |
JP2012089178A (en) | 2012-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4924468B2 (en) | Two-dimensional code generation method and reader | |
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 | |
EP3065088B1 (en) | 2d-code generation method, 2d-code generation device, 2d-code reading method, 2d-code reading device, 2d code, and program | |
CN1248100C (en) | Encryption communication system for generating passwords on basis of start information on both parties of communication | |
WO2014098128A1 (en) | Information code, information code generation method, information code reader device, and information code usage system | |
KR101476732B1 (en) | Certificating qualifying goods label, certificating qualifying goods terminal thereof, certificating qualifying goods label printer, the system and method for certificating qualifying goods | |
JPWO2014027424A1 (en) | Two-dimensional code authentication device, two-dimensional code generation device, two-dimensional code authentication method, and program | |
US9563830B2 (en) | Incremental information object with an embedded information region | |
JP2019148930A (en) | Two-dimensional code, system and method for outputting two-dimensional code, system and method for reading two-dimensional code, and program | |
JP2007206762A (en) | Communication method and communication device using two-dimensional code | |
JP2016062260A (en) | Information code reading system and information code display apparatus | |
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 | |
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 | |
JP2020086893A (en) | Two-dimensional code evaluation system and method | |
JP5196045B2 (en) | Printer for printing two-dimensional code, display device for displaying two-dimensional code, and system | |
JP6136688B2 (en) | Information code utilization system and information code reader | |
JP7488460B2 (en) | Method for generating two-dimensional code, two-dimensional code, and two-dimensional code reader | |
TWI323858B (en) | ||
JP2013025731A (en) | Optical information reader | |
JP2017117486A (en) | Generation method for information code, information code, information code reader, and information code utilization system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090825 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111228 |
|
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: 20120110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120123 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4924468 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 3 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |