CN110197244A - 二维码、二维码输出系统和方法、二维码读取系统和方法 - Google Patents

二维码、二维码输出系统和方法、二维码读取系统和方法 Download PDF

Info

Publication number
CN110197244A
CN110197244A CN201811386565.2A CN201811386565A CN110197244A CN 110197244 A CN110197244 A CN 110197244A CN 201811386565 A CN201811386565 A CN 201811386565A CN 110197244 A CN110197244 A CN 110197244A
Authority
CN
China
Prior art keywords
dimensional code
information
data
standard
public key
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.)
Pending
Application number
CN201811386565.2A
Other languages
English (en)
Inventor
丑木崇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Optoelectronics Co Ltd
Original Assignee
Optoelectronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Optoelectronics Co Ltd filed Critical Optoelectronics Co Ltd
Publication of CN110197244A publication Critical patent/CN110197244A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C5/00Ciphering apparatus or methods not provided for in the preceding groups, e.g. involving the concealment or deformation of graphic data such as designs, written or printed messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/77Graphical identity

Abstract

本发明涉及一种二维码、二维码输出系统和二维码输出方法、二维码读取系统和二维码读取方法,该二维码包括:第一代码符号,根据第一标准将第一信息编码为有效信息;终止符模式,表示根据第一标准的有效信息的结束;第二代码符号,布置在能够根据第一标准布置有效信息的区域内的终止符模式之后,并根据与第一标准不同的第二标准对用私钥加密的验证数据进行编码,该验证数据用于验证所述第一有效信息的正确性。验证数据可以是包含在非输出数据中的签名数据。

Description

二维码、二维码输出系统和方法、二维码读取系统和方法
技术领域
本发明涉及通过代码符号表示信息的二维码、用于输出二维码的二维码输出系统和二维码输出方法、用于读取二维码的二维码读取系统和二维码读取方法,以及包含用于使一个计算机或多个计算机协作执行二维码输出方法或二维码读取方法的程序指令的非暂时性机器可读存储介质。
背景技术
已知如图13所示的二维码通过代码符号表示各种信息。二维码通过光反射率彼此不同的白色模块和黑色模块的阵列表示二进制比特串,并且比特串表示例如图14所示形式的信息。
图14中所示的比特串(编码数据)500包含输出数据510、终止符模式520、填充数据530和纠错数据540。
输出数据510是要作为二维码的读取结果输出的有效信息,并且包括多个区段。每个区段以二维码的标准进行限定,并包含指定区段的模式(该区段要容纳的数据的种类和格式)的指示符以及该区段的数据主体。
图15示出了二维码中所使用的模式的种类的示例。如图15所示,模式包括具有固定长度数据的模式和具有可变长度数据的模式,并且表示数据长度的数据也包含在可变长度模式中的区段中,如图16所示。没有数据的区段仅由指示符组成。
终止符模式520是指示有效信息的结束的比特串,并且终止符模式520之后的数据不作为二维码的读取结果输出。
填充数据530是以二维码的标准限定的模式,作为用于填充额外空间的无效数据。在图14的示例中,填充数据530是在0附加部之后重复提供“11101100”和“00010001”的模式。用于转换为二维码的比特串需要具有按标准确定的特定长度,因此当输出数据510较短时,需要填充额外空间。
纠错数据540是在读取二维码时用于校正错误的数据,例如Reed-Solomon码。
在比特串500中,有效信息可以布置在除纠错数据540之外的整个区域中,但是图14的示例中,输出数据510的量小于该区域的大小,因此布置终止符模式520,然后用填充数据530填充其余空间。
此外,专利文献1公开了一种二维码记录密钥数据,用于解密以二维码的代码规范所编码的加密数据,其方式是配置成用密钥数据覆盖加密数据和纠错数据中的至少一个的覆盖方式。
专利文献2公开了一种技术,其中使用通过对预定信息和用于检测关于预定信息的欺诈的检测信息进行编码而产生的二维码,并且在读取该二维码时,读取设备将通过对二维码进行解码获得的检测信息发送至欺诈检测设备,欺诈检测设备将检测信息与预先登记的信息进行核对,从而检测编写到二维码中的信息中是否存在欺诈,并将结果报告给读取设备。
现有技术文献
专利文献1:JP 5023949B2
专利文献2:JP 6020089B2
发明内容
发明要解决的技术问题
根据专利文献2中公开的技术,可以在读取二维码时使用检测信息来检测是否已经对在二维码中编码的信息执行了诸如篡改之类的欺诈。然而,为了检测,除了二维码读取设备之外还需要欺诈检测设备,从而带来系统规模变大由此增加成本和管理负担的问题。
此外,为了可靠地检测欺诈,必须防止伪造检测信息,因此,延长检测信息是有效的。另一方面,检测信息本身不是要呈现给普通用户的信息。因此,优选地,检测信息可以被描述为与要呈现给普通用户的其他信息有区别的信息。
关于这一点,根据专利文献1中公开的方法,当读取某个二维码时要输出的数据以外的数据可以用难以视觉识别的形式容纳在该二维码中(参见专利文献1的第0039段)。
然而,在专利文献1的方法中,其它数据以覆盖方式记录在加密数据和纠错数据的一部分上,因此,存在的问题是:如果要保留足够的纠错能力,则极大限制了以覆盖方式记录的数据量。
本发明的一个目的是解决上述问题并提供一种环境,可以通过简单的系统检测对二维码所容纳的信息的欺诈并保持高的可靠性。
解决技术问题的方案
为了解决上述问题,本发明的二维码包括第一代码符号,根据第一标准编码第一有效信息;终止符模式,表示根据第一标准的所述第一有效信息的结束;和第二代码符号,布置在能够根据所述第一标准布置有效信息的区域内的所述终止符模式的后面,并根据与第一标准不同的第二标准对用私钥加密的验证数据进行编码,该验证数据用于验证所述第一有效信息的正确性。
此外,本发明的二维码输出系统包括包括至少一个处理器或电路或其组合,该二维码输出系统配置成:通过输入设备接收第一信息的输入;根据第一标准将所述第一信息编码为第一比特串;生成用于验证所述第一比特串的正确性的验证数据;用私钥对所述验证数据进行加密使其成为加密的验证数据;根据第二标准将所述加密的验证数据编码成第二比特串;生成按顺序包括所述第一比特串、指示根据第一标准的有效信息的结束的终止符数据、和所述第二比特串的组合比特串;根据第一标准将所述组合比特串转换为二维码,从而生成二维码,该二维码包括:根据第一标准将第一信息编码为第一有效信息的第一代码符号;对终止符数据进行编码的终止符模式;第二代码符号,布置在能够根据第一标准布置有效信息的区域内的所述终止符模式的后面,并根据第二标准对加密的验证数据进行编码;以及输出二维码。
在上述二维码或二维码输出系统中,可以想到的是,所述第二代码符号包括根据第二标准对与私钥对应的公钥的识别信息进行编码的代码符号。
在上述二维码输出系统中,可以想到的是,所述至少一个处理器或电路或其组合还配置成:通过输入设备接收创建者的信息的输入;以及从预定获取目的地获取与所述创建者的信息对应的私钥,所述验证数据的加密是用所获取的私钥对所述验证数据进行加密。
在上述二维码或二维码输出系统中,还可以想到的是,上述二维码包括第三代码符号,根据第一标准对纠错数据进行编码,用于校正第一代码符号和第二代码符号中的错误。
此外,本发明的二维码读取系统包括至少一个处理器或电路或其组合,该二维码读取系统配置成:由读取器读取二维码,根据包括限定了指示有效信息的结束的终止符模式的第一标准对该二维码进行解码,从而获得解码结果;根据第一标准从解码结果中获取有效信息,作为第一信息;根据与第一标准不同的第二标准分析所述终止符模式之后的解码结果的信息,从而获取验证数据;从预定获取目的地获取公钥;用所获取的公钥对所述验证数据进行解密以获得解密的数据;将解密的数据与所述第一信息进行比较以验证第一信息的正确性;以及将指示验证结果的信息与所述第一信息一起输出。
在上述二维码读取系统中,可以想到的是,至少一个处理器或电路或其组合还配置成从对所述终止符模式后面的信息的分析结果获取公钥的识别信息,并且,获取与所获取的识别信息对应的公钥作为公钥。
此外,还可以想到的是,所述至少一个处理器或电路或其组合还配置成,在通过对所述终止符模式后面的信息的分析无法获取验证数据的情况下,将与指示没有验证数据的信息与所述第一信息一起输出。
此外,还可以想到的是,所述至少一个处理器或电路或其组合还配置成使用包含在解码结果中的纠错数据对解码结果的目标区域执行纠错,所述目标区域至少包括容纳第一信息的第一子区域和容纳第二信息的第二子区域,从纠错后的解码结果中获取第一信息,以及从纠错后的解码结果中获取验证数据。
此外,除了上述二维码或系统之外,本发明可实施为诸如设备、方法、计算机程序、非暂时性机器可读存储介质等任意模式。
发明的有益效果
根据本发明的上述配置,可以提供一种环境,可以通过简单的系统来检测对二维码所容纳的信息的欺诈并保持高的可靠性。
附图说明
图1是示出作为本发明的一个实施例的二维码中包含的信息的配置的示例的图。
图2是示出图1所示的信息中的非输出数据的格式标准的示例的图。
图3是示出仅符合第一标准的二维码中包含的信息的配置的示例的图。
图4是用于说明作为本发明的一个实施例的处理二维码的二维码输出装置和二维码读取装置的使用模式的图。
图5是示出作为本发明的一个实施例的二维码输出装置的硬件配置的图。
图6是示出图5所示的二维码输出装置的功能配置的图。
图7是示出作为本发明的一个实施例的二维码读取装置的硬件配置的图。
图8是示出图7所示的二维码读取装置的功能配置的图。
图9是由图5所示的二维码输出装置的CPU执行的二维码生成处理的流程图。
图10是图9所示的输出数据编码处理的流程图。
图11是图9所示的填充数据添加处理的流程图。
图12A是图7所示的二维码读取装置的CPU执行的二维码读取处理的一部分的流程图。
图12B是从图12A延续的流程图。
图13是示出传统二维码的示例的图。
图14是示出传统二维码中包含的信息的配置的示例的图。
图15是示出图14所示的信息中的输出数据的格式标准的示例的图。
图16是示出图14所示的区段中具有可变数据长度的区段配置的图。
具体实施方式
将参照附图解释本发明的实施例。
首先,作为本发明的一个实施例的二维码通过光反射率彼此不同的白色模块和黑色模块的阵列表示二进制比特串,并且比特串表示例如与图14所示相同形式的信息。更具体地,尽管模块的阵列根据所表示的比特串的内容而不同,但是该二维码难以与传统上已知的二维码快速区分。
图1示出了作为本发明一个实施例的二维码中包含的信息的配置的示例。
由该实施例的二维码表示的比特串(编码数据)300包括输出数据310、第一终止符模式320、非输出数据330、第二终止符模式340、填充数据350和纠错数据360。
输出数据310、第一终止符模式320和纠错数据360是按照第一标准的数据,通过图13至图16所说明的标准在此用作第一标准。更具体地,输出数据310是包括多个区段的数据,通过将要作为二维码的读取结果输出的有效信息转换为根据第一标准的比特串而获得。第一终止符模式320是以第一标准限定并指示有效信息的结束的比特串。纠错数据360是用于在读取二维码时进行纠错的数据,例如Reed-Solomon码。在纠错数据360之前的所有比特都是纠错的目标。
另一方面,在比特串300中,与图14中的比特串500不同,非输出数据330和第二终止符模式340布置在第一终止符模式320之后的区域中。有效信息可以根据第一标准布置在该区域中,但是如果有效信息不布置在该区域,则该区域填充有填充数据35。
非输出数据330是通过根据与第一标准不同的第二标准、将不作为二维码的读取结果输出的任意数据转换为比特串而获得的数据。非输出数据330的用途也是任意的。在该示例中,非输出数据330与输出数据310一样包括多个区段。每个区段以第二标准限定并且包含指定区段模式(该区段所记录的数据的种类和格式)的指示符以及区段的数据主体。
图2示出了在第二标准中使用的模式的类型的示例。所述模式包括具有固定长度数据的模式和具有可变长度数据的模式,并且表示数据长度的数据也包含在可变长度模式的区段中。这些点与第一标准的情况相同。注意,在第二标准中,为了区分非输出数据330和根据第一标准所填充的填充数据,除了指示非输出数据330的结束的终止符模式A之外,还定义了终止符模式B。终止符模式B将在后面详细说明。
此外,在第二标准中,作为用于验证被描述为输出数据310的数据已由可靠的创建者生成并且未被篡改(正确性)的信息,有必要布置一个区段,其中容纳签名数据作为验证数据,其模式指示符定义为“1010”。
此外,尽管稍后将描述细节,但是在本实施例中,在比特串300中将签名数据描述为利用使用公钥加密的私钥进行加密的数据。因此,在使用签名数据确认输出数据310的正确性时,需要使用与用于加密的私钥相对应的公钥来解密签名数据。因此,还可以任意地布置一个记录公钥ID的区段,其中公钥ID是用于指示要用于解密的公钥的识别信息,并且其模式指示符定义为“0110”。
第二终止符模式340是以第二标准限定并指示非输出数据330的结束的比特串(终止符模式A)。终止符模式A是与第一标准的终止符模式相同的“0000”,但也可以是不同的模式。
填充数据350是以第二标准限定的模式,作为用于填充额外空间的无效数据。虽然规则与第一标准定义的规则相同,如图1的示例,在添加“0”直到数据的比特数变为8的倍数的0附加部之后重复提供“11101100”和“00010001”,但第二标准也可以使用规则与第一标准的规则不同的模式。
具有上述配置的比特串300不符合第一标准,因为非输出数据330、第二终止符模式340和填充数据350存在于根据第一标准的填充数据应存在的区域中。然而,由于仅仅比特串的内容不同,所以可以通过根据第一标准基于各比特的值生成由任意模块组成的代码符号来生成二维码。本发明的一个实施例是如上述通过将比特串300转换成符合第一标准的二维码而产生的二维码。注意,在第二标准中限定了采用与第一标准相同的规则,作为基于非输出数据330、第二终止符模式340和填充数据350生成代码符号的标准。相应地,上述根据第一标准生成二维码可以说也符合关于非输出数据330、第二终止符模式340和填充数据350的部分的第二标准。
上述生成的二维码包含:根据第一标准对有效信息进行编码的第一代码符号(对应于输出数据310的代码符号);表示根据第一标准的有效信息的结束的终止符模式(对应于第一终止符模式320的代码符号);布置在终止符模式之后并根据第二标准对用于验证由第一代码符号编码的信息的正确性的验证数据进行编码的第二代码符号(与非输出数据330中的签名数据的区段对应的代码符号);和对纠错数据进行编码的第三代码符号,该纠错数据用于纠正第一代码符号和第二代码符号的错误(对应于纠错数据360的代码符号)。
当通过仅支持第一标准的读取设备读取上述二维码时,仅提取输出数据310这部分作为有效数据并输出。在这种情况下,第一终止符模式320之后的部分不严格符合第一标准,但其不是存储有效数据的区域,并且被简单地忽略,对读取过程自身没有特别的影响。此外,不能执行对正确性的验证,但是这一点也不会对照常输出输出数据310的操作本身产生特别的影响。
另一方面,当通过如下文所述的二维码读取设备200那样也支持第二标准的读取设备读取二维码时,除了提取输出数据310之外,还取出非输出数据330,作为有效数据,通过其中包含的签名数据(和公钥ID)验证输出数据310的正确性,在输出该输出数据310时可以附加输出所述验证结果。
因此,通过采用全球广泛使用的标准、例如符合JIS(日本工业标准)的标准作为第一标准,可以向具有支持第二标准的读取装置的用户附加地提供关于输出数据310的正确性的信息,从而提高安全性,同时保持一个即使普通读取装置也可以读取二维码并获取输出数据310的环境。
此外,根据本文说明的方法,与专利文献1中公开的方法相比,可以在二维码中容纳更多的非输出数据330。因此,可以采用数据长度更长的签名数据。签名数据的长度取决于密钥长度,这意味着可以采用更安全和更长的密钥长度。
此外,可以想到除了签名数据之外还可以容纳用于其他用途的各种信息作为非输出数据330,并且将该信息用于各种处理。其他用途是任意的,并且存在多种可能的示例,诸如处理输出数据310(例如对加密的输出数据310进行解密),通过光、声音、消息显示等向读取装置的用户发出通知。
例如,考虑QR码(注册商标)的版本1的示例,在具有最高校正能力的标准中,限定了应在一个二维码中容纳72位有效输出数据和136位纠错数据。此外,在校正能力最低的标准中,限定了一个二维码应当容纳152位有效输出数据和56位纠错数据。
在专利文献1公开的方法中,当写入1比特数据覆盖输出数据510或纠错数据540并被记录时,对应损失2比特纠错数据的校正能力。因此,通过使用具有最高校正能力的标准并使校正能力损失其与最低校正能力标准的校正能力的差值,根据版本1的标准保持最低矫正能力时可覆盖的最大数据量对应于(136-56)/2=40比特的数据。在这种情况下,可以容纳72比特输出数据510。
另一方面,在本实施例的方法中,将以牺牲容纳输出数据的区域来容纳非输出数据330。如果仅需要保持最小纠错能力,则可以容纳152比特输出数据。那么,如果如专利文献1中公开的方法那样仅需要容纳72比特,则差值152-72=80比特可用于容纳非输出数据330。然而,当为输出数据准备的整个区域中容纳输出数据310时,第一终止符模式320是不必要的,而当容纳非输出数据330时,在输出数据310之后需要4比特的第一终止符模式320,使得非输出数据330可实际容纳的最大量是80-4=76比特。
虽然这里使用版本1的数值进行了说明,但是即使使用其他版本的数值也可以获得类似的结果。这也适用于具有纠错功能的其他二维码的情况。
因此,在本实施例的方法中,可以说能够在二维码中容纳比专利文献1中公开的方法的非输出数据更大的非输出数据330,同时保持足够的纠错能力(根据广泛使用的标准)。
例如,在椭圆曲线DSA(ECDSA:椭圆曲线数字签名算法)签名的情况下,签名数据的长度通常是512比特。为了用专利文献1中公开的方法在输出数据510或纠错数据540上写入和记录该长度,根据与上述相同的计算,需要版本10或更高版本的QR码(注册商标)。
另一方面,在本实施例的方法中,根据与上述相同的计算,仅通过使用版本6或更高版本的QR码(注册商标)就可以将512比特的签名数据描述为非输出数据330。此外,在该实施例的方法中,输出数据310越短,可以容纳的非输出数据330越多。因此,当容纳诸如URL(统一资源定位符)的较短的输出数据310时,可以用更低版本的QR码(注册商标)容纳512比特的签名数据。然而,由于利用专利文献1中公开的方法中的纠错能力的余量来记录附加数据,因此无论输出数据510的长度如何,都需要版本10或以上的QR码(注册商标)来记录512比特的签名数据。
因此,可以说在相同版本的QR码(注册商标)的情况下,本实施例的方法与专利文献1中公开的方法相比可以使用具有更高安全性的签名数据并以更高的可靠性验证被描述为代码符号的信息的正确性。
此外,在专利文献1公开的方法中,覆盖输出数据510或纠错数据540的待记录的数据不是用纠错数据540纠错的目标。因此,如果由于代码符号的冲突等而发生读取错误,则不可能进行校正。另一方面,在本实施例的方法中,不仅输出数据310而且非输出数据330都是纠错数据360的纠错目标,因此即使发生读取错误,也可以对一定错误量进行校正。因此,在并非根据第一标准的非输出数据330的部分同样可以保持可靠性。当签名数据中发生错误时,验证输出数据510的正确性的结果变成出错。因此,对包含签名数据的非输出数据330的纠错能力在提高系统和二维码的可靠性方面提供了很大的效果。
顺便提及,图1所示的比特串300配置成使得用于读取二维码并根据第一标准对其进行解码以获取与二维码中的代码符号相对应的比特串的读取装置可以容易地确定其中是否包含非输出数据330。下面将解释这一点。
图3示出了仅根据第一标准包含在二维码中、而不包含非输出数据330的信息的配置的示例。
图3所示的比特串500与图14中所示的相同,这里附加说明以突出紧接终止符模式520之后的、填充数据530的前4比特的区域531。
尽管填充数据530的规则与已经描述的相同,但根据0附加部中添加的“0”的比特数将前4比特限制为五个模式,例如“1110”用于0比特,“0111”用于1比特,“0011”用于2比特,“0001”用于3比特,以及“0000”用于4比特或更多比特。
因此,当将非输出数据330布置在图1的比特串300中时,通过使前4比特(区域331)与上述五种模式中的任何一种都不一致,可以在读取二维码时确定非输出数据330是在紧接第一终止符模式320之后的四个比特与上述五种模式中的任何一种都不一致的基础上布置的。为了能够进行确定,上述五种模式被定义为图2所示规则中的终止符模式B,并且不用于指定根据第二标准的模式。因此,可以基于紧接在第一终止符模式320之后的四个比特是否是终止符模式B中的任何一个来确定非输出数据330是否存在。
注意用于确定的数据并不总是必须位于非输出数据330的顶部,并且不必紧接第一终止符模式320之后。数据的大小不必是4比特。无论如何,当存在非输出数据330时,通过确定第二标准以使布置在第一终止符模式320之后的预定范围内的信息与填充数据350不一致,并且设置哪个范围的数据用于确定,可以在读取装置中进行相同的确定。尽管发生空间浪费,并不一定要非输出数据330紧接在第一终止符模式320之后开始。
下面将说明根据本发明的二维码输出系统、二维码读取系统及其对应的处理上述二维码的方法的实施例。
图4是示出作为二维码输出系统的一个实施例的二维码输出装置的使用模式和作为二维码读取系统的一个实施例的二维码读取装置的图。注意,在图4的示例中,二维码输出装置和二维码读取装置中的每一个构成为由包括所有必要功能的一个设备组成的系统,但是当然可以想到通过多个装置协作构成相同的系统,其中必要功能分配到各装置。
图4所示的二维码输出装置100的一个功能是接收要在二维码中容纳为图1所示的输出数据310和非输出数据330的信息、以及二维码创建者的信息输入,并基于所接收的信息产生并输出对如图1所示的信息进行编码的二维码10,其中,使用二维码创建者的私钥加密的签名数据包括在非输出数据330中。输出可以以任意模式执行,例如显示器显示、屏幕投影、用打印机打印到目标物体上、通过曝光改变目标物体和通过通信路径传输图像数据。
此外,二维码输出装置100的另一功能是将与用于加密的私钥相对应的公钥连同其ID一起提供给二维码读取装置200(不提供私钥)。如果指定了目标的二维码读取装置200,则可以通过直接发送数据来执行该设置,或者可以通过将它们存储在适当的服务器等中并将其保持在可根据需要从二维码读取装置200获取的状态来执行该设置。另外,可以通过使用从二维码输出装置100向二维码读取装置200输送信息的任意方法来实现该设置。
另一方面,二维码读取装置200具有读取从二维码输出装置100输出的二维码10的功能。尽管通过诸如显示、投影、打印等任何方法呈现在读取目标物体上的二维码在此处被光学读取,但不禁止通过除光学方法之外的方法执行读取,例如通过分析图像数据来读取作为图像数据而提供的代码符号等方法。
二维码读取装置200具有对读取的二维码10进行解码以获取输出数据310和非输出数据330的功能。此外,二维码读取装置200也具有使用非输出数据330中包含的签名数据验证输出数据310的正确性、并将验证结果与输出数据310一起输出到预定输出目的地的功能。二维码读取装置200还具有将其他非输出数据330用于各种处理的功能。要执行的内部处理的内容根据非输出数据330的用途而不同,并且可以是在二维码读取装置200内部完成的处理,或者可以是将信息输出二维码读取装置200外部的处理。
输出数据310的输出可以通过例如经由诸如网络的通信路径进行传输、通过显示器显示、在屏幕上投影、用打印机打印到目标物体上、通过曝光改变目标物体、通过扬声器输出声音等任意方法来执行。这也适用于验证结果。例如,在通过显示设备上附带的显示器输出输出数据310的情况下,可以想到当验证成功时显示验证结果信息或“这是可靠信息”的标记,或者当验证失败时显示“这可能已被篡改”。或者,可以想到将验证结果作为数据发送,该数据可以是发送目的地的装置中的同一显示器的触发器。
接下来,将更详细地说明二维码输出装置100的配置。图5是示出其硬件配置的图,图6是示出其功能配置的图。
如图5所示,二维码输出装置100的配置包括通过系统总线108相连的CPU 101、ROM102、RAM 103、存储器104、通信I/F(接口)105、操作部106和显示部107。
CPU 101使用RAM 103作为工作区执行存储在ROM 102或存储器104中的所需程序,从而控制整个二维代码输出设备100,以便实现包括图6所示的各种功能。
通信I/F 105是用于通过诸如网络等任意信道与例如信息输入设备、信息输出设备等其他设备进行通信的接口。仅需要根据要使用的通信路径的标准提供通信I/F。
操作部106是用于接收用户操作的操作设备,其可以由各种键、开关、触控面板等组成。
显示部107是用于向用户呈现二维码输出装置100的操作状态和设置状态以及消息等的呈现设备,其包括液晶显示器、灯等。
注意,操作部106和显示部107可以是外部设备。此外,在二维码输出装置100不必直接接收用户操作的情况下(通过经由通信I/F 105连接的外部设备接收操作并呈现信息就足够了),操作部106和显示部107可以去掉。
对于二维码输出装置100,通用计算机也可以用作硬件。
此外,如图6所示,二维码输出装置100具有与生成二维码相关的功能,包括输出数据接收部111、非输出数据接收部112、创建者信息接收部113、第一编码部114、第二编码部115、私钥获取部116、签名数据添加部117、纠错数据添加部118、二维码生成部119、二维码输出部120、公钥发送部121和密钥管理部131的功能。
输出数据接收部111具有接收要在二维码10中容纳的作为输出数据310的信息输入(第一信息)的功能。非输出数据接收部112具有除了接收公钥ID和用于验证输出信息310的正确性的验证数据之外、还接收要在二维码10中容纳的非输出数据330的信息(第二信息)的输入的功能。
创建者信息接收部113具有接收二维码的创建者的信息的功能。指定创建者的方式是任意的,并且创建者可以是个人、公司或任意单元,例如部门、职位等。创建者不仅可以是一个人,而且也可以是一个装置或程序。可以想到,根据二维码的用途,同一个人或组织可成为不同的创建者。此外,在二维码输出装置100在多个创建者之间共享的情况下,除了用于指定创建者的识别信息之外,优选地接收用于认证创建者的认证信息,诸如密码、生物信息等作为创建者的信息。
上述各信息可以由用户输入或通过通信从另一个设备接收。此外,可以读取用户选择的信息或从二维码输出装置100或其他设备预先存储的信息中基于一些条件自动选择的信息。此外,可以基于用户选择的或自动决定的一些参数自动生成信息。另外,可以通过任意方法接收输入,并且可以根据某些条件改变输入接收方法。各接收部111~113之间可使用不同的方法接收信息输入。
第一编码部114具有以下功能,根据第一标准对由输出数据接收部111接收的信息进行编码,从而将其转换为图1所示的输出数据310的比特串,并且如果到最大数据量存在余量,则将第一终止符模式320添加到该比特串中。
第二编码部115具有以下功能,根据第二标准对由非输出数据接收部112接收的信息、以及私钥获取部116提供的公钥ID进行编码,从而将它们转换为图1所示的非输出数据330(的一部分)的比特串,将其连接到由第一编码部114生成的比特串。
私钥获取部116的一个功能是,在根据需要使用认证信息认证信息的输入者是输入的信息的创建者之后,基于由创建者信息接收部113接收的信息从密钥管理部131获取二维码创建者的私钥和与私钥对应的公钥的公钥ID。私钥获取部116的另一功能是将公钥ID提供给第二编码部115和公钥发送部121并将私钥提供给签名数据添加部117。优选创建者的私钥预先注册在密钥管理部131中。然而,可以想到,当由于尚未创建私钥等原因而无法从密钥管理部131获取创建者的私钥时,私钥获取部116自身创建一对新的私钥和公钥或者使外部密钥生成装置创建私钥,从而获取私钥。此外,创建密钥的装置优选地具有将创建的公钥及其公钥ID提供给二维码输出装置100和二维码读取装置200的功能。
注意,密钥管理部131具有管理与二维码的创建者信息相关联的一对私钥和公钥的功能。私钥优选地使用例如由所有者设置的密码等保持在加密状态,以便即使存储器被丢弃也防止私钥泄露。此外,公钥优选地包含诸如用于识别密钥对的所有者的公钥ID、姓名、职位、地址等信息作为目录信息。优选使用由可靠的证书颁发机构电子签名的公钥证书,以保证目录信息和密钥本身不被篡改。
上述密钥管理部131优选地将密钥存储在二维码输出装置100的存储器104中,以防止由于拦截通信等而泄露私钥,但不限于此。
此外,可以允许二维码的创建者从操作部106输入他/她的私钥和与私钥对应的公钥的公钥ID。在这种情况下,私钥和公钥ID本身可以被理解为关于创建者的信息,私钥获取部116从接收该输入的创建者信息接收部113获取私钥和公钥ID。
签名数据添加部117的一个功能是,使用私钥获取部116提供的私钥创建要添加到由第二编码部115提供的比特串的签名数据,根据第二标准对签名数据进行编码,并且将编码的签名数据连接到由第二编码部115生成的比特串,作为图1所示的非输出数据330(的一部分)的比特串。此外,签名数据添加部117的另一功能是,如果最大数据尺寸存在余量,则进一步将第二终止符模式340和填充数据350添加到所述比特串。
注意,例如可以通过计算从第二编码部115提供的比特串的哈希值并使用私钥加密哈希值来生成签名数据。如果容纳公钥ID的区段也包括在计算哈希值的目标中,则可以在读取二维码10时使用哈希值来确认公钥ID未被篡改。不必计算从第二编码部115提供的所有比特串的哈希值,但是应当计算仅用于在读取中确认正确性的范围内的比特串的哈希值。当然,二维码读取装置200必须能够在读取时掌握关于哈希值所在范围的信息。
纠错数据添加部118的功能是基于签名数据添加部117添加签名数据之后的比特串生成用于校正读取错误的纠错数据360,并且将其添加到该比特串。由此生成图1所示的比特串300。
二维码生成部119的功能是,根据第一标准将比特串300转换为代码符号,从而生成二维码10。
二维码输出部120的功能是,通过适当的方法输出由二维码生成部119生成的二维码10。
公钥发送部121的功能是,在私钥获取部116提供公钥ID后,从密钥管理部131获取具有公钥ID的公钥,并将公钥与公钥ID一起发送到二维码读取装置200。执行该发送以使二维码读取装置200在读取此次创建的二维码10时可靠地解密签名数据。
因此,可以想到设置二维码读取装置200的地址等,使得二维码读取装置200预先读取二维码输出装置100中的二维码10并且发送公钥和公钥ID到该地址,或者准备一个服务器,使得读取二维码10的二维码读取装置200可以访问该服务器并将公钥和公钥ID发送给该服务器,以便二维码读取装置200可以任意获取公钥和公钥ID。此外,基本上不必将输送过一次的公钥再次发送到同一发送目的地。此外,还可以想到,公钥发送部121将存储在密钥管理部131中的公钥与公钥ID一起周期性地上传到二维码读取装置200可以访问的服务器,而不管私钥获取部116如何操作。
二维码输出装置100通过上述各部的功能可以生成并输出二维码10,该二维码10容纳有图1和图2所述配置的数据。注意,在不需要容纳非输出数据330的情况下,即,非输出数据接收部112不接收信息输入且签名数据不必要的情况下,第二编码部115和签名数据添加部117仅需要添加图3所示的填充数据530。这使得二维码输出装置100能够生成并输出不包含非输出数据330的二维码10,其中容纳了具有图3所述配置的数据。
接下来,将更详细地说明二维码读取装置200的配置。图7是示出其硬件配置的图,图8是示出其功能配置的图。
如图7所示,二维码读取装置200是包括光学部210、解码器220、操作部231和通知部232的装置,用于通过将光学部210指向读取目标物体20来读取该读取目标物体20上的由光反射率与周围环境不同的符号表示的二维码10。
光学部210是包括成像传感器211、透镜212和脉冲LED(发光二极管)213的读取器,用于光学读取二维码10。
成像传感器211是用于抓取读取目标物体20的图像的成像器。成像传感器21可以由例如CMOS(互补金属氧化物半导体)图像传感器组成。此外,成像传感器211可以根据通过抓取图像而在图像传感器的每个像素中累积的电荷来生成指示每个像素的灰度值的图像数据,并且将图像数据输出到解码器220。在该成像传感器211中,像素是二维布置的。
透镜212是用于在成像传感器211上形成来自包括二维码10的读取目标物体20的反射光的图像的光学系统。
脉冲LED 213是用照明光照射作为图像抓取目标的读取目标物体20的照明器。
接下来,解码器220包括CPU 221、存储由CPU 221执行的程序和诸如各种表单的数据的ROM 222、在CPU 221执行各种处理时用作工作区域的RAM 223以及用于与外部装置进行通信的通信I/F 224。
对于上述CPU 221、ROM 222和RAM 223,可以使用例如ASIC(专用集成电路)、闪存ROM(FROM)、SDRAM(同步动态随机存取存储器)等。
CPU 221通过使用RAM 223作为工作区域执行存储在ROM 222中的程序来控制包括光学部210、操作部231和通知部232的整个二维码读取装置200的操作。CPU 221还执行诸如由成像传感器211抓取的图像的图像数据中包括的二维码10的检测和解码、将解码结果输出到外部或累积器、用脉冲LED 213调节照明光的量(或时间)等处理。
通信I/F 224是用于与处理解码器220的解码结果的PC(个人计算机)等数据处理设备进行通信的接口,有线或无线的任意标准都对其适用。此外,可以基于从通信I/F 224读取的数据在解码器220中设置控制参数。
操作部231是诸如用于接收用户操作的按钮和触发器的操作设备。
通知部232是用于向用户提供各种通知的通知器。可想到的具体通知方法包括但不限于通过显示器显示消息和数据、灯的点亮或闪烁、扬声器输出声音等。
此外,如图8所示,二维码读取装置200具有与读取二维码有关的功能,包括代码符号读取部241、第一解码部242、纠错部243、有效数据获取部244、非输出数据获取部245、数据验证部246、公钥获取部247、验证结果添加部248、信息输出部249、其他处理部250、公钥接收部251和公钥数据库(DB)261的功能。
代码符号读取部241具有通过光学部210读取二维码10以获取二维码10的图像的功能。
第一解码部242具有解码器的功能,其根据第一标准对由代码符号读取部241获取的代码符号的图像进行解码,并且将图像转换为比特串。纠错部243具有纠错器的功能,其对从第一解码部242获取的比特串使用其中包含的纠错数据执行纠错处理。纠错的目标是纠错数据之前的整个比特串,并且纠错的目标不仅是输出数据(图1中的310或图5中的510),而且如果有非输出数据的话还有非输出数据(如图1中的330)。当解码或纠错失败时,二维码读取装置200确定此次读取失败,并进行下一次读取。
有效数据获取部244具有第一获取器的功能,其从由纠错部243纠错之后的比特串获取输出数据(图1中的310或图5中的510),并根据第一标准对其进行解码以将每个区段中的比特串返回到编码之前的信息,从而获得根据第一标准为有效数据的第一信息。有效数据获取部244还具有将根据第一标准的终止符模式(图1中的320或图3中的520)之后的比特串传递到非输出数据获取部245(如果存在的话)的功能。
非输出数据获取部245具有第二获取器的功能,其从来自有效数据获取部244的比特串获取非输出数据(图1中的330)(如果存在的话),并根据第二标准对其进行解码,以将每个区段中的比特串返回到编码之前的信息,从而获取根据第二标准为有效数据的第二信息。
非输出数据获取部245还具有传递功能,当已获取第二信息时,将第二信息传递给功能部分,该功能部分基于在二维码读取装置200中进行的设置或者该第二信息所包含的处理的种类指定来执行必要的处理,从而基于第二信息执行该处理。在图8的示例中,当第二信息包含签名数据和公钥ID时,非输出数据获取部245将这些信息传递到数据验证部246。非输出数据获取部245还将第二信息的其它部分传递到负责根据信息进行处理的其他处理部250。其他处理部250执行的处理可以是处理或添加信息输出部249要输出的信息。
数据验证部246具有验证器的功能,其使用从非输出数据获取部245传递的签名数据和公钥ID验证由有效数据获取部244和非输出数据获取部245获取的信息的正确性。在验证处理中,数据验证部246使公钥获取部247获取对应于公钥ID的公钥,并使用公钥解密签名数据。此外,数据验证部246计算在纠错部243进行纠错之后比特串的确认正确性的范围内的比特串哈希值,将该哈希值与签名数据的解密结果进行比较。当它们彼此一致时,数据验证部246可以确认比特串未被篡改。此外,当公钥的目录项可靠时,还可以确认比特串是由公钥的目录项中描述的人创建的。数据验证部246将上述验证结果提供给验证结果添加部248。
公钥获取部247具有公钥获取器的功能,其根据来自数据验证部246的请求从公钥DB 261获取具有指定公钥ID的公钥,并将该公钥传递到数据验证部246。公钥DB 261是将公钥与公钥ID相关联存储的数据库。可以想到通过公钥接收部251的功能接收和登记从二维码输出装置100的公钥发送部121发送的公钥。还可以想到定期或在需要未注册的公钥时访问预定服务器,并获取和注册该公钥。
验证结果添加部248具有将表示数据验证部246的验证结果的信息添加到由有效数据获取部244获取的信息以生成要作为二维码10的读取结果输出的数据。
信息输出部249具有输出设备的功能,其以适当的方法输出由验证结果添加部248添加了验证结果的第一信息。当不能确认第一信息的正确性时,信息输出部249可以仅输出验证结果而不输出第一信息。
二维码读取装置200通过上述各部分的功能可以读取容纳了具有图1所述配置的数据的二维码10,使用其中包含的签名数据和公钥验证输出数据310的正确性,然后和该验证结果一起输出通过对输出数据310解码获得的第一信息。签名数据和公钥ID是在二维码10中描述的信息,但是二维码读取装置200从不将其当作读取结果输出。
注意,当读取的二维码不包含非输出数据330时,即,读取的二维码10中描述了具有图3所述配置的数据时,非输出数据获取部245无法获取签名数据,因此数据验证部246不能验证正确性。在这种情况下,验证结果添加部248仅需要添加不包含用于验证的签名数据的信息作为验证结果。或者,可以不添加任何验证结果,而仅输出根据第一标准的数据。
在二维码读取装置200中,可以仅使用二维码10本身记载的信息和即使第三方知情也不会出问题的公钥(以及用于搜索公钥的公钥ID)来验证输出数据310的正确性。因此,如果验证功能和验证所需的信息没有被集成到特定的欺诈检测设备,而是被赋予单独的二维码读取装置200,也可以保持安全性。还可以避免在二维码读取装置200和欺诈检测设备之间由于拦截通信而导致用于验证的必须保密的信息泄露的风险。因此可以提供一种可以通过简单的系统检测对二维码中信息的欺诈并保持高的可靠性的环境。
有必要将二维码的创建者的私钥保密地保存在二维码输出装置100一方,但是通常认为二维码输出装置100常处于使用私钥创建二维码的人的手中,因而与二维码读取装置200一方相比易于管理,因此可以根据创建者的责任适当地控制私钥泄露到外部的风险。
接下来,将说明由二维码输出装置100或二维码读取装置200执行的与图6和图8中所示的功能相对应的处理。这些处理是与本发明的二维码输出方法或二维码读取方法的实施例有关的处理。此外,以下流程图中所示的处理由二维码输出装置100的CPU 101或二维码读取装置200的CPU 221执行所需程序来实现,但是为了便于说明,解释成由二维码输出装置100或二维码读取装置200执行的处理。
首先,图9示出了由二维码输出装置100执行的生成包含非输出数据的二维码的处理的流程图。
当通过预定的用户操作、命令等指示二维码输出装置100生成带有签名的的二维码时,二维码输出装置100开始图9所示的处理。
在该处理中,二维码输出装置100首先接收将容纳为图1中的输出数据310的信息输入、容纳为图1中的非输出数据330的信息输入、以及创建者信息输入(S11至S13)。该处理对应于输出数据接收部111、非输出数据接收部112和创建者信息接收部113的功能。
接下来,二维码输出装置100通过图10的输出数据的编码处理对在步骤S11中接收的信息进行编码,以产生输出数据310和第一终止符模式320的比特串(S14)。该处理对应于第一编码部114的功能。
更具体地,二维码输出装置100执行从在步骤S11中接收的信息中取出对应于一个区段的信息并根据第一标准生成该区段的比特串的处理(S31),并将其连接到至此生成的比特串(S32),对所有区段重复执行该处理(S33)。根据信息项和字符的种类确定区段的边界,并且可以采用第一标准的定义。
如果第一标准由二维码输出装置100的提供者或用户决定,则可以想到当在步骤S11中接收的信息由多个信息项组成时,至少该项的边界被视为该区段的边界。此外,可以想到的是,诸如从数字字符到汉字字符的改变之类的字符种类改变被认为是区段的边界。
当直到步骤S33生成的比特串比输出数据310的最大尺寸短4个比特或更多比特时,即,当存在添加第一终止符模式320的余量时(S34),二维码输出装置100通过连接添加第一终止符模式320(S35),并且返回到图9的处理。当在步骤S34中没有余量时,二维码输出装置100返回到图9的处理而不连接第一终止符模式320。
接下来,二维码输出装置100获取与在步骤S13中接收的创建者信息相对应的私钥和公钥ID(S15)。该处理对应于私钥获取部116的功能。
然后,二维码输出装置100根据第二标准对在步骤S12中接收的信息和在步骤S15中获取的公钥ID进行编码,以生成非输出数据330的比特串(的一部分),并将其连接到在步骤S13中生成的比特串(S16)。该过程对应于第二编码部115的功能。除了步骤所符合的标准不同之外,具体过程与图10中的步骤S31至S33的具体过程相同。
接下来,二维码输出装置100计算直到步骤S16生成的比特串的哈希值(S17),并使用在步骤S15中获取的私钥加密该哈希值,从而生成签名数据(S18)。然后,二维码输出装置100根据第二标准生成所生成的签名数据的区段的比特串,并将其连接到直到步骤S16生成的比特串(S19)。然后,当直到步骤S19生成的比特串比二维码中可容纳的最大尺寸短4比特或更多比特时,即,当存在添加第二终止符模式340的余量时,二维码输出装置100添加第二终止符模式340(S20)。步骤S17至S20的处理对应于签名数据添加部117的功能。
注意,在至此的处理中,在任何时间点,当生成的比特串变得比二维码中除了纠错数据360之外可容纳的最大尺寸更长时,二维码输出装置100将其视为二维码生成失败,并执行错误处理。
接下来,二维码输出装置100通过图11的填充数据添加处理生成填充数据350的比特串,并将其连接到直至步骤S20所生成的比特串上(S21)。该处理对应于签名数据添加部117的功能。
更具体地,除非至此生成的比特串的比特数是8的倍数(S41),否则二维码输出装置100添加一比特的“0”到所生成的比特串上,直到比特数变为8的倍数(S42)。此后,二维码输出装置100将预定的重复模式添加到比特串,直到比特串变为二维码中可容纳的最大尺寸(S43),并返回到图9的处理。
接下来,二维码输出装置100基于在直到步骤S22的处理中生成的比特串生成纠错数据360,并将其添加到比特串(S22)。该处理对应于纠错数据添加部118的功能。
至此完成比特串300,并且二维码输出装置100根据第一标准对至此生成的比特串进行编码生成二维码10(S23),将该二维码输出到合适的输出目的地(S24),并结束图9的处理。这些处理对应于二维码生成部119和二维码输出部120的功能。
二维码输出装置100通过上述处理可以生成并输出容纳了图1所述配置的数据、包含签名数据及公钥ID的二维码10。注意,在生成不包含签名数据及公钥ID的二维码的情况下,仅跳过步骤S12、S13和S15~S20就可以。
此外,对应于公钥发送部121的功能的公钥发送过程可以在图9的处理中的某些部分中执行,或者根据需要与图9的处理异步地任意执行。
接下来,图12A和12B示出了由二维码读取装置200执行的二维码读取处理的流程图。
当通过预定的用户操作、命令等指示二维码读取装置200读取二维码时,二维码读取装置200开始图12A和12B所示的处理。此时,不必考虑签名数据是否包含在作为读取目标的二维码中。
在图12A和12B的处理中,二维码读取装置200首先获取作为读取目标的二维码10的图像,并根据第一标准执行解码和纠错,以获得比特串300(或比特串500)(S51)。如果二维码10未被容纳在扫描框中或者抓取图像时的亮度和焦点不合适,则该处理将失败,因此在适当改变条件的同时重复该处理直到其成功(S52)。该处理是解码步骤和纠错步骤的处理,并且对应于代码符号读取部241、第一解码部242和纠错部243的功能。
接下来,二维码读取装置200在步骤S51中从解码结果的比特串中获取输出数据310(或510)的部分,并根据第一标准将其转换为编码前的信息(S53)。该处理是第一获取步骤的处理并且对应于有效数据获取部244的功能。
接下来,二维码读取装置200判断紧接在解码结果的第一终止符模式320(或520)之后的4个比特是否是第二标准的任何一个终止符模式B(S54)。如果该结果为否(不是其中的任何一个),则二维码读取装置200判断解码结果中包含非输出数据330,并且进行到步骤S55和后续步骤。
二维码读取装置200根据第二标准分析解码结果的第一终止符模式320之后的比特串,并将非输出数据330的部分转换成编码前的信息(S55)。步骤S54和S55中的处理是第二获取步骤的处理,并且对应于非输出数据获取部245的功能。
接下来,二维码读取装置200判断签名数据是否存在于通过步骤S55中的转换所获取的信息中,即,签名数据的区段是否存在于非输出数据330中(S56)。这里,当存在签名数据时,二维码读取装置200前进到步骤S57和后续步骤,以使用签名数据验证数据的正确性。
在该处理中,二维码读取装置200首先在步骤S51中获取解码结果中签名数据的区段之前的比特串,并计算其哈希值(S57)。由于输出数据310和非输出数据330中除了签名数据之外的数据都是验证的目标,因此在该范围内计算哈希值。然而,验证的目标可以仅是输出数据310。接下来,二维码读取装置200使用由非输出数据330中的公钥ID指示的公钥对在步骤S55中获取的非输出数据330中的签名数据进行解密(S58)。从公钥DB 261获取公钥。然后,二维码读取装置200判断在步骤S57中计算的哈希值和步骤S58中的解密结果是否彼此一致(S59)。
当它们彼此一致时,二维码读取装置200判断签名有效并且已经验证了正确性(S60)。在这种情况下,如果在对步骤S55获取的信息编码之前的非输出数据中存在除签名数据和公钥ID之外的信息,则二维码读取装置200根据该数据执行处理(S61)。当在步骤S59中它们彼此不一致时,二维码读取装置200判断签名无效并且用于签名的私钥与由公钥ID指示的公钥不对应,或者数据损坏、被篡改等(S62)。在这种情况下,由于不能确认非输出数据的正确性,所以二维码读取装置200不执行使用了非输出数据的步骤S61的处理。
步骤S57至S60和S62的处理是与数据验证部246的功能相对应的验证步骤的处理,并且步骤S61的处理对应于其他处理部250的功能。步骤S58的获取公钥的处理是与公钥获取部247的功能相对应的公钥获取步骤的处理。
在任何场合,二维码读取装置200总是将在步骤S53获取的编码之前的输出数据(或者步骤S61的处理之后的输出数据)与签名的判断结果一起输出到预定输出目的地(S63),并结束图12A和图12B的处理。该处理对应于验证结果添加部248和信息输出部249的功能。
此外,如果步骤S54的判断结果为“是”(其中任何一个),二维码读取装置200判断解码结果中不包含非输出数据,因此不能验证数据的正确性,并且在步骤S64中判断不存在签名,在步骤S63输出编码之前的输出数据。当读取对具有图3所示配置的数据编码的二维码时,流程将分支到此。在这种情况下,由于无法验证数据的正确性,因此可以与签名无效的情况一样处理。这也适用于在步骤S56中没有签名数据的情况。
二维码读取装置200可以通过上述处理读取容纳了具有图1或图3所示配置的数据的二维码10,然后在编码前验证输出数据的正确性,并将输出数据与验证结果一起输出。
以上完成了对实施例的说明,但是本发明的代码符号、系统和装置的具体配置,具体处理过程,数据形式,具体数据内容,要采用的标准等不限于实施例中所述内容。
例如,在上述实施例中使用通过布置方形的白色(高反射率)模块和黑色(低反射率)模块来表示数据的标准的二维码,但不限于此。可以使用二维阵列条模块的二维码和六边形模块阵列的二维码。
此外,填充数据的模式不是必须在标准中定义的,并且终止符模式之后的数据可以是任意的。
另外,在述实施例的二维码中容纳了关于公钥ID的信息,但这不是必需的。当用于签名的私钥是特定私钥或可用公钥的数量处于可以尝试所有备选公钥的情况下,可以在没有关于公钥ID信息的情况下验证数据的正确性。
此外,上述实施例配置成使得二维码10中除了容纳签名数据和公钥ID之外,还可以容纳非输出数据330。然而,非输出数据330可以仅是签名数据和公钥ID。在这种情况下,非输出数据接收部112是不必要的。
此外,通过对作为正确性的验证目标的数据的哈希值加密而产生的签名数据用作上述实施例中的验证数据,但是不一定使用哈希值和“签名”的形式。
本发明的程序的实施例是用于使一个计算机或多个计算机协作以控制所需的硬件,以便实现上述实施例中的二维码输出装置100或二维码读取装置200的功能或者执行上述实施例中说明的处理的程序。
这样的程序可以存储在最初包括在计算机中的ROM或另一种非易失性存储介质(闪存、EEPROM等)中。可以在记录到诸如存储卡、CD、DVD、蓝光盘等任意非易失性记录介质上的同时提供程序。该程序也可以从连接到网络的外部设备下载,并安装到计算机中由计算机执行。
此外,上述实施例和修改示例的配置可以以任意组合实现,除非它们彼此不一致,当然,也可以实现为仅使用其部分配置。
附图标记
10:二维码,
20:读取目标物体,
100:二维码输出装置,
200:二维码读取装置,
210:光学部,
220:解码器,
300、500:比特串,
310、510:输出数据,
320、340、520:终止符模式,
330:非输出数据,
350、530:填充数据,
360、540:纠错数据

Claims (16)

1.一种二维码,包括:
第一代码符号,根据第一标准编码第一有效信息;
终止符模式,表示根据第一标准的所述第一有效信息的结束;和
第二代码符号,布置在能够根据所述第一标准布置有效信息的区域内的所述终止符模式的后面,并根据与第一标准不同的第二标准对用私钥加密的验证数据进行编码,该验证数据用于验证所述第一有效信息的正确性。
2.根据权利要求1所述的二维码,其中,
所述第二代码符号包括根据第二标准对与所述私钥对应的公钥的识别信息进行编码的代码符号。
3.一种二维码输出系统,包括至少一个处理器或电路或其组合,该二维码输出系统配置成:
通过输入设备接收第一信息的输入;
根据第一标准将所述第一信息编码为第一比特串;
生成用于验证所述第一比特串的正确性的验证数据;
用私钥对所述验证数据进行加密使其成为加密的验证数据;
根据第二标准将所述加密的验证数据编码成第二比特串;
生成按顺序包括所述第一比特串、指示根据第一标准的有效信息的结束的终止符数据、和所述第二比特串的组合比特串;
根据第一标准将所述组合比特串转换为二维码,从而生成二维码,该二维码包括:根据第一标准将第一信息编码为第一有效信息的第一代码符号;对终止符数据进行编码的终止符模式;第二代码符号,布置在能够根据第一标准布置有效信息的区域内的所述终止符模式的后面,并根据第二标准对加密的验证数据进行编码;以及
输出二维码。
4.根据权利要求3所述的二维码输出系统,其中,
所述第二代码符号包括根据第二标准对与私钥对应的公钥的识别信息进行编码的代码符号。
5.根据权利要求3或4所述的二维码输出系统,其中,
所述至少一个处理器或电路或其组合还配置成:
通过输入设备接收创建者的信息的输入;以及
从预定获取目的地获取与所述创建者的信息对应的私钥,
所述验证数据的加密是用所获取的私钥对所述验证数据进行加密。
6.一种二维码输出方法,包括:
通过输入设备接收第一信息的输入;
根据第一标准将所述第一信息编码为第一比特串;
生成用于验证所述第一比特串的正确性的验证数据;
用私钥对所述验证数据进行加密使其成为加密的验证数据;
根据第二标准将所述加密的验证数据编码成第二比特串;
生成按顺序包括所述第一比特串、指示根据第一标准的有效信息的结束的终止符数据、和所述第二比特串的组合比特串;
根据第一标准将所述组合比特串转换为二维码,从而生成二维码,该二维码包括:根据第一标准将第一信息编码为第一有效信息的第一代码符号;对终止符数据进行编码的终止符模式;第二代码符号,布置在能够根据第一标准布置有效信息的区域内的所述终止符模式的后面,并根据第二标准对加密的验证数据进行编码;以及
输出二维码。
7.根据权利要求6所述的二维码输出方法,其中,
所述第二代码符号包括根据第二标准对与私钥对应的公钥的识别信息进行编码的代码符号。
8.根据权利要求6所述的二维码输出方法,其中还包括:
通过输入设备接收创建者的信息的输入;和
从预定获取目的地获取与所述创建者的信息对应的私钥,
验证数据的加密是用所获取的私钥对所述验证数据进行加密。
9.一种非暂时性机器可读存储介质,包含由计算机执行的程序指令,在执行所述程序指令时,使得一个计算机或多个计算机协作执行根据权利要求6~8中任一项所述的二维码输出方法。
10.一种二维码读取系统,包括至少一个处理器或电路或其组合,该二维码读取系统配置成:
由读取器读取二维码,根据包括限定了指示有效信息的结束的终止符模式的第一标准对该二维码进行解码,从而获得解码结果;
根据第一标准从解码结果中获取有效信息,作为第一信息;
根据与第一标准不同的第二标准分析所述终止符模式之后的解码结果的信息,从而获取验证数据;
从预定获取目的地获取公钥;
用所获取的公钥对所述验证数据进行解密以获得解密的数据;
将解密的数据与所述第一信息进行比较以验证第一信息的正确性;以及
将指示验证结果的信息与所述第一信息一起输出。
11.根据权利要求10所述的二维码读取系统,其中,
所述至少一个处理器或电路或其组合还配置成从对所述终止符模式后面的信息的分析结果获取公钥的识别信息,并且,
获取与所获取的识别信息对应的公钥作为公钥。
12.根据权利要求10或11所述的二维码读取系统,其中,
所述至少一个处理器或电路或其组合还配置成,在通过对所述终止符模式后面的信息的分析无法获取验证数据的情况下,将与指示没有验证数据的信息与所述第一信息一起输出。
13.一种二维码读取方法,包括:
由读取器读取二维码,根据包括限定了指示有效信息的结束的终止符模式的第一标准对该二维码进行解码,从而获得解码结果;
根据第一标准从解码结果中获取有效信息,作为第一信息;
根据与第一标准不同的第二标准分析所述终止符模式之后的解码结果的信息,从而获取验证信息;
从预定获取目的地获取公钥;
用所获取的公钥对所述验证数据进行解密以获得解密的数据;
将解密的数据与所述第一信息进行比较以验证第一信息的正确性;以及
将指示验证结果的信息与所述第一信息一起输出。
14.根据权利要求13所述的二维码读取方法,其中还包括,
从对所述终止符模式后面的信息的分析结果获取公钥的识别信息,
获取与所获取的识别信息对应的公钥作为公钥。
15.根据权利要求13所述的二维码读取方法,其中还包括,
在通过对所述终止符模式后面的信息的分析无法获取验证数据的情况下,将指示没有验证数据的信息与所述第一信息一起输出。
16.一种非暂时性机器可读存储介质,包含由计算机执行的程序指令,在执行所述程序指令时,使得一个计算机或多个计算机协作执行根据权利要求13~15中任一项所述的二维码读取方法。
CN201811386565.2A 2018-02-26 2018-11-20 二维码、二维码输出系统和方法、二维码读取系统和方法 Pending CN110197244A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018032538A JP2019148930A (ja) 2018-02-26 2018-02-26 二次元コード、二次元コード出力システム、二次元コード出力方法、二次元コード読取システム、二次元コード読取方法及びプログラム
JP2018-032538 2018-02-26

Publications (1)

Publication Number Publication Date
CN110197244A true CN110197244A (zh) 2019-09-03

Family

ID=67685916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811386565.2A Pending CN110197244A (zh) 2018-02-26 2018-11-20 二维码、二维码输出系统和方法、二维码读取系统和方法

Country Status (3)

Country Link
US (1) US10679023B2 (zh)
JP (1) JP2019148930A (zh)
CN (1) CN110197244A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113657133A (zh) * 2021-08-24 2021-11-16 凌云光技术股份有限公司 一种二维码提取信息的纠正方法及装置
CN115001676A (zh) * 2022-06-02 2022-09-02 深圳市爱克信智能股份有限公司 一种二维码加密方法、解密方法、系统、终端及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019148929A (ja) 2018-02-26 2019-09-05 株式会社オプトエレクトロニクス 二次元コード、二次元コード出力システム、二次元コード出力方法、二次元コード読取システム、二次元コード読取方法及びプログラム
WO2019191083A1 (en) * 2018-03-26 2019-10-03 Colorado State University Research Foundation Apparatuses, systems and methods for generating and tracking molecular digital signatures to ensure authenticity and integrity of synthetic dna molecules
US11012233B1 (en) * 2020-01-22 2021-05-18 Coinplug, Inc. Method for providing authentication service by using decentralized identity and server using the same
CN113593682B (zh) * 2021-07-15 2023-12-01 丹源医学科技(杭州)有限公司 一种携带产品信息的设备管理系统
CN114897112B (zh) * 2022-04-18 2023-07-18 上海美的茵信息技术有限公司 基于二维码的诊断数据传递方法、计算机设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320436A (zh) * 2007-05-29 2008-12-10 电装波动株式会社 产生二维编码的方法和读取二维编码的读取器
CN103415007A (zh) * 2013-07-09 2013-11-27 南京邮电大学 一种基于信息隐藏的手机二维码安全使用方法
JP2014029659A (ja) * 2012-07-03 2014-02-13 Denso Wave Inc 不正検知システム
CN103605950A (zh) * 2013-11-25 2014-02-26 广西大学 一种可信二维码中签名的隐藏方法及系统
US20140344162A1 (en) * 2013-04-15 2014-11-20 Banque Accord Method and system for enhancing the security of electronic transactions
CN105024824A (zh) * 2014-11-05 2015-11-04 祝国龙 基于非对称加密算法的可信标签的生成与验证方法及系统
JP2016187146A (ja) * 2015-03-27 2016-10-27 株式会社東芝 発券機、電子署名生成器、料金計算機及び判定器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321986B1 (en) 1993-11-05 2001-11-27 Intermec Ip Corporation Robust machine-readable symbology and method and apparatus for printing and reading same
US6267296B1 (en) 1998-05-12 2001-07-31 Denso Corporation Two-dimensional code and method of optically reading the same
US8459567B2 (en) 2006-08-17 2013-06-11 Direct Measurements, Inc. Non-linear strain gage incorporating a nested binary code symbol
JP5023949B2 (ja) 2007-10-10 2012-09-12 株式会社デンソーウェーブ 二次元コードおよびその読取装置
EP2218055B1 (en) 2007-11-14 2014-07-16 Varcode Ltd. A system and method for quality management utilizing barcode indicators
KR100999220B1 (ko) 2007-12-04 2010-12-07 에이.티 코뮤니케이션즈 가부시끼가이샤 2차원 코드 표시 시스템, 2차원 코드 표시 방법, 및 프로그램
KR101169554B1 (ko) 2009-02-27 2012-07-27 에이.티 코뮤니케이션즈 가부시끼가이샤 2차원 코드 표시장치, 2차원 코드 표시방법 및 프로그램
JP5737116B2 (ja) 2011-10-03 2015-06-17 株式会社デンソーウェーブ 情報提供システム
KR101801217B1 (ko) 2012-11-13 2017-11-24 교도 인사쯔 가부시키가이샤 이차원 코드
JP6486016B2 (ja) 2014-05-16 2019-03-20 株式会社デンソーウェーブ 情報コード生成方法、情報コード、及び情報コード利用システム
US10509932B2 (en) * 2016-03-07 2019-12-17 ShoCard, Inc. Large data transfer using visual codes with feedback confirmation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320436A (zh) * 2007-05-29 2008-12-10 电装波动株式会社 产生二维编码的方法和读取二维编码的读取器
JP2014029659A (ja) * 2012-07-03 2014-02-13 Denso Wave Inc 不正検知システム
US20140344162A1 (en) * 2013-04-15 2014-11-20 Banque Accord Method and system for enhancing the security of electronic transactions
CN103415007A (zh) * 2013-07-09 2013-11-27 南京邮电大学 一种基于信息隐藏的手机二维码安全使用方法
CN103605950A (zh) * 2013-11-25 2014-02-26 广西大学 一种可信二维码中签名的隐藏方法及系统
CN105024824A (zh) * 2014-11-05 2015-11-04 祝国龙 基于非对称加密算法的可信标签的生成与验证方法及系统
JP2016187146A (ja) * 2015-03-27 2016-10-27 株式会社東芝 発券機、電子署名生成器、料金計算機及び判定器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
盛苏英等: "混沌数码防伪技术研究与应用", 《微电子学与计算机》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113657133A (zh) * 2021-08-24 2021-11-16 凌云光技术股份有限公司 一种二维码提取信息的纠正方法及装置
CN113657133B (zh) * 2021-08-24 2023-12-12 凌云光技术股份有限公司 一种二维码提取信息的纠正方法及装置
CN115001676A (zh) * 2022-06-02 2022-09-02 深圳市爱克信智能股份有限公司 一种二维码加密方法、解密方法、系统、终端及存储介质
CN115001676B (zh) * 2022-06-02 2022-12-02 深圳市爱克信智能股份有限公司 一种二维码加密方法、解密方法、系统、终端及存储介质

Also Published As

Publication number Publication date
US10679023B2 (en) 2020-06-09
US20190266372A1 (en) 2019-08-29
JP2019148930A (ja) 2019-09-05

Similar Documents

Publication Publication Date Title
CN110197244A (zh) 二维码、二维码输出系统和方法、二维码读取系统和方法
KR100670005B1 (ko) 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
KR101476732B1 (ko) 정품인증라벨, 이를 이용하는 정품인증단말, 정품인증라벨 출력 장치, 정품인증 시스템 및 방법
US10803900B2 (en) Method and apparatus for information carrier authentication
KR101958458B1 (ko) 디스플레이 기반의 동적 2d 코드 인증 방법, 이에 적합한 동적 2d 코드 인증 시스템, 이에 적합한 사용자 단말기 및 인증 서버
US6968060B1 (en) Method for verifying the use of public keys generated by an on-board system
CN104751337A (zh) 产品防伪方法、装置和系统
EP1846830B1 (en) Access keys
CN106302379A (zh) 车载电器的认证方法、系统及其装置
CN111919215A (zh) 包装的产品的认证
US9563830B2 (en) Incremental information object with an embedded information region
CN109635610A (zh) Rfid标签数据的读写系统及方法
US8079078B2 (en) Encryption apparatus, program for use therewith, and method for use therewith
US9003197B2 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
CN111860727A (zh) 二维码生成方法、验证方法、设备及计算机可读存储介质
JP4960023B2 (ja) 画像読取装置、認証方法、評価システム、評価方法およびプログラム
CN111125456A (zh) 一种虚位密码比对方法、系统及智能锁
CN106572098A (zh) 二维码形式的虚拟钥匙方法及相应的装置、用户终端
CN110197243A (zh) 二维码、二维码输出系统和方法、二维码读取系统和方法
US20080205654A1 (en) Method and Security System for the Secure and Unequivocal Encoding of a Security Module
JP2016167115A (ja) 情報コード読取システム
JP2006511114A (ja) 視覚的暗号システムにおける鍵同期
US20130311770A1 (en) Tracing device and method
JP2004280282A (ja) 検針システム
CN111178915A (zh) 一种动态二维码生成装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190903

WD01 Invention patent application deemed withdrawn after publication