CN101320436A - 产生二维编码的方法和读取二维编码的读取器 - Google Patents

产生二维编码的方法和读取二维编码的读取器 Download PDF

Info

Publication number
CN101320436A
CN101320436A CNA2008101446476A CN200810144647A CN101320436A CN 101320436 A CN101320436 A CN 101320436A CN A2008101446476 A CNA2008101446476 A CN A2008101446476A CN 200810144647 A CN200810144647 A CN 200810144647A CN 101320436 A CN101320436 A CN 101320436A
Authority
CN
China
Prior art keywords
coding
digital coding
type
data
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.)
Granted
Application number
CNA2008101446476A
Other languages
English (en)
Other versions
CN101320436B (zh
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.)
ELECTRIC APPARATUS WAVE Co Ltd
Denso Wave Inc
Original Assignee
ELECTRIC APPARATUS WAVE 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
Priority claimed from JP2007142240A external-priority patent/JP4924206B2/ja
Application filed by ELECTRIC APPARATUS WAVE Co Ltd filed Critical ELECTRIC APPARATUS WAVE Co Ltd
Publication of CN101320436A publication Critical patent/CN101320436A/zh
Application granted granted Critical
Publication of CN101320436B publication Critical patent/CN101320436B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

一种用于产生二维编码的方法,所述二维编码具有编码区域,在编码区域中映射了被编码为码字的数据编码。在编码区域中映射了第一类型的数据编码。该第一类型的数据编码被编码为码字并表示要公开的数据。向由第一类型的数据编码所组成的码串的末端,添加末端标识码,所述末端标识码表示所述末端。在编码区域中的所述末端标识码之后,映射第二类型的数据编码,第二类型的数据编码被编码为所述码字并表示要保密的数据。当编码区域中码字的总数量小于编码区域的容量时,在第二类型的数据编码之后映射表示没有数据的填充码,以填充编码区域。

Description

产生二维编码的方法和读取二维编码的读取器
技术领域
本发明涉及一种产生二维编码的方法,该二维编码包含需要隐藏或保密的数据(下文称为“秘密数据”或“要保持秘密的数据”),以及一种读取二维编码的读取器。
背景技术
产生并读取包含秘密数据的二维编码的技术是已知的。例如,日本专利公开(特开平)No.2004-147006公开了一种名为“信息传送方法和移动单元”的发明。在该现有技术中,传送方的移动单元使用通过密钥输入设备所输入的加密密钥来加密传送数据,将该加密数据转换为用作二维编码的QR(快速响应)编码,并在显示器上显示该QR编码。
另一方面,接收方移动单元通过相机读取例如在传送方移动单元的显示器上显示的QR编码的图像,并确定该QR编码是否被加密。如果是,则要求加密密钥。然后,当使用所输入的加密密钥解密该传送数据以在显示器上显示解密数据时,对QR编码进行逆变换。
然而,根据日本专利公开(特开平)NO.2004-147006中公开的“信息传送方法和移动单元”,当加密数据已被逆变换为QR编码时,在诸如移动单元的显示器上所显示的加密数据本身通常作为字符信息而言是没有意义的,或相反的,该信息可能对应于影响屏幕显示控制的控制码。
如果显示器上所显示的信息没有意义,则移动单元的用户例如会发生猜疑。这将使得用户可能不经意地认为该信息是加密的,并试图解密该信息,而引起安全问题。
此外,如果该信息对应于控制码,则可能导致屏幕显示失真,并可能导致其他系统问题。
发明内容
本发明是基于上述问题完成的,并且其目标在于提供一种用于产生二维编码的方法,该方法不允许用户使用通用阅读器读取所述编码以认知到加密数据的存在。本发明的另一目标在于提供一种用于读取二维编码的阅读器,其能够对位于映射有码字的编码区域的空闲部分中的数据编码进行解码。
为了实现上面的方法,作为一个方面,本发明提供了一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述方法包括如下步骤:第一,在所述编码区域中映射第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并表示要公开的数据;向由所述第一类型的数据编码所组成的码串的末端,添加末端标识码,所述末端标识码表示所述末端;第二,在所述编码区域中的所述末端标识码之后,映射第二类型的数据编码,所述第二类型的数据编码被编码为所述码字并表示要保密的数据,以及第三,当所述编码区域中码字的总数量小于所述编码区域的容量时,在所述第二类型的数据编码之后映射表示没有数据的填充码,以填充所述编码区域。
因此,被编码为表示要保密的数据的码字的秘密数据编码位于末端ID(标识)编码之后,取代部分或所有的填充编码。一般而言,二维编码阅读器被配置为覆盖了以下算法规范:其中,通过读取位于编码区域中的从编码区域的头部开始到表示码串末端的末端ID码为止的数据编码,来对二维编码进行解码。因此,例如,不会读取经常位于末端ID码之后的填充码。因此,在通用读取器中不会读取位于末端ID码之后、取代部分或所有的填充码的数据编码,即使是该数据编码是可读的码字也是如此。因此,通过将要保密的数据编码(秘密数据编码)放置在末端ID码之后,可以避免读取该秘密数据编码,虽然位于末端ID码之前的数据编码仍然会被读取。因此,使用通用读取器读取包含该秘密数据编码的二维编码不会使读取器的用户注意到由秘密数据编码保密的数据的存在。
本方法优选包括步骤:确定是否应该在所述编码区域中映射所述第二类型数据编码。在该情况下,同样优选的是,该方法包括步骤:在所述末端标识码与所述第二类型的数据编码之间映射秘密标识码,以表示所述秘密标识码后面的数据编码是所述第二类型的数据编码。例如,所述第二映射步骤包括步骤:对所述第二类型的数据编码进行加密。
例如,所述第二类型的数据编码包括指定用以对所述加密的第二类型的数据编码进行解密的密钥的信息。作为替换方案,所述第二类型的数据编码包括用以对所述加密的第二类型的数据编码进行解密的密钥。
优选的,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括指定用以对每个加密的数据编码进行解密的密钥的信息。所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括用以对每个加密的数据编码进行解密的密钥。
例如,同样优选的是,当所述要公开的数据和所述要保密的数据在被编码为所述码字之前在位置上进行混合以便在数据记录中交替出现时,所述第二类型的数据编码包括表示所述数据记录中的位置关系的信息。
为了实现上面的读取器,作为另一方面,本发明提供一种用于读取二维编码的装置,所述二维编码具有编码区域,在所述编码区域中映射了被编码为表示数据的码字的数据编码,其中,将末端标识码添加到由所述映射的数据编码所组成的码串的末端,所述末端标识码表示所述码串的末端,并且当所述编码区域中码字的总数量小于所述编码区域的容量时,在所述码串之后映射表示没有数据的填充码,以填充所述编码区域,所述装置包括:第一解码单元,用于对第一类型的数据编码进行解码,所述第一类型的数据编码是在所述末端标识码之前映射的数据编码;数据编码确定单元,用于确定在所述末端标识码之后是否映射了所述第二类型的数据编码;以及第二解码单元,用于当所述数据编码确定单元确定映射了所述第二类型的数据编码时,对所述第二类型的数据编码进行解码。
在该情况下,所述数据编码确定单元确定在末端ID码之后是否存在所述第二数据编码。如果确定在末端ID码之后存在所述第二数据编码,则第一解码单元对所述第一数据编码进行解码,而第二解码单元对所述第二数据编码进行解码。因此,在所述末端ID码之后的、原本仅应有填充码的编码区域(编码区域的空闲区域)中存在所述第二数据编码的情况下,可以对所述第二数据编码进行解码。这样,可以对应该放置码字的编码区域的空闲区域中的数据编码进行解码。
另一方面,本发明提供了一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述方法包括如下步骤:第一,在所述编码区域中映射第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并表示要公开的数据;当所述编码区域中码字的总数量小于所述编码区域的容量时,i)添加末端标识码到由所述第一类型的数据编码所组成的码串的末端,所述末端标识码表示所述末端,或者ii)添加末端标识信息到所述码串的预定位置,所述末端标识信息指定所述码串的末端位置;以及第二,i)在所述编码区域的所述末端标识码之后映射第二类型的数据编码,或者ii)在由所述末端标识信息所指定的所述码串的末端位置之后映射所述第二类型的数据编码,其中,所述第二类型的数据编码被编码为码字并表示要保密的数据。
再另一方面,本发明提供一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述方法包括如下步骤:第一,在所述编码区域中映射第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并表示要公开的数据;当所述编码区域中码字的总数量小于所述编码区域的容量时,i)添加末端标识码到由所述第一类型的数据编码所组成的码串的末端,所述末端标识码表示所述末端,或者ii)添加末端标识信息到所述码串的预定位置,所述末端标识信息指定所述码串的末端位置;以及第二,i)在所述编码区域的所述末端标识码之后映射第二类型的数据编码,或者ii)在由所述末端标识信息所指定的所述码串的末端位置之后映射所述第二类型的数据编码,其中,所述第二类型的数据编码被编码为所述码字,并受到了预定的处理。
另一方面,本发明提供一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述数据编码包括要公开的第一类型的数据编码和要保密的所述第二类型的数据编码,所述方法包括以下步骤:在所述编码区域的开始位置放置末端标识码,所述末端标识码表示由要公开的第一类型的数据编码所组成的码串的末端;在所述编码区域中的所述末端标识码之后映射所述第二类型的数据编码;以及当所述编码区域中码字的总数量小于所述编码区域的容量时,在所述第二类型的数据编码之后映射填充码以填充所述编码区域,所述填充码是除了数据之外的填充物。
附图说明
在附图中:
图1A是根据本发明的第一实施例,示出了QR编码打印机和连接到该打印机的计算机的说明图;
图1B是根据第一实施例,示出了QR编码打印机的硬件配置的示例的框图;
图2是根据第一实施例,示出了产生由QR编码打印机所执行的编码产生处理流程的流程图;
图3A至3F是示出了在图2所示的编码产生处理中受到信息处理的数据和编码的格式示例的说明图;
图4是示出了类型1的QR编码的配置示例的说明图;
图5是根据本发明的第二实施例,示出了QR编码读取器的硬件配置的示例的框图;
图6是根据第二实施例,示出了由QR编码读取器的控制电路所执行的主解码处理流程的流程图;
图7是示出了图6的二级解码处理流程的流程图;
图8是根据本发明的第三实施例,示出了由QR编码打印机所执行的编码产生处理流程的流程图;
图9A至9F是示出了在图8所示的编码产生处理中受到信息处理的数据和编码的格式示例的说明图;
图10是根据本发明的第四实施例,示出了由QR编码打印机的控制电路所执行的主解码处理流程的流程图;
图11是示出了图10的二级解码处理流程的流程图;
图12是根据本发明的第五实施例,示出了由QR编码打印机所执行的编码产生处理流程的流程图;
图13是示出了图12的特定处理的流程图;
图14A至14E是示出了在图13的特定处理中受到信息处理的编码示例的说明图;
图15是根据本发明的第六实施例,示出了由QR编码读取器的控制电路所执行的主解码处理的流程图;
图16是示出了图15的二级解码处理流程的流程图;
图17是示出了图16的提取处理的流程的流程图;
图18是根据本发明的第七实施例,由QR编码读取器的控制电路所执行的解码处理流程的流程图;
图19是根据本发明的第七实施例,由QR编码读取器的控制电路所执行的读取标记设置处理流程的流程图;
图20是根据本发明的第八实施例,由QR编码打印机执行的编码产生处理流程的流程图;
图21A至21E是在图20所示的编码产生处理中受到信息处理的数据和编码的格式示例的说明图;以及
图22是根据本发明的第九实施例,示出了二级解码处理流程的流程图。
具体实施方式
结合附图,下文将描述产生二维编码的方法和读取该二维编码的读取器的某些实施例。在如下的每一个实施例中,QR(快速响应)编码表示为该二维编码的示例。然而,应该理解,与本发明相关的二维编码并不限于这种QR编码,而是类似于QR编码,本发明可以应用于例如数据矩阵、Maxicode、CP编码、PDF 417和RSS复合(RSS composite)。
[第一实施例]
参考图1A和1B,现在将描述根据本发明的第一实施例的QR编码打印机10的配置。
图1A是表示根据本发明的第一实施例的QR编码打印机10和个人计算机(下文称为“计算机”)1的说明图。图1B是表示QR编码打印机10的硬件配置的示例的框图。
如图1A所示,QR编码打印机10通过电缆5连接到计算机1。因此,QR编码打印机10具有以下功能:例如,根据从计算机1输入的诸如字母数字字符、日语字符(日本汉字)和符号等的字符数据(下文将这些数据统一称为“打印数据”)产生QR编码,并在标签P上打印所产生的QR编码。这里的“QR编码”是基于日本工业标准(JIS)的二维编码符号-QR编码-基本规范(JIS×0510:2004)。
计算机1包括计算机单元2和显示器3。计算机单元2是包括未示出的MPU、主存储器(主要存储单元)、硬盘(辅助存储单元)、输入/输出接口、通信接口、键盘和定点设备的信息处理器。显示器3是连接到计算机单元2的信息显示设备,用于在屏幕上显示从计算机单元2输出的信息。
QR编码打印机10的设备驱动位于(内嵌于)计算机单元2中。这使得计算机单元2选择性地将包含字符的打印数据输出到QR编码打印机10,例如,计算机1的用户希望以QR编码的格式在标签P上打印的字符。
如图1B所示,QR编码打印机10主要包括MPU11、存储器12、接口13、滚筒控制器14、头控制器15、滚筒17和头18。这些组件安装在印刷电路板(未示出)上或位于外壳(未示出)内。
MPU 11是能整体控制QR编码打印机10的微型计算机。MPU 11能和通过存储总线所连接的存储器12一起构成信息处理器,并具有信息处理功能。MPU 11不仅连接到存储器12,而且还连接到接口13,滚筒控制器14和头控制器15。稍后描述的编码产生处理由MPU 11和存储器12执行。
存储器12是对应于例如RAM(DRAM、SRAM等)和ROM(EPROM、EEPROM等)的半导体存储器件。存储器12中的RAM被配置为能确保某些区域,这些区域包括用于存储从计算机1传送的字符数据的缓冲区,或当执行诸如算术运算和逻辑运算之类的处理时由MPU 11利用的操作区。程序预先设置在ROM中。所述程序包括能执行例如编码产生处理(稍后描述)的给定程序和能控制诸如滚筒控制器14和头控制器15之类的各种硬件的系统程序。
接口13是能接收例如从计算机1的计算单元2传送的打印数据的输入接口。接口13例如通过串行总线连接到MPU 11。通过接口13输入到MPU11的打印数据受到信息处理,并且由所述编码产生处理对其进行编码(稍后描述)。
滚筒控制器14用作控制单元,其能够控制滚筒17的驱动机构(未示出)并通过例如串行总线连接到MPU 11。因此,响应于从MPU11接收的信号,对滚筒17进行控制,例如对于它的开始和停止或旋转方向进行控制。
头控制器15是热头,其例如能在由热敏纸制成的标签上打印任何图案,并通过例如串行总线连接到MPU 11。在本实施例中,头控制器15能在热敏标签上打印在编码产生处理(稍后描述)中所产生的QR编码。具体而言,头控制器15允许与热敏标签的传送时序同步地在该标签上打印QR编码,其中,该时序由滚筒控制器14产生。QR编码例如包括位置检测图案、时序图案或数据编码。
下文中,给出的描述将举例说明用作头控制器15的热头。然而,诸如喷墨打印头或点打印头之类的任何头都能用作头控制器15,只要该头能打印QR编码即可。同样,能使用诸如激光打印机或LED打印机之类的任何打印机制。
因此,根据如上述配置的QR编码打印机10,从计算机1输出并输入到QR编码打印机10中的打印数据通过接口13临时存储在存储器12的缓冲区中,然后受到下述的编码产生处理。
参考图2至4,下文将描述所述编码产生处理。图2是示出了编码产生处理流程的流程图。图3A至3F示出了在图2所示的编码产生处理中受到信息处理的数据和编码的格式示例。具体而言,图3A是打印数据的数据记录的示例,图3B是经过重新排序的数据记录的示例,图3C是添加了多个编码之后的示例,图3D是图3C所示的秘密编码的配置的示例,图3E是图3C所示的秘密编码的配置的另一示例,以及图3F是图3C所示的秘密编码的配置的再另一示例。图4表示类型1的QR编码的配置的示例。
如图2所示,所述编码产生处理由MPU 11和存储器12启动,通过打开QR编码打印机10的电源来激活该MPU 11和存储器12。首先,在步骤S101执行初始化。在该处理中,清空存储器12中用于存储数据的操作区和缓冲区,或清空存储器12中的预定标记、计数器等。
在步骤S103,确定是否已经接收到打印数据。重复该步骤,直到接收到打印数据为止(步骤S103的“否”)。当确定已经接收到打印数据(步骤S103的“是”)时,控制进行到随后的步骤S105,在该步骤中,清空计数器的计数值。在步骤S105中清空计数值的计时器在随后的步骤S107中检测预定时间的流逝。
在步骤S107,上述计时器确定所述预定时间是否期满。具体而言,在随后的步骤S111,需要确定例如与加密相关的数据是否包含在从计算机1传送的打印数据中。在这点上,计时器在步骤S111中确定例如一秒的预定时间是否期满。如果与加密相关的数据在该时间期满之前没有从计算机1传送,则在该预定时间期满时(步骤S107的“是”),控制进行到步骤S109。
如果该预定时间还没有期满(步骤S107的“否”),则在随后的步骤S111中确定是否已接收到例如与加密相关的数据,该数据包括:用于表示要保密的数据(下文称为“秘密数据”)在数据记录中的位置关系的秘密数据位置信息;以及用于加密的加密密钥。当确定已经接收到这些数据(步骤S111的“是”)时,控制进行到随后的步骤S113。当确定没有接收到这些数据(步骤S111的“否”)时,控制返回到上述步骤S107,从而可以再次确定该预定时间是否期满。
然后,当在步骤S107中确定该预定时间已期满(步骤S107的“是”)时,在步骤S109中将预定标记设置为“0”。该标记指示打印数据中是否包括秘密数据。如果该标记被设置为“0”,则表示打印数据中不包括秘密数据。如果该标记被设置为“1”,则表示打印数据中包括秘密数据。因此,如果步骤S111中确定已接收到与加密等相关的数据(步骤S111的“是”),则该标记在随后的步骤S113中被设置为“1”。
在步骤S113中将该预定标记设置为“1”之后,在随后的步骤S115中对公开数据和秘密数据进行重新排序。具体而言,打印数据可以包括向第三方公开的数据(公开数据)和向第三方保密的数据(秘密数据),并且这些数据会无序地出现在数据记录中。在该情况下,根据步骤S111中所接收到的“表示秘密数据在数据记录中的位置关系的位置信息”对该数据的顺序进行重新排序,以便将该数据分组为公开数据组和秘密数据组。
例如,如图3A所示,让我们假设从计算机1传送的打印数据记录按顺序包括:公开数据A、秘密数据α,公开数据B和秘密数据β。在该情况下,在步骤S115中对这些数据进行重新排序,以便按图3B所示的公开数据A、公开数据B、秘密数据α和秘密数据β的顺序进行排序。因此,公开数据和秘密数据被分组以便于处理,所述处理例如为在稍后的步骤S121中所执行的添加末端ID(标识)码的处理,或在步骤S125中所执行的添加秘密ID码的处理。
在随后的步骤S117中,按照JIS基本规范(JIS×0510:2004)对包括公开数据和秘密数据的数据进行编码。该处理产生了:已编码的公开数据编码,作为表示要公开的数据的码字(即,本发明中的第一类型的数据编码);以及已编码的秘密数据编码,作为表示要保密的数据的码字(即,本发明中的第二类型的数据编码)。
在随后的步骤S119中,使用例如在JIS基本规范(JIS×0510:2004)中所述的用于产生纠错码的算法来为每个公开数据产生纠错码,然后对所产生的纠错码进行编码。以类似方式为每个秘密数据产生纠错码。
在随后的步骤S121中,将末端ID码添加到公开数据编码后面。末端ID码例如具有“0000”的4-比特模式,并紧邻公开数据编码B之后,该公开数据编码B在图3C所示的公开数据编码A之后。
在随后的步骤S123中,确定所述预定标记是否被设置为“1”,即,打印数据是否包括秘密数据。如果包含秘密数据(如果标记被设置为“1”,步骤S123为“是”),则控制进行到步骤S125。如果不包含秘密数据(如果标记被设置为“0”,步骤S123为“否”),则跳过秘密处理的序列(步骤S125至S133),并且控制进行到步骤S135。
步骤S125至S133是在打印数据包含秘密数据的情况下所执行的秘密处理序列。在该情形中,首先,在步骤S125中,将秘密ID码添加到紧邻末端ID码之后。
在步骤S125中,通过将秘密ID码置于紧邻末端ID码之后,清楚地指出位于末端ID码之后的数据编码是“被编码为表示要保密的数据的码字的数据编码”。因此,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,可以识别出QR编码Q中包含有秘密数据编码。因此,可以避免将没有读取的数据和错乱码数据错误地识别为秘密数据而被读取。此外,可以避免由于基于错误识别的读取所造成的误操作的发生。
在随后的步骤S127中,计算秘密数据编码的长度。对所计算的数据长度进行编码并且将其附加地放置在紧邻秘密ID码之后,由此可以识别秘密数据编码所在的区域和范围。因此,例如在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,可以识别秘密数据编码或经加密的数据编码的范围。
例如,在图3C所示的示例中,计算秘密数据编码α和β的长度之和作为所述数据长度,然后将该长度添加到紧邻秘密ID码之后。
在随后的步骤S129中,确定是否存在加密密钥,以确定是否需要对秘密数据编码进行加密。具体而言,如果在步骤S111中已从计算机1接收到加密密钥,则确定存在加密密钥(步骤S129为“是”)并且控制进行到步骤S131以执行加密处理。如果在步骤S111中没有从计算机1接收到加密密钥,则确定不存在加密密钥(步骤S129为“否“)并且控制进行到步骤S133,跳过步骤S131的加密处理。
即使当在步骤S111中没有接收到任何加密密钥时,如果计算机1提前在信息存储介质(诸如存储器12或硬盘)中保存了加密密钥,则也确定存在加密密钥(步骤S129为“是”)。在该情形下,同样,控制进行到执行加密处理的步骤S131。
在步骤S131中,对秘密数据编码进行加密。在该处理中,通过使用例如公知的综合可视化密码技术(综合可视化秘密发布处理),对秘密数据编码进行加密。以该方式,与没有添加加密的明文数据相比,能够提高安全性。
在图3D所示的示例中,对秘密数据编码α进行加密,以获取“加密数据”,并同时产生“开始位置”、“文本长度”、和“解码密钥检测数据”。最初所在的“开始位置”作为已加密的秘密数据的位置信息给出。当对打印数据的开头赋予地址零时,可以用一个表示性的地址值来对应于该“开始位置”。随后的“文本长度”是已加密的秘密数据的字符数。有时会发生的是:数据在被编码为码字之前,在数据记录的位置关系中无序地放置。即使是在该情况下,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,可以根据上述位置信息将已解码的数据放置在数据记录中,以便能够具有在编码之前的位置关系。
最后添加的“解码密钥检测数据”是密钥标识信息,使用该信息可以标识用于对密码进行解密的解码密钥。当密钥加密技术(也称为“秘密密钥加密技术”)在加密密钥和解密密钥之间是公共的时,该解码密钥检测数据也可以标识加密密钥。因此,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,可以容易地标识出秘密数据编码的解码密钥(能够实现解码的密钥),或者确定所考虑的密钥是否是解码密钥。
按照与秘密数据编码α类似的方式构成秘密数据编码β。可以将与用于对秘密数据α进行解码的解码密钥相同的信息添加在其中,以作为“解码密钥检测数据”。作为替换方案,当使用与秘密数据编码α不同的加密密钥对秘密数据编码β的秘密数据进行加密时,可以添加用于标识解码密钥的不同的“解码密钥检测数据”。因此,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,可以容易地为每一个秘密数据编码识别出用于实现解码的密钥,或确定所考虑的密钥是否是解码密钥。
在步骤S133中,将秘密数据编码附加地放置在紧邻数据长度之后。在图3D所示的示例中,秘密数据编码α和β附加地位于数据长度之后,因此,在由通用二维编码读取器执行的解码处理中,不会读取例如位于末端ID码之后的填充码。因此,通用二维编码读取器不能读取位于末端ID码之后的秘密数据编码。因此,即使当通用读取器读取包含这种秘密数据编码的二维编码时,也不能识别秘密数据编码的存在。因此,读取器的用户就不会注意到存在秘密数据。
在随后的步骤S135中,参考例如ISO 18004所述的处理算法和JIS基本规范(JIS×0510:2004),在秘密数据编码之后附加地放置填充码。该算法包括“当编码区域中码字总数量小于编码区域的容量时,将表示没有数据的填充码映射到要保密的数据(第二类型的数据编码)之后,以填充该编码区域”的处理。在步骤S137中,进一步添加纠错码。因此,可以产生图3C所示的格式的数据编码。
在步骤S139中,根据步骤S137中所产生的数据编码,产生各个单元,然后将其置于图4所示的数据框中。具体而言,图4所示的类型1的QR编码被配置为具有正方形,该正方形的一个边对应21个单元(模块)。因此,除了在三个角处设置的位置检测图案之外的编码区域,形成了信息区域(图4中的阴影区域),并且采用时序图案来设置26个数据块(A0-A25),每个数据块由4行2列排列的8个单元组成。
例如,在图3C所示的示例中,公开数据编码A放置在块A0至A2中,公开数据编码B放置在块A3至A6中,以及末端ID码放置在块A7中。然后,在末端ID码之后,在块A8至A17中放置秘密数据编码、数据长度、秘密ID码等,块A8至A17对应于通常放置填充码的位置。
具体而言,秘密ID码放置在块A8中,数据长度放置在接下来的块A9中,以及秘密数据编码α放置在接下来的块A10至A13中,以及秘密数据编码β放置在接下来的块A14至A17中。然后,类似于常规QR编码,在剩余的块A20至A25中放置纠错码。填充码放置在上述块之间的空闲部分中,即块A18和A19中。设置有插入的时序图案的块A15和A18被分别划分为块A15和A15′以及块A18和A18′。
如图3E所示,在步骤S131中添加解码密钥本身,而不是添加“解码密钥检测数据”。因此,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,即使当例如QR读取器不具有秘密数据编码α的解码密钥时,也能对秘密数据编码α进行解码以获取原始明文。
类似的,对于秘密数据编码β,添加解码密钥本身,而不是添加“解码密钥检测数据”。添加的解码密钥可以与用于对秘密数据编码α进行解码的解码密钥相同。作为替代方案,当使用与秘密数据编码α的加密密钥不同的加密密钥对秘密数据编码β的秘密数据进行加密时,添加对应于所述不同加密密钥的不同解密密钥。因此,例如在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,即使当例如QR读取器不具有秘密数据编码β的解码密钥时,也能对秘密数据编码β进行解码以获取原始明文。
有时,在步骤S123中可能会确定不存在秘密数据(该标记被设置为“0”,步骤S123为“否”)。在该情况下,如图3F所示,能在步骤S123和S135之间提供附加步骤。在该附加步骤中,可以在未被加密的明文数据之前,添加已在步骤S131中添加的“开始位置”和“文本长度”。同样,有时发生的是,数据在被编码为码字之前,在数据记录的位置关系中无序地放置。即使是在该情形中,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,能根据所述位置信息来放置已解码数据以便具有编码之前的位置关系。
如上所述,在根据第一实施例的QR编码打印机10所产生的QR编码Q中,在步骤S133,将秘密数据编码附加地放置在末端ID码之后,取代部分或所有的填充码。因为在通用读取器中不能读取位于末端ID码之后的秘密数据编码,所以即使当通用读取器读取包含该秘密数据编码的二维编码时,也由于秘密数据编码而不能识别要保密的数据的存在。因此,可以确保该通用读取器的用户不会注意到该秘密数据的存在。
类似的,对于秘密数据编码β,添加解码密钥本身,而不是添加“解码密钥检测数据”。添加的解码密钥可以与用于对秘密数据编码α进行解码的解码密钥相同。作为替代方案,当使用与秘密数据编码α的加密密钥不同的加密密钥对秘密数据编码β的秘密数据进行加密时,添加对应于所述不同加密密钥的不同解密密钥。因此,例如在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,即使当例如QR读取器不具有秘密数据编码β的解码密钥时,也能对秘密数据编码β进行解码以获取原始明文。
描述的第一实施例举例说明了由QR编码打印机10在标签P上打印QR编码Q的情形。然而本发明并不限于此,而是可以涉及能够可视化地表现QR编码Q的任何组件。
例如,可以如此配置:由计算机单元2执行图2所示的编码产生处理,以在显示器3上显示QR编码Q。在该情况下,可以构成如下技术构思:
即,技术构思:“一种用于产生二维编码的程序,所述程序使计算机用作二维编码产生设备,其中,当被编码为表示公开数据的码字的公开数据编码的总数量小于与放置所述码字的编码区域中所能容纳的容量相对应的值时,将表示由位于所述编码区域中的公开数据编码所组成的码串的末端的末端ID码放置在所述码串的末端,并且将表示没有数据的填充码放置在所述编码区域的空闲部分中,其特征在于:将被编码为表示要保密的数据的码字的秘密数据编码放置在所述末端ID码之后,取代部分或所有的所述填充码”。
因此,使用所述的用于产生二维编码的程序,用作二维编码产生设备的计算机可以提供类似于上述QR编码打印机10的MPU 11等的优势。
描述的第一实施例举例说明了将计算机1连接到QR编码打印机10以及从计算机1传送打印数据的配置。然而,可以将例如具有该功能的任何数码相机、移动电话或手持计算机以及便携终端连接到QR编码打印机10以获取相同的优势,只要这些设备是能输出字符数据的信息处理器即可,该字符数据诸如为字母数字字符、日语字符(日本汉字)和符号。
[第二实施例]
下文将描述本发明的第二实施例。应该了解,在第二实施例和随后的实施例中,为了省略解释,相同或类似组件、部分或处理被给予与第一实施例中相同的附图标记。
根据第二实施例,QR编码读取器20具有能够对第一实施例所述的QR编码打印机10打印的QR编码Q进行解码的配置。因为已经参考图3A至3F和图4描述了由QR编码读取器20进行解码的QR编码的配置,所以在此省略说明。
参考图5,描述根据本发明的第二实施例的QR编码读取器20的配置。图5是根据第二实施例示出了QR编码读取器的硬件配置的示例的框图。
如图5所示,QR编码读取器20包括:具有照明源21、光接收传感器23和成像透镜27的光学系统;具有存储器35、控制电路40、操作开关42和液晶显示器(LCD)46的微型计算机系统;以及具有电源开关41和电池49的电源系统。这些组件安装在印刷电路板(未示出)上或设置于外壳(未示出)中。关于硬件,以与通用QR编码读取器类似的方式配置QR编码读取器20。
如上所述,光学系统包括照明源21、光接收传感器23和成像透镜27。照明源21用作能发射照明光Lf的照明源。例如,照明源21包括红色LED、在LED发射侧设置的扩散透镜、以及聚焦透镜。在第二实施例中,照明源21设置在侧边以便将光接收传感器23夹在中间,并经配置以通过壳体(未示出)的读取口向标签P发射光Lf。在标签P上打印第一实施例所解释的QR编码Q。
光接收传感器23经配置,以便接收反射光Lr,所述反射光Lr是照射到标签P或QR编码Q的光的反射。例如,一个面传感器可以对应于光接收传感器23。在该面传感器中,诸如C-MOS和CCD之类的光接收元件或固态成像元件是二维排列的。光接收传感器23安装在印刷电路板(未示出)上,以便光接收面23a能接收通过成像透镜27进入的入射光。
成像透镜27用作能收集通过读取口从外部进入的入射光并在传感器23的光接收面23a上成像的成像光学系统。例如,成像透镜包括透镜管和透镜筒中容纳的多个聚焦透镜。
描述该微型计算机系统的配置。该微型计算机系统包括放大电路31、A/D转换电路33、存储器35、地址产生电路36、同步信号产生电路38、控制电路40、操作开关42、LED 43、蜂鸣器44、LCD 46和通信接口48。如名字所表示的,微型计算机系统经配置集中于控制电路40和存储器35,控制电路40和存储器35可用作微型计算机。
使用从放大电路31输入的预定增益对从光学系统的光接收传感器23输出的图像信号进行放大,然后输入到A/D转换电路33中用于从模拟信号转换为数字信号。数字化的图像信号,即图像数据,被输入到存储器35中以便存储在图像数据存储区中。同步信号产生电路38经配置以便能为光接收传感器23和地址产生电路36产生同步信号。地址产生电路36经配置以便能根据从同步信号产生电路38提供的同步信号为存储在存储器35中的图像数据产生存储地址。
存储器35是对应于例如RAM(DRAM、SRAM等)和ROM(EPROM、EEPROM等)的半导体存储器件。在存储器35中,RAM经配置以便除了上述图像数据存储区之外还能提供例如操作区。这些操作区用于各种处理,诸如由控制电路40执行的算术运算和逻辑运算。程序预先设置在ROM中。所述程序包括:例如,能够执行解码处理(稍后描述)的给定程序;以及能够控制各个硬件的系统程序,所述硬件例如为照明源21和光接收传感器23。
控制电路40是能整体控制QR编码读取器20的微型计算机,并包括CPU、系统总线和输入/输出接口。控制电路40与存储器35一起构成信息处理器,并具有处理信息的功能。控制电路40经配置以便能通过所结合的输入/输出接口连接到各种输入/输出设备。例如,在第二实施例中,控制电路40连接到电源开关41、操作开关42、LED 43、蜂鸣器44、LCD 46和通信接口48。
因此,例如,可以监视并控制电源开关41和操作开关42。能够对用作指示器的LED 43和能产生哔哔声和警报声的蜂鸣器44的声音执行开/关控制。而且,能够对LCD 46执行屏幕控制,该LCD 46能显示读出的QR编码Q中的编码内容。同样,能对通信接口48执行例如通信控制,该通信接口48能执行与外部装置的串行通信。连接到通信接口48的外部装置包括主机HST,其对应于QR编码读取器20的主系统。
电源系统包括电源开关41和电池49。电池49为各个设备和电路提供驱动电压。响应于在控制电路40的控制下的电源开关41的开/关控制,控制来自电池49的驱动电压提供。电池49是能产生预定DC电压的二次电池。电池49对应于例如锂离子电池。QR编码读取器20经配置以便从通过通信接口48连接的外部装置而不是从电池49提供电源,该外部装置例如为主机HST。在该情况下,可以省略电池49。
在以该形式配置的QR编码读取器20中,当打开电源开关41时,例如能正常完成预定自我诊断处理等,以使读取器20进入能读取QR编码Q的状态中。然后,接收来自操作开关42(例如,触发开关)的输入,指示发出照明光Lf。因此,当用户打开触发开关时,控制电路40向照明源21输出发射信号,其被称为同步信号。已接收到所述发射信号的照明源21使LED为照明光Lf的照射而发光。
照射到QR编码Q的照射光Lf被反射。然后,反射光Lr通过读取口进入成像透镜27,以便在光接收传感器23的表面23a上形成QR编码Q的图像。因此,QR编码Q的图像曝光传感器23。相应地,然后通过存储器35的图像数据存储区,对经过上述微型计算机系统的图像处理的QR编码Q的图像数据进行解码处理(将稍后描述)。
参考图4、6和7,下文将描述该解码处理。图6是示出了主解码处理的流程的流程图。图7是示出了图6的二级解码处理的流程的流程图。图4是示出了类型1的QR编码的配置示例的解释图。
如图6所示,当打开QR编码读取器20时,主解码处理由被触发的控制电路40和存储器35启动。首先,在步骤S201,执行初始化。在该处理中,清空存储器35中的图像数据的操作区和存储区,或清空预定标记或计数器。这里所述的QR编码读取器20连接到主机HST,从该主机HST获取解码密钥数据作为设置数据。
在步骤S203,清空计时器的计数值。在该步骤S203中清空计数值的计时器在随后的步骤S205中将检测预定时间的流逝。
在步骤S205,上述计时器确定所述预定时间是否期满。具体而言,在随后的步骤S209中,需要确定从主机HST传送的设置数据是否包括解码密钥数据。在这方面,计时器在步骤S205确定例如五秒的预定时间是否期满。如果到该时间期满为止没有从主机HST传送与加密相关的数据,则在该预定时间期满时(步骤S205的“是”),控制进行到步骤S207。
如果该预定时间还没有期满(步骤S205的“否”),则在随后的步骤S209中确定是否已接收到解码密钥。当确定已接收到解码密钥(步骤S209的“是”),控制进行到随后的步骤S211。当确定没有接收到解码密钥(步骤S209的“否”),控制返回到上述步骤S205,以便再次确定该预定时间的期满。
然后,当在步骤205中确定预定时间已期满(步骤S205的“是”)时,则在步骤S207中将预定标记设置为“0”。该标记表示是否要使用解码密钥对QR编码Q的秘密数据编码进行解码。如果该标记被设置为“0”,则表示不使用解码密钥对该编码进行解码。如果该标记被设置为“1”,则表示使用解码密钥对该编码进行解码。因此,如果在步骤S209中确定已接收到解码密钥(步骤S209的“是”),则在随后的步骤S211中将该标记设置为“1”。
在步骤S211将该预定标记设置为“1”之后,在随后的步骤S213中获取图像数据。换而言之,读出在存储器35的图像数据存储区中所存储的图像数据。因此,可以获取例如图4所示的QR编码Q的编码图像。
在随后的步骤S215,检测所述位置检测图案。具体而言,如图4所示,在QR编码Q的三个角上设置了位置检测图案。在随后的步骤S217中,通过检测这些图案,来检测QR编码Q的轮廓。
在步骤S219,计算每个单元的中心坐标,在随后的步骤S221中确定每个单元的黑和白。这能识别图4所示(图4中的阴影区域)的形式信息或数据块。因此,如果出现任何缺陷数据块,则在随后的步骤S223中确定是否能够对这些块进行纠错。
当在步骤S223中确定能够执行纠错(步骤S223“是”)时,执行纠错。然后,控制进行到执行二级解码处理的步骤S300。另一方面,当在步骤S223中确定不能执行纠错(步骤S223“否”)时,控制返回到步骤S213以再次获取该图像数据并执行步骤S215至S221。
图7示出步骤S300的细节。下文参考图7描述二级解码处理。如图7所示,在该二级解码处理中,在步骤S301首先将“0”(零)设置给计数器n。在当前二级解码处理中,计数器n用作指示构成QR编码Q的数据编码顺序的变量。
在步骤S303,获取计数器n所指示的第n个数据编码。在随后的步骤S305,确定在步骤S303所获取的第n个数据编码是否是末端ID码。如果确定该数据编码是末端ID码(步骤S305为“是”),则读出的QR编码不包括任何位于末端ID码之前的常规数据编码。因此,控制进行到步骤S315。
同时,如果不能确定该数据编码是末端ID码(步骤S305为“否”),则表示QR编码在所考虑的第n个数据编码之后仍有常规数据编码。因此,控制进行到步骤S307,在该步骤中,获取后面的数据编码,即,第(n+1)个数据编码,或者说是编码数量(文本长度)i。如参考图3D的第一实施例所述,这基于如下事实:文本长度存储在与第二个数据编码相对应的位置中。在JIS基本规范(JIS×0510:2004)的“8.4数据编码”中描述了该细节。
在步骤S307中获取了文本长度i之后,在随后的步骤S309中获取与该文本长度i相对应的多个数据编码。然后,在步骤S311,对这些数据编码,即公开数据编码(被编码为表示要公开的数据的码字的数据编码)进行解码。
在步骤S311中完成该解码处理之后,控制进行到步骤S313,在该步骤中,将“n+i+1”设置给计数器n,因此计数器n能指示随后的数据编码。然后,控制返回到步骤S303,以获取第n个数据编码。
这样,在步骤S303至S313,获取并解码位于末端ID码之前并且应该一开始就进行解码的常规数据编码(第一数据编码或公开数据编码)。因此,执行这些步骤的控制电路40等可以对应于权利要求中所记载的“第一解码单元”。
在步骤S315,确定上述预定标记是否被设置为“1”,或者说是否要使用解码密钥对QR编码Q的秘密数据编码进行解码。当该标记未被设置为“1”(步骤S315为“否”)时,就不需要使用解码密钥执行解码。因此,当前二级解码处理结束,从而结束图6中的步骤S300。
当该预定标记被设置为“1”(步骤S315为“是”)时,则需要使用解码密钥执行解码,并且控制进行到随后的步骤S317,在该步骤中,将“n+1”设置给计数器n。然后,在步骤S319,获取由计数器n指示的第n个数据编码。
在随后的步骤S321,确定步骤S319中所获取的第n个数据编码是否是秘密ID码。因此,执行步骤S321的控制电路40等对应于权利要求中记载的“数据编码确定单元”和“秘密ID码确定单元”。
当确定该数据编码是秘密ID码(步骤S321为“是”)时,则表示在该秘密ID码之后存在秘密数据编码。然后,控制进行到步骤S323,在该步骤中,获取后面的数据编码,即,第(n+1)个数据编码,或者说是编码数量(文本长度)j。类似于步骤S309,这基于如下事实:文本长度存储在与第二个数据编码相对应的位置中。
当在步骤S321中确定存在秘密ID码时,例如确保向主机HST通知该QR编码Q中存在秘密ID码。因此,主机能理解该事实:末端ID码之后的数据编码是秘密数据编码。可能会发生的是:位于末端ID码之后的、原本应该仅放置填充码的编码区域(编码区域的空闲部分)中的数据编码既不是填充码也不是秘密数据编码(例如,不再是填充码的错乱填充码)的数据编码。在该情形中,作为秘密数据编码的数据编码的信息不会被输出到主机HST。因此,可以避免出现误操作,否则,就可能由于对秘密数据编码之外的数据编码进行解码而导致该误操作。
如果确定该数据编码不是秘密ID码(步骤S321的“否”),则表示在QR编码Q中所考虑的第n个数据编码之后不存在秘密数据编码。然后,当前二级解码处理结束,即,结束图3中的步骤S300以便结束主解码处理。
在步骤S323中获取了文本长度j之后,控制进行到步骤S325,在该步骤中,获取与文本长度j相对应的多个数据编码。然后,在步骤S327,将“n+j+2”设置给计数器n,因此计数器n能指示随后的数据编码,即,秘密数据编码。此后,在步骤S329,获取第n个解码密钥检测数据(密钥标识信息)。
然后,在步骤S331中,根据步骤S329中所获取的解码密钥检测数据,确定在之前的步骤S209中从主机HST接收到的解码密钥是否匹配用于对第n个秘密数据编码的加密数据进行解密的密钥。当在步骤S331中确定解码密钥匹配时(步骤S331为“是”),在随后的步骤S333中对加密数据进行解密。
这里所用的密码技术是第一实施例中提及的已知的综合可视化密码技术(综合可视化秘密发布处理)。因此,即使当使用该综合可视化密码技术对秘密数据编码的加密数据进行加密时,数据也可以被解码并恢复到原始明文。执行步骤S333的控制电路40等对应于权利要求中所记载的“解码单元”。
当在步骤S331中确定解码密钥不匹配时(步骤S331为“否”),不对所考虑的第n个秘密数据编码进行解密,并且控制进行到步骤S337,在该步骤中,将“n+1”设置给计数器n以获取随后的秘密数据编码。因此,在QR编码读取器20所拥有的解码密钥不是用于对所考虑的第n个秘密数据编码进行解密的解码密钥的情况下,即不解密也不解码第n个秘密数据编码。因此,不执行不必要的解码处理。执行步骤S331的控制电路40等对应于权利要求中所记载的“密钥匹配确定单元”。
在步骤S335,对秘密数据编码进行解码。具体而言,因为已在之前的步骤S333中对加密数据进行了解密,因此在步骤S335中,基于解密后的数据来对秘密数据编码进行解码。
在步骤S335中的解码处理完成之后,控制进行到步骤S337,在该步骤中,将“n+1”设置给计数器n以便计数器n能指示随后的数据编码。然后,在随后的步骤S339中,获取第n个数据编码。
在步骤S341中,确定在步骤S339所获取的第n个数据编码是否是填充码。如果第n个数据编码是填充码(步骤S341为“是”),则表示QR编码Q不再包含秘密数据编码。因此,当前二级解码处理结束,或图6的步骤S300结束,由此结束主解码处理。
如果在步骤S341中确定第n个数据编码不是填充码(步骤S341为“否”),则表示第n个数据编码是秘密数据编码。在该情况下,控制返回到步骤S323,在该步骤中,再次获取第(n+1)个数据编码或编码数量j(文本长度)以执行上述处理。
这样,在步骤S319和S323至S335中,获取并解码位于末端ID码之后且不应一开始就进行解码的数据编码(第二数据编码,或秘密数据编码)。因此,执行这些步骤的控制电路40等对应于权利要求中所记载的“第二解码单元”。
如上所述,在根据第二实施例的QR编码读取器20中,即使当秘密数据编码(第二数据编码)位于末端ID码之后的、原本应该仅放置填充码的编码区域(编码区域的空闲部分)中时,也能对秘密数据编码进行解码。因此,可以对出现在编码区域的空闲部分中的数据编码执行解码。因此,能由根据第二实施例QR编码读取器20对根据第一实施例的QR编码打印机10打印的QR编码Q进行解码。
在上述的解码处理中,已配置为,在步骤S329中获取第n个解码密钥检测数据。作为替代方案,如参考图3E的第一实施例所解释的,如果解码密钥本身被嵌入到秘密数据编码中,则在步骤S329中就可以获取第n个解码密钥。因此,即使当QR编码读取器20不具有秘密数据编码的解码密钥(能够实现解码的密钥)时,秘密数据编码也能被解码并恢复为原始明文。在该情况下,执行处理“获取第n个解码密钥”的控制电路40等对应于权利要求中记载的“密钥分离单元”。
即使当用不同的加密密钥对每个秘密数据编码进行加密时,如果解码密钥被嵌入到每个秘密数据编码,则在步骤S329中就可以获取第n个解码密钥。因此,即使当QR编码读取器20不具有秘密数据编码的解码密钥时,秘密数据编码也能被解码并恢复为原始明文。
而且,在上述解码处理中,在步骤S329中获取第n个解码密钥检测数据。可能存在如下情况:例如,作为位置信息的“开始位置”被添加到秘密数据编码中,如第一实施例中参考图3D所述。在该情况下,在步骤S329中,可以从秘密数据编码中分离出“开始位置”,并且根据所分离的“开始位置”,可以在数据记录中放置具有已解码的秘密数据编码的秘密数据以便具有在编码之前的位置关系。因此,即使当被编码为码字之前的数据在数据记录中的位置关系中无序地放置时,也能够基于位置信息将解码数据放置在数据记录中以便具有编码之前的位置关系。
在该情况下,执行“从秘密数据编码中分离出‘开始位置’”的处理的控制电路40等对应于权利要求中所记载的“根据所分离的‘开始位置’,在数据记录中放置具有已解码的秘密数据编码的秘密数据以便具有在编码之前的位置关系”的处理的控制电路40等对应于权利要求中所记载的“数据放置单元”。
[第三实施例]
下文将参考图8、图9A至9F描述本发明的第三实施例。
在第三实施例中,根据第三实施例使用QR编码打印机10产生另一QR编码。图8是根据本发明的第三实施例,示出由QR编码打印机执行的编码产生处理流程的流程图。图9A是打印数据的数据记录的示例,图9B是经过重新排序的数据记录的示例,图9C是添加了编码之后的示例,图9D是图9C所示秘密编码的配置的示例,图9E是图9C所示秘密编码的配置的另一示例,以及图9F是图9C所示秘密编码的配置的另一示例。
这里所述的QR编码使用图9C所示的格式,在该格式中,使用可选编码(例如,“00000000”、“11111111”等)来填充空闲区域,而不是使用填充码(“11101100”)。
如图8所示,编码产生处理由MPU 11和存储器12启动,通过打开QR编码打印机10来触发该MPU 11和存储器12。当在步骤S101中执行了初始化时,在随后的步骤S103接收打印数据。通过步骤S107和S111接收秘密数据,并在步骤S115中重新排序公开数据和秘密数据。然后,在步骤S117,对包括公开数据和秘密数据的各个数据进行编码,随后在步骤S119产生纠错码。在步骤S121,将末端ID码放置在公开数据编码之后。
对于在公开数据编码之后放置末端ID码的替换方案,例如,可以如图9C括出的格式所示地对编码进行排列。具体而言,计算每个公开数据编码的数据长度以获取“公开数据编码的码串的末端位置”(下文简单地称为“末端位置”)。可以将这种用于标识末端位置的末端位置数据放置在公开数据编码的头部。
如果打印数据中包含秘密数据(步骤S123为“是”),则在步骤S125至S133中将秘密ID码等附加地放置在该末端位置之后。如果该末端位置之后不包含秘密数据(步骤S123为“否”),则例如在步骤S135′中添加“00000000”和“11111111”,作为上述可选编码。
具体而言,在将秘密数据编码填充到从该末端位置到纠错码的区域中之后仍然存在空闲空间(编码区域的空闲部分)的情况中,填充所述可选编码(例如“00000000”和“11111111”)。因此,例如,在步骤S101的初始化中提前使用该可选编码填充构成该数据格式的存储器的所有范围的情况下,省略了步骤S135′的处理(图8中步骤S135′的框架线由虚线标出)。
通过在步骤S137中附加地放置纠错码,产生了图9C所示的格式中的数据编码。然后,在随后的步骤S139,基于这些数据编码产生单元,并且将这些单元放置在参考图4所解释的数据框中。除了将所述可选编码设置在原本应该放置填充码的范围内之外,以与参考图2至4解释的QR编码的情形相同的形式进行配置。
如上所述,在由根据第三实施例的QR编码打印机10的MPU 11执行的编码产生处理所产生的QR编码Q中,秘密数据编码位于所述末端位置之后。因此,在通用读取器中不读取位于末端位置之后的秘密数据编码。相应地,当由通用读取器读取包含该秘密数据编码的二维编码时,由于秘密数据编码,读取器不能识别要保密的数据的存在。换而言之,确保了通用读取器的用户不会注意到秘密数据的存在。
以该形式,如果QR编码Q中包含秘密数据编码,则不能在通用读取器的显示器上显示与秘密数据编码相对应的数据编码。因此,用户就不会注意到秘密数据的存在,并且用户不会对读取具有疑问,或者无意地想要尝试对QR编码Q进行解密。即使当与秘密数据编码相对应的数据编码是控制数据时,例如,也不会显示该编码并因此不会使屏幕显示失真。
描述的第三实施例举例说明了由QR编码打印机10在标签P上打印QR编码Q的情况。本发明并不限于此,只要能够可视化地表现QR编码Q即可。
例如,可以如此配置:由计算机单元2执行图8所示的编码产生处理,以在显示器3上指示QR编码Q。在该情况下,构成如下技术构思:
即,技术构思“一种用于产生二维编码的程序,所述程序使计算机用作二维编码产生设备,其中,当被编码为表示公开数据的码字的公开数据编码的总数量小于与放置所述码字的编码区域中所能容纳的容量相对应的值时,将表示由位于所述编码区域中的公开数据编码所组成的码串的末端的末端ID码放置在所述码串的末端,或者将能够标识由所述公开数据编码所组成的码串的末端位置的末端ID信息放置在所述码串的预定位置上,其特征在于,将被编码为表示要保密的数据的码字的秘密数据编码放置在所述末端ID码之后,或者放置在由所述末端ID信息所指示的所述末端位置之后”。
因此,使用该用于产生二维编码的程序,用作二维编码产生设备的计算机提供了类似于上述QR编码打印机10的MPU 11等的优势。
描述的第三实施例举例说明了计算机1连接到QR编码打印机10以及从计算机1传送打印数据的配置。然而,可以将例如具有该功能的任何数码相机、移动电话或手持计算机以及便携终端连接到QR编码打印机10以获取相同的优势,只要这些设备是能输出字符数据的信息处理器即可,该字符数据诸如为字母数字字符、日语字符(日本汉字)和符号。
[第四实施例]
现在参考图10和11,下文描述本发明的第四实施例。
在第四实施例的解码处理中,使用QR编码读取器20解码另一QR编码。这里所述的“另一QR编码”采用了一种使用可选编码(例如“00000000”、“11111111”等)来填充空闲区域的格式。即,这里的QR编码是由第三实施例的QR编码打印机10打印的QR编码。
图10是根据第四实施例示出主解码处理的流程图。如图所示,该主解码处理由控制电路40和存储器35启动,通过打开QR编码读取器20的电源触发该控制电路40和存储器35。首先在步骤S201执行初始化。然后,在步骤S205的预定时间期满(步骤S205为“是”)之后,或在步骤S209接收到解码密钥(S209为“是”)之后,在步骤S213获取图像数据。然后在步骤S215、S217、S219和S221中识别QR编码Q的图像。在步骤S223,确定是否能够纠错。如果确定能够纠错(步骤S223为“是”),则执行纠错。然后控制进行到步骤S300′,在该步骤中执行二级解码处理(图11)。
如图11所示,在步骤S300′的二级解码处理中,当在步骤S301至S313发现末端位置(步骤S305′为“是”)时,在步骤S315、S317和S319获取计数器n所指示的第n个数据编码。然后,在步骤S321确定第n个数据编码是否是秘密ID码。应该理解,术语“末端位置”指由公开数据编码所组成的码串的末端位置,其能通过末端ID码或末端位置数据标识。当确定第n个数据编码是秘密ID码(步骤S321为“是”)时,在步骤S323至S331检查解码密钥的匹配情况,以便在步骤S333使用解码密钥对加密数据进行解密。然后,在步骤S335,对秘密数据编码进行解码。
当在步骤S321确定该数据编码为秘密ID码时,可以配置为,例如通知主机HST如下事实:QR编码Q具有秘密ID码。这能使主机理解该事实:末端ID码之后的数据编码是秘密数据编码。还有可能会发生的是:位于末端ID码之后的、原本应该仅放置填充码的编码区域(编码区域的空闲部分)中的数据编码既不是填充码也不是秘密数据编码(例如,不再是填充码的错乱填充码)的数据编码。在该情况下,作为秘密数据编码的数据编码的信息不会被输出到主机HST。因此,可以避免出现误操作,否则,就可能由于对秘密数据编码之外的数据编码进行解码而导致该误操作。
在步骤S336′,确定经解码的秘密数据编码是否是最后一个秘密数据编码。具体而言,如图9C所示,例如,紧邻该秘密ID码存储了随后的秘密数据编码的数据长度。因此,根据该数据长度,能确定该秘密数据编码是否是最后一个秘密数据编码。此外,如上所述,在最后一个秘密数据编码之后,即在空闲区域(编码区域的空闲部分)中,填充可选编码(例如,“00000000”,“11111111”等)。因此,基于该可选编码的存在,确定所考虑的秘密数据编码是否对应于最后一个秘密数据编码。
当在步骤S336′确定所考虑的秘密数据编码不是最后一个秘密数据编码(步骤S336′为“否”)时,则在步骤S337将“n+1”设置给计数器n,因此计数器n能指示随后的数据编码。然后,在步骤S339,获取第n个数据编码,并且然后,类似上面描述,在步骤S323至S331检查解码密钥的匹配情况。
另一方面,当在步骤S336′确定所考虑的秘密数据编码是最后一个秘密数据编码(步骤S336′为“是”)时,则表示QR编码Q不再包含更多的秘密数据编码。因此,当前二级解码处理结束,或者说是图10的步骤S300′结束。
应该理解,在步骤S303和S313,获取并解码位于末端位置之前并且一开始就应该进行解码的常规数据编码(第一数据编码,或公开数据编码)。因此,执行这些步骤的控制电路40等对应于权利要求中所记载的“第一解码单元”。
同样,在步骤S321,对步骤S319中所获取的第n个数据编码执行用于确定其是否是秘密ID码的处理。因此,执行步骤S321的控制电路40等对应于权利要求中所记载的“数据编码确定单元”或“秘密ID码确定单元”。而且,执行步骤S331和S333的控制电路40等对应于权利要求中所记载的“密钥匹配确定单元”或“解码单元”。
此外,步骤S319和S323至S335执行用于获取并解码位于末端位置之后并且不应该一开始就进行解码的数据编码(第二数据编码,或秘密数据编码)的处理。因此,执行这些步骤的控制电路等对应于权利要求中所记载的“第二解码单元”。
即使当秘密数据编码位于末端位置之后的、原本不应该放置数据编码的编码区域中(编码区域的空闲部分)时,根据上述第四实施例的QR编码读取器20也能对秘密数据编码(第二数据编码)进行解码。因此,能够对存在于要放置码字的编码区域的空闲部分中的数据编码进行解码。
这样,第三实施例的QR编码打印机10打印的QR编码Q能由第四实施例的QR编码读取器20进行解码。
在上述的解码处理中,已如此配置:在步骤S329获取第n个解码密钥检测数据。作为替换方案,如参考图3E的第一实施例中解释的,如果解码密钥本身嵌入到秘密数据编码中,则也可以在第四实施例的步骤S329中获取第n个解码密钥。因此,即使当QR编码读取器20不具有秘密数据编码的解码密钥(能够解码的密钥)时,秘密数据编码也能被解码并恢复为原始明文。在该情况下,执行“获取第n个解码密钥”的处理的控制电路40等对应于权利要求中所记载的“密钥分离单元”。
即使当用不同的加密密钥对每个秘密数据编码进行加密时,如果每个秘密数据编码都嵌入有解码密钥,则在步骤S329获取第n个解码密钥。因此,即使当QR编码读取器20不具有秘密数据编码的解码密钥时,秘密数据编码也能被解码并恢复为原始明文。
而且,在上述解码处理中,在步骤S329获取第n个解码密钥检测数据。可能存在这种情形:例如,作为位置信息的“开始位置”被添加到秘密数据编码中,如参考第一实施例中的图3D所述。在该情况下,在步骤S329中从秘密数据编码中分离出“开始位置”,并且根据所分离的“开始位置”,可以在数据记录中放置具有已解码的秘密数据编码的秘密数据以便具有在编码之前的位置关系。因此,即使当被编码为码字之前的数据在数据记录中的位置关系中无序地放置时,也能够基于位置信息将解码数据放置在数据记录中以便具有编码之前的位置关系。
在该情况下,执行“从秘密数据编码中分离出‘开始位置’”的处理的控制电路40等对应于权利要求中所记载的“位置信息分离单元”。同样,执行“根据所分离的‘开始位置’,在数据记录中放置具有已解码的秘密数据编码的秘密数据以便具有在编码之前的位置关系”的处理的控制电路40等对应于权利要求中所记载的“数据放置单元”。
[第五实施例]
现在参考图12和13以及图14A至14E,下文描述本发明的第五实施例。
根据第五实施例,使用QR编码打印机10产生另一QR编码。图12是根据本发明的第五实施例,示出由QR编码打印机执行的编码产生处理的流程的流程图。图13是示出图12的具体处理的流程图。图14A是由第三实施例的编码产生处理所产生的编码的示例(对应于图9C的示例),图14B是进行了分散配置之后的秘密数据编码的示例,图14C是秘密数据编码的示例,该秘密数据编码中的各个比特被重新排序或者对其比特值进行了转换,图14D是图14C所示的秘密数据编码的示例,图14E是由第三实施例(对应9D的示例)的编码产生处理所产生的秘密数据编码的示例,作为与图14D的秘密数据编码的比较。
这里所述的QR编码使用图14B所示的格式,在该格式中,对秘密数据编码α和β进行了预定处理,并将其填充在预定空闲区域中。
如图12所示,编码产生处理由MPU 11和存储器12启动,通过打开QR编码打印机10来触发该MPU 11和存储器12。当在步骤S101执行了初始化时,在随后的步骤S103接收打印数据。通过步骤S107和S111接收秘密数据,并然后控制进行到步骤S117。在步骤S117,对包括公开数据和秘密数据的各个数据进行编码,随后在步骤S121′,例如添加末端ID码(包含了组成公开数据编码的码串的末端位置)。
如果打印数据中包含秘密数据(步骤S123为“是”),则在步骤S125和S127紧邻该末端位置之后附加地放置秘密ID码等。然后,在步骤S131,对秘密数据编码进行加密,并且控制进行到步骤S132,在该步骤中,将填充码放置在空闲区域中。此后,在步骤S500执行预定处理。如果打印数据中不包含秘密数据(步骤S123为“否”),则控制进行到步骤S133,跳过步骤S125、S127、S131、S132和S500的处理。
参考图13,描述上述预定处理。如图13所示,在步骤S501,指针i置零。该指针i用于指示要进行步骤S507至S517的分散配置处理的比特位置。使用零位调整,处理开始于第0位。
在步骤S503,为末端位置之后的除了纠错码范围之外的空闲区域(参见图14A至14C),即原本应该放置填充码的区域,计算比特数量n。该处理是用于计算一个常数的处理,该常数用于获取在稍后描述的步骤S513的伪随机数R。
在随后的步骤S505,执行计算,以获取加密数据的比特数量与解码密钥检测数据的比特数量之和m(参见图14D和14E)。具体而言,获取受到分散配置处理(diffusion process)的秘密数据编码的比特数量,以便在随后的步骤S519确定该分散配置处理是否已完成。
在随后的步骤S507,采用2个字节为单位,对公开数据编码和加密数据执行异或运算(EXOR)以获取运算结果S。在步骤S509,将该运算结果S设置为步骤S513的伪随机数的种子值。该种子值用作使用预定计算产生伪随机数的种子。相同的种子值能产生完全相同的随机数。即,用该运算结果S的值单一地确定在步骤S513中的伪随机数的值和产生顺序。在这点上,基于公开数据编码的内容来执行当前处理。
在步骤S511,以“1”递增或加上指针i。因此,将例如在步骤S517中受到分散配置处理的比特位置(即,指针所指示的位置)加起来。在上面的示例中,通过将计数从“0”递增至“1”来指示第一比特。
在随后的步骤S513,获取伪随机数R。该处理的目的是:基于上述种子值,通过执行根据预定随机数产生算法的预定信息处理,来以伪形式产生随机数。在此,在从1至n(n是空闲区域的比特数量)的范围之内产生伪随机数。例如使用“R=rand()mod n+1”的计算公式。
应该理解,“rand()”是针对种子值S而返回一个伪随机数的函数。此外,“x mod y”是计算“y”对“x”的模的函数。具体而言,在上面计算公式中,“mod”之前的参数“x”(即“rand()”)是伪随机数的值,其被“mod”之后的参数“y”(即“n”)所除,然后再加上“1”,从而获取了伪随机数R。应该理解,如上所述,“n”是空闲区域中的比特数量。
这样,当在步骤S513计算了从1至n的伪随机数R时,在随后的步骤S515确定是否已产生过该伪随机数R。具体而言,如果产生过与该伪随机数相同的值,则在随后的步骤S517中所执行的分散配置处理中重写该比特数量。因此,执行步骤S515的处理,以便能避免中断排列在同一比特位置之前的值。因此,如果确定所产生的作为伪随机数R的值与已经产生过的值相同(步骤S515为“是”),则控制返回到步骤S513,以再次获取伪随机数R。
当在步骤S515确定伪随机数R并不具有与已经产生的伪随机数相同的值(步骤S515为“否”)时,控制进行到步骤S517。在步骤S517,在空闲区域的第R比特位置处设置加密数据的第i比特(指针i所指向的比特位置)的值。在上面示例中,第1比特的值被设置给空闲区域中的第R比特位置。因此,最初位于第1比特的信息由无规则产生的随机数转移到第R比特位置。
在随后的步骤S519,确定指针i的值是否到达受到分散配置处理的秘密数据编码的比特数量的末端(最后一个比特),即,确定分散配置处理是否已经完成。当指针i的值与所有比特的数量一致时,则表示已经对秘密数据编码的所有比特进行了步骤S507至S517的分散配置处理(步骤S519为“是”)。然后,当前处理结束。
当指针i的值与所有比特的数量不一致时,表示秘密数据编码中仍有剩余比特没有进行分散配置处理(步骤S519为“否”)。因此,控制返回到步骤S511,在该步骤中,递增指针i,以再次执行步骤S513中的伪随机数产生处理。
这样,对秘密数据编码的所有比特重复地执行步骤S513至S517的处理。因此,根据无规则改变的伪随机数R,转移比特信息中原本应该按顺序排列的第1比特、第2比特、第3比特...、第(n-1)比特和第n比特。因此,当步骤S500的该预定处理完成时,如图14B所示,将进行分散配置处理(图14A)之前的秘密数据编码α和β两者以比特为单元划分为多个段并重新排列。此外,将填充码通过该分散配置处理类似地划分为多个段,然后以与秘密数据编码段混合的状态在空闲区域中对其进行重新排列。
因此,经加密的秘密数据编码被进一步扰乱,由此进一步提高了安全级别。
在当前处理中,作为对于步骤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)转换为“0101101001100001”(5A61h)。
通过使秘密数据编码经过该比特-位置转换表,如上所述,数据的十六进制符号“96D6h”例如被转换为“5A61h”。这能被看作是一种技术构思:其中,能够基于预定转换表,转换由构成秘密数据编码的多个比特所标识的数据值本身。应该理解,能通过使用预定的数据-值转换公式来执行该数据值转换,在该转换公式中,输入数据X被加倍,接着减去1以获取输出Y(=x×2-1)。
作为替代方案,秘密数据编码可以经过例如循环移位寄存器,因此能够对比特位置进行循环,并将比特位置向着LSB(最低有效位)侧移位预定数量的比特。在该情况下,上面的16比特数据的示例“1001011011010110”(96D6h)被转换为“0110100101101101”(696Dh)。自然地,移位量并不限于4个比特,而可以是1至15比特中的任何一个。同样,移位方向能向着MSB(最高有效位)侧。
构成在此所例举的该16比特结构的16个比特等同于加密数据的比特数量与上述解码密钥检测数据的比特数量之和m。图14D示出了采用除了上述分散配置处理之外的比特重新排序或比特值转换所产生的格式(加密数据+解码密钥检测数据)的示例。为了进行比较,图14E示出由第三实施例的编码产生处理所产生的秘密数据编码的配置的示例。
在上述步骤S507,已经采用2个字节为单元,对公开数据编码和加密数据执行了异或操作(EXOR),以获取运算结果S。随后在步骤S509,将该运算结果S设置为伪随机数的种子值。作为公开数据编码的替代方案,QR编码Q内在的具体信息,例如纠错级(L、M、Q和H)或模块数(1至40)能与加密数据一起使用,来执行异或运算(EXOR)并获取运算结果S。关于纠错级和模块数以及规格的细节,参考二维编码符号-QR编码-日本工业标准(JIS×0510:2004)的基本规范。
再次参考图12,在完成步骤S500的预定处理之后,控制进行到步骤S133,在该步骤中,附加地放置秘密数据编码。在随后的步骤S134,确定是否存在秘密数据编码。
具体而言,如果在步骤S134确定存在秘密数据编码(步骤S134为“是”),则不需要随后的用于添加填充码的步骤S135,因为已在上述的步骤S132添加了填充码。因此,在该情况下,跳过步骤S135,并且控制进行到步骤S137。另一方面,如果确定不存在秘密数据编码,或如果只存在公开数据编码(步骤S134为“否”),则表示还没有附加地放置填充码。因此,在该情况下,在随后步骤S135中放置填充码,并且控制进行到步骤S137。
在步骤S137,添加纠错码,由此产生了具有图14A至14C所示的格式的数据编码。因此,在随后的步骤S139,基于这些数据编码产生各个单元,并将其排列在参考图4所解释的数据块中。
如上所述,在由根据第五实施例的QR编码打印机10的MPU 11执行的编码产生处理所产生的QR编码Q中,对秘密数据编码进行了步骤S500中所执行的预定处理,并然后将其放置在末端ID码之后或者放置在末端ID信息所标识的末端位置之后。利用所采用的该预定处理,确保不会识别到秘密数据编码的存在。因此,尝试读出末端ID码之后的数据甚至不会使操作员注意到秘密数据编码的存在。以该形式,能进一步提高安全级别。
在上述第五实施例中,在步骤S113之后未插入用于对公开数据和秘密数据进行重新排序的处理(对应于图2的步骤S115)。在这点上,打印数据包含向第三方公开的数据(公开数据)和对第三方保密的数据(秘密数据)。如果这些数据无序地位于数据记录中,则根据“用于表示在数据记录中的秘密数据的位置关系的位置信息”对数据进行重新排序,从而能够获取公开数据组和秘密数据组。
因此,例如,当从计算机1传送的打印数据包含按照公开数据A、秘密数据α、公开数据B和秘密数据β的顺序的数据时,能够在步骤S115以公开数据A、公开数据B、秘密数据α和秘密数据β的顺序重新排序这些数据。因此,能够将公开数据和秘密数据进行分组,以便于例如在后来的步骤S121′执行的添加末端ID码的处理或在步骤S125中执行的添加秘密ID码的处理。
[第六实施例]
现在参考图15至17,下文描述本发明的第六实施例。
根据第六实施例,使用QR编码读取器20解码另一QR编码。这里所述的“另一QR编码”使用的格式为,将预定处理应用于例如秘密数据编码α、β等(如参考图14B所述),来填充空闲区域。
图15是示出根据第六实施例的主解码处理的流程图。如图所示,主解码处理由控制电路40和存储器35启动,通过打开QR编码读取器20的电源触发该控制电路40和存储器35。首先在步骤S201执行初始化。然后在步骤S205中的预定时间期满(步骤S205为“是”)之后,或在步骤S209接收到解码密钥(步骤S209为“是”)之后,在步骤S213获取图像数据。然后在步骤S215、S217、S219和S221识别QR编码Q的图像。在步骤S223,确定是否能够进行纠错。如果确定能够进行纠错(步骤S223为“是”),则进行纠错,并且控制进行到步骤S300″,在该步骤中执行如图16所示的二级解码处理。
如图16所示,在步骤S300″的二级解码处理中,当在步骤S301至S313发现末端位置(步骤S305′为“是”)时,在步骤S315、S317和S319获取由计数器n所指示的第n个数据编码。然后,在步骤S321确定该第n个数据编码是否是秘密ID码。应该理解,术语“末端位置”指由公开数据编码所组成的码串的末端位置,其能够由末端ID码或末端位置数据来标识。当确定第n个数据编码是秘密ID码(步骤S321为“是”)时,控制进行到步骤S323,在该步骤中,获取编码数量(文本长度)j。然后,在步骤S600,执行预定的提取处理。
当在步骤S321确定了在该数据编码处放置了秘密ID码时,能例如如此配置以便向主机HST通知如下事实:QR编码Q具有秘密ID码。这能使主机HST掌握该事实:末端ID码之后的数据编码是秘密数据编码。可能会发生的是:位于末端ID码之后的、原本应该仅放置填充码的编码区域(编码区域的空闲部分)中的数据编码既不是填充码也不是秘密数据编码(例如,不再是填充码的错乱填充码)的数据编码。在该情况下,作为秘密数据编码的数据编码的信息将不会输出到主机HST。因此,可以避免出现误操作,否则,就可能由于对秘密数据编码之外的数据编码进行解码而导致该误操作。
现在参考图17,描述步骤S600的预定提取处理。应该理解,图17中所示的预定提取处理类似于第五实施例中所述预定处理(图13)的信息处理内容。因此,基本上与第五实施例相同的处理步骤被指定了相同的标记并省略了详细说明。
如图17所示,在该预定提取处理中,在步骤S501中将指针i置零。在步骤S503,计算末端位置之后的比特数量n(参见图14A至14C)。在步骤S505,计算加密数据的比特数量与解码密钥检测数据的比特数量之和m(参见图14D和14E)。然后,在步骤S507,采用2个字节为单位,对公开数据编码和加密数据编码执行异或运算(EXOR)以获取运算结果S。在随后的步骤S509,将该运算结果S设置为伪随机数的种子值。
如第五实施例所述,在步骤S509所设置的种子值用于通过预定计算产生伪随机数。相同的种子值能产生完全相同的随机数。因此,如果QR编码Q是相同的,则从图13的预定处理和当前实施例的提取处理中所得到的种子值是相同的。因此,随后的步骤S513中的伪随机数的值和这些数的产生顺序是相同的。
因此,在步骤S513,获取伪随机数R。在随后的步骤S515,如果确定伪随机数R不具有与已经产生的伪随机数相同的值(步骤S515为“否”),则控制进行到步骤S617。在步骤S617,将空闲区域中第R比特的值设置给加密数据缓冲器中的第i比特(由指针i所指示的位置)。
具体而言,在第五实施例的预定处理中,步骤S517已执行将加密数据的第i比特(由指针i所指示的比特位置)的值设置给空闲区域中第R比特的处理。例如,在空闲区域中第R比特设置第1比特的值。相反,在当前提取处理的步骤S617,将空闲区域中第R比特的值设置给加密数据缓冲器中的第i比特(由指针i所指示的比特位置)。例如,将空闲区域中的第R比特的值设置在加密数据缓冲器中的第i比特处。
因此,将在第五实施例的预定处理中已设置给空闲区域中第R比特的加密数据中第i比特的值设置给加密数据缓冲器中的第i比特。这样,就能够恢复已经以比特为单位划分为段的秘密数据编码段。换而言之,例如,能够在步骤S617执行集中恢复处理(intensive restoration process)。
然后,在步骤S519,当指针i与秘密数据编码的总比特数量一致时,表示已经对秘密数据编码的所有比特进行了上述步骤S507至S517的集中恢复处理(步骤S519为“是”)。在该情况下,该提取处理结束。另一方面,当指针i与秘密数据编码的总比特数量不一致时,表示秘密数据编码中的某些比特还没有进行恢复处理(步骤S519为“否”)。在该情况下,控制返回到步骤S511,在该步骤中,递增指针i,以再次在步骤S513中执行伪随机数产生处理。
再次参考图16,在步骤S600完成了所述预定提取处理之后,控制进行到步骤S325,以获取与文本长度j相对应的数据编码。然后,在随后的步骤S329′,获取第j个解码密钥检测数据(密钥标识信息)。
然后,在步骤S331,基于在步骤S329′所获取的解码密钥检测数据,确定在步骤S209中从主机HST接收的解码密钥是否适合于(匹配)用于对第j个秘密数据编码的加密数据进行解码的密钥。当确定解码密钥匹配(步骤S331为“是”)时,在随后的步骤S333对加密数据进行解密。
另一方面,当在步骤S331中确定解码密钥不匹配(步骤S331为“否”)时,当前二级解码处理结束而不解密第n个秘密数据编码。因此,一旦执行了步骤S335中的对秘密数据编码进行解码的处理,图15的步骤S300″就结束,从而结束主解码处理。
在当前提取处理中,作为在步骤S507至S617所执行的集中恢复处理的替换方案,能够基于例如逆向比特-位置转换表对比特进行重新排序,该逆向比特-位置转换表能以相反方向转换比特位置。具体而言,例如,可以提供第六实施例的逆向比特-位置转换表,以便能根据逆向转换规则来逆向转换比特位置,在该转换规则中,第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)。
作为使秘密数据编码经过该逆向比特-位置转换表的替换方案,也能使用逆向数据-值转换表,该表能逆向转换由构成秘密数据编码的多个比特所指定的数据值。在这点上,在第五实施例中解释的数据-值转换表中,数据的十六进制符号“96D6h”能够被转换为“5A61h”。因此,基于该能够将“5A61h”逆向转换为“96D6h”的预定逆向数据-值转换表执行转换,来执行恢复处理。
作为使秘密数据编码经过该逆向比特-位置转换表的替换方案,也能使用逆向数据-值转换公式,该公式能逆向转换由构成秘密数据编码的多个比特所指定的数据值。在这点上,在第五实施例中解释的预定数据-值转换公式中,输入数据X被加倍,接着减去1,以获取输出Y(=X×2-1)。相反,将输入数据X′加上1,然后除以2,以获取输出Y′(=(X′+1)/2)。因此,可以执行恢复处理。
在使秘密数据编码经过第五实施例所解释的循环移位寄存器的情况中,可以通过使用允许在与第五实施例的预定处理相反的方向上进行移位的循环移位寄存器来执行恢复处理。例如,对于上面的16比特数据结构的示例,在所述预定处理中,已经向LSB侧执行移位了4个比特,以便将“1001011011010110”(96D6h)转换到“0110100101101101”(696Dh)。为了执行所述恢复处理,在相反的方向上移位4个比特,即向着MSB侧移位,以获得“1001011011010110”(96D6h)。
类似于第五实施例,使用QR编码Q内在的具体信息,例如纠错级(L、M、Q和H)或模块数(1至40)以及加密数据一起来获取在步骤S509设置的伪随机数的种子值,以执行异或运算(EXOR)并获取运算结果S。关于纠错级和模块数以及规格的细节,参考二维编码符号-QR编码-日本工业标准(JIS×0510:2004)的基本规范。
应该理解,在步骤S303至S313,通过获取位于末端位置之前的、应该一开始就进行解码的常规数据编码(第一数据编码或公开数据编码),来执行解码。因此,执行这些步骤的控制电路40等对应于权利要求中所记载的“第一解码单元”。
同样,在步骤S321,对在步骤S319获取的第n个数据编码进行用于确定其是否是秘密ID码的处理。因此,执行步骤S321的控制电路40等对应于权利要求中所记载的“数据编码确定单元”或“秘密ID码确定单元”。而且,执行步骤S333的控制电路40等对应于权利要求中所记载的“解码单元”。
此外,步骤S319和S323至S335执行用于获取并解码位于末端位置之后并且不应该一开始就进行解码的数据编码(第二数据编码,或秘密数据编码)的处理。因此,执行这些步骤的控制电路40等对应于权利要求中所记载的“第二解码单元”。
既使当秘密数据编码位于末端ID码之后的、例如原本不应该放置数据编码的编码区域(编码区域的空闲部分)中时,根据上述第六实施例的QR编码读取器20也能对秘密数据编码(第二数据编码)进行解码。因此,能够对要放置码字的编码区域的空闲部分中存在的数据编码进行解码。
在上述解码处理中,如此配置为,在步骤S329′获取第j个解码密钥检测数据。在这点上,如第五实施例所述,可以在步骤S113的处理之后插入用于对公开数据和秘密数据进行重新排序的处理(对应于图2的步骤S115)。然后,根据“用于指示秘密数据在数据记录中的位置关系的位置信息”对数据进行重新排序以获取公开数据组和秘密数据组。当执行该处理时,步骤S329′可以执行从秘密数据编码中分离出“开始位置”的处理,并基于所分离出的“开始位置”,按照编码之前的数据记录中的位置关系中来放置具有已解码的秘密数据编码的秘密数据。
因此,即使是当被编码为码字之前的数据无序地位于数据记录中的位置关系中时,也可以基于所述位置信息,按照编码之前的位置关系放置已解码数据。在该情况下,执行“从秘密数据编码中分离出‘开始位置’”的处理的控制电路40等对应于权利要求中所记载的“位置信息分离单元”。同样,执行“根据所分离的‘开始位置’,在数据记录中放置具有已解码的秘密数据编码的秘密数据以便具有在编码之前的位置关系”的处理的控制电路40等对应于权利要求中所记载的“数据放置单元”。
[第七实施例]
参考图18和19,下文将描述本发明的第七实施例。
图18和19示出根据第七实施例,由QR编码读取器20执行的QR编码Q的解码处理的流程图。应该理解,这里的QR编码Q是在上述第一至第五实施例中包含秘密数据编码的QR编码。
在第七实施例中,没有示出主解码处理。图18是二级解码处理的流程图,该二级解码处理能够分别取代图6、10和15所示的步骤S300、S300′和S300″中所执行的二级解码处理。图18所示的二级解码处理代表第七实施例。
如图18所示,在该二级解码处理中,当在步骤S305′确定不存在对应于末端位置的数据(步骤S305′为“否”)时,控制进行到随后的步骤。应该理解,所述末端位置指的是位于由公开数据编码所组成的码串的末端处的位置,并能由末端ID码或末端位置数据来标识。在步骤S307和S309,获取与文本长度i相对应的多个数据编码,然后在步骤S310,确定是否要对公开数据编码进行解码。
具体而言,在步骤S310,根据“读取标记S”(下文将参考图19说明)的状态,确定用于对公开数据编码进行解码的信息是否被设置给读取标记S。读取标记S的状态能够表示为:(1)标记S=1:只对公开数据编码进行解码;(2)标记S=2:只对秘密数据编码进行解码;(3)标记S=0:对公开数据编码和秘密数据编码进行解码。例如,该读取标记S设置在构成QR编码读取器20的存储器35的预定区域或寄存器中。在读取标记设置处理(参见图19)中设置该标记S,这将在下文说明。
在标记S=1或S=0被设置为读取标记(步骤S310为“是”)的情况下,控制进行到随后的步骤S311,在该步骤中,执行用于对公开数据进行解码的处理。在标记S=2被设置为读取标记(步骤S310为“否”)的情况下,跳过步骤S311的处理,并且控制进行到步骤S313和S303,在该步骤中,例如,获取随后的数据编码。
另一方面,当在步骤S301至S313,发现末端位置(位于由公开数据编码所组成的码串的末端处的位置,并且该位置能由末端ID码或末端位置数据来标识)时(步骤S305’为“是”),控制进行到步骤S314,在该步骤中,确定是否要对秘密数据编码进行解码。
具体而言,与上述步骤S310的处理相对照,在步骤S314中根据该读取标记S来确定是否应该对秘密数据编码进行解码。更具体而言,在标记S=2或S=0被设置为读取标记(步骤S314为“是”)的情况下,控制进行到随后的步骤S315至S335,在这些步骤中对秘密数据编码进行解码。在标记S=1被设置为读取标记(步骤S314为“否”)的情况下,当前二级解码处理结束。
现在参考图19,描述读取标记设置处理。读取标记设置处理包括在维护程序中,当改变、取消或初始化构成QR编码读取器20的硬件的各种设置(例如,蜂鸣声音的开/关状态,或LCD 46的背光的开/关状态)时启动该维护程序。因此,读取标记设置处理并不包括在常规主解码处理中(图6、10和15)。这里省略根据所述维护程序执行所述维护处理的流程图及其说明。
如图19所示,在读取标记设置处理中,首先在步骤S901执行初始化,包括将读取标记设置为“0”(S=0)。然后,在步骤S903,清空计时器的值。在步骤S905,使用该计时器计算消逝时间,以确定预定时间是否期满。
如果在步骤S905确定所述预定时间还没期满(步骤S905为“否”),则在随后的步骤S907确定是否已接收到命令。例如,该命令从主机HST接收,或者在上述维护程序中由构成QR编码读取器20的操作开关42输入。
如果在步骤S907确定还没接收到命令(步骤S907为“否”),则控制返回到步骤S905,在该步骤中再次确定预定时间是否期满。另一方面,如果确定已接收到命令(步骤S907为“是”),则控制进行到随后的步骤S909,在步骤S909判断所接收命令的内容。
具体而言,步骤S909进行的判断如下。即,当命令用于(1)只对公开数据编码进行解码时,在步骤S911中将读取标记S设置“1”(S=1)。当命令用于(2)只对秘密数据编码进行解码时,在步骤S913中将读取标记S设置“2”(S=2)。当命令既不是(1)也不是(2)时,读取标记S保持设置为“0”,以结束该读取标记设置处理。换而言之,在该情况下,在上述步骤S901中缺省设置为“0”,并且照原样使用它,以便使读取标记S执行(3)对公开和秘密数据编码进行解码。
在步骤S911或S913中已经设置了读取标记之后,结束该读取标记设置处理。应该理解,步骤S310和S314可以对应于权利要求中所记载的“解码功能选择单元”。此外,步骤S311对应于权利要求中所记载的“第一数据编码的解码功能”,而步骤S335对应于权利要求中所记载的“第二数据编码的解码功能”。
如上所述,在根据第七实施例的QR编码读取器20中,QR编码读取器20的用户能选择以下至少一种:对公开数据编码进行解码;以及对秘密数据编码进行解码。因此,在用户希望读取秘密数据编码而不是公开数据编码的情况下,可以节约执行不必要解码处理所花费的解码时间;反之亦然。因此,能缩短解码时间。
在某些上述实施例中,诸如第一实施例(图2)和第三实施例(图8),在编码产生处理的步骤S119中产生纠错码。然而,纠错码并不必须在步骤S119产生。作为可替换方案,例如,编码产生处理的流程可以这样配置:在之前的步骤执行与步骤S119的处理(纠错码产生处理)相对应的处理,例如添加纠错码(步骤S137)。
[第八实施例]
参考图1A、1B、20和22,现在将描述本发明的第八实施例。
本实施例采用了已参考图1A和1B描述了其配置的QR编码打印机10。
因此,根据QR编码打印机10,将从计算机1输出并输入到QR编码打印机10的打印数据通过接口13临时存储在存储器12的缓冲区中,并且对其进行下述的编码产生处理。
参考图20、21和4,下文将描述编码产生处理。图20是示出编码产生处理的流程的流程图。图21A-21E示出进行图20所示编码产生处理中的信息处理的数据和编码的格式的示例。具体而言,图21A是打印数据的数据记录的示例,图21B是添加了编码之后的示例,图21C是图21B所示秘密编码的配置的示例,图21D是图21B所示秘密编码的配置的另一示例,以及图21E是图21B所示秘密编码的配置的又一示例。
如图20所示,编码产生处理由MPU 11和存储器12启动,通过打开QR编码打印机10的电源触发该MPU 11和存储器12。首先,在步骤S1101执行初始化。在该处理中,清空存储器12中用于存储数据的操作区和缓冲区,或清空存储器12中的预定标记、计数器、等等。
在步骤S1103,确定是否已接收到打印数据。重复该步骤直到接收到打印数据为止(步骤S1103为“否”)。当确定接收到打印数据(步骤S1103为“是”)时,控制进行到随后的步骤S105。应该理解,所接收的数据除了打印数据之外还包括加密密钥数据。具体而言,如下文所述,当需要对秘密数据编码进行加密时,还在该步骤S1103中接收加密密钥数据。这里所接收到的打印数据都打算向第三方保密(秘密数据),并因此不包括向第三方公开的数据(公开数据)。因此,这些打印数据在下面的说明中都被处理为秘密数据。
在随后的步骤S1105,根据JIS的基本规范(JIS×0510:2004)对秘密数据进行编码。因此,将秘密数据编码为码字,以产生秘密数据编码。例如,如图21A所示,当在步骤S1103接收到的打印数据是秘密数据α和β时,计算在步骤S1105中所编码的秘密数据编码α和β的数据长度之和,并将结果添加在紧邻秘密数据编码α之前,如图21B所示。
在随后的步骤S1107,计算秘密数据编码的长度,并对其进行编码,并将其添加在紧邻秘密数据编码之前。因此,可以知道放置秘密数据编码的区域和范围。由此,例如,在用QR编码读取器对当前编码产生处理中所产生的QR编码Q进行解码时,可以知道秘密数据编码在多远处出现,以及秘密数据编码是否是经加密的数据编码。
在步骤S1109,在步骤S1107已编码的数据长度之前附加地放置秘密ID码。该秘密ID码明确地表示紧邻(在随后的步骤S1111添加)末端ID码之后的数据编码是“已被编码为表示数据的码字的数据编码”。由此,例如,在用QR编码读取器对当前编码产生处理中所产生的QR编码Q进行解码时,可以识别在QR编码Q中的包含秘密数据编码的编码。因此,可以避免对不用读取的数据或错乱码数据进行错误识别并将其读作秘密数据编码。因此,也可以避免发生由于基于错误认知的读取所造成的误操作。
然后,在随后的步骤S1111,紧邻秘密ID码之前添加末端ID码。例如,末端ID码是“0000”的4比特模式。在当前实施例中,在如上所述的步骤S1103中所接收的打印数据中不包含公开数据。因此,如图21B所示,不存在一般位于紧邻末端ID码之前的公开数据,并因此末端ID码位于头部。
经过上述步骤S1105至S1111的处理,可以在秘密数据编码之后添加填充码或纠错码。然而,在当前实施例中,如图21C所示,在这些处理之后执行用于对秘密数据编码进行加密的处理。
具体而言,在步骤S1113,确定是否存在加密密钥,以确定是否需要对秘密数据编码进行加密。换而言之,在已经在步骤S1103中从计算机1接收到加密密钥数据的情况下,则确定存在加密密钥(步骤S1113为“是”),并且控制进行到步骤S1115,以执行加密处理。同时,在步骤S1103中没有从计算机1接收到加密密钥的情况下,则确定不存在加密密钥(步骤S1113为“否”)。因此,跳过步骤S1115的加密处理,并且控制进行到步骤S1117。
即使是当在步骤S1103中没有接收到加密密钥数据时,如果计算机1在诸如存储器12或硬盘等的信息存储介质中保存了加密密钥,则确定存在加密密钥(步骤S1113为“是”)。因此,在步骤S1115中执行加密处理。
在步骤S1115,对秘密数据编码进行加密。在该处理中,通过使用例如公知的综合可视化密码技术(综合可视化秘密发布处理),来对秘密数据编码进行加密。这样,与添加未加密的明文的情况相比,提高了安全性。
正如能从图21C所示的示例中看出的,例如,对秘密数据编码α进行加密以获取“加密数据”,并且在同时产生“开始位置”、“文本长度”和“解码密钥检测数据”。将最初进行放置的“开始位置”作为经加密的秘密数据的位置信息给出。当将地址零赋予打印数据的头部时,一个表示性的地址值可以对应于该“开始位置”。随后的“文本长度”是经加密的秘密数据的字符数量。经常会发生的是:编码为码字之前的数据在数据记录中的位置关系中无序地放置。即使是在该情况下,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,可以根据上述位置信息,将已解码的数据置于数据记录中以便能够具有在编码之前的位置关系。
最后添加的“解码密钥检测数据”是密钥标识信息,用该信息可以标识用于对密码进行解密的解码密钥。当密钥加密技术(也称为“秘密密钥加密技术”)在加密密钥和解码密钥之间是公共的时,解码密钥检测数据也能标识加密密钥。因此,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,能轻松地为秘密数据编码标识解码密钥(能够解码的密钥),或者确定所考虑的密钥是否是解码密钥。
以与秘密数据编码α类似的形式配置秘密数据编码β。在这里,可以添加与用于对秘密数据α进行解码的解码密钥相同的信息,以用作“解码密钥检测数据”。作为替代方案,当使用与秘密数据编码α不同的加密密钥对秘密数据编码β的密码数据进行加密时,可以添加不同的用于标识解码密钥的“解码密钥检测数据”。因此,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,能轻松为每个秘密数据编码标识能解码的密钥,或者确定所考虑的密钥是否是解码密钥。
在随后的步骤S1117,根据JIS基本规范(JIS×0510:2004),在秘密数据编码之后添加填充码。然后,在步骤S1119,根据JIS基本规范(JIS×0510:2004),产生秘密数据的纠错符号。进一步编码该符号,以产生纠错码。
在步骤S1121,基于步骤S1119所产生的数据编码,产生各个单元,然后将各个单元放置在图4所示的数据框中。具体而言,图4所示的类型1的QR编码具有正方形,该正方形的一个边对应于21个单元(模块)。因此,除了在三个角上设置的位置检测图案之外的编码区,形成了信息区(图4中的阴影区)和时序图案,并用于放置26个数据块(A0-A25),每个数据块都由4行2列排列的8个单元组成。
例如,在图21B所示的示例中,末端ID码位于对应于数据区头部的块A0。此外,通常放置填充码的块A1和随后的块用于放置其他编码。即,秘密ID码位于块A1中,数据长度位于块A2中,秘密ID码α位于块A3至A6中,以及秘密数据编码β位于块A7至A9中。类似于常规使用的QR编码,纠错码位于剩余的块A20至A25中。填充码放置在这些块之间的空闲空间中,即在块A10至A19中。设置有所插入的时序图案的块A15和A18被分别划分为块A15和A15′,以及块A18和A18′。
如图21D所示,可以在步骤S1115中添加解码密钥本身,而不是添加“解码密钥检测数据”。因此,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,即使当例如QR编码读取器不具有秘密数据编码α的解码密钥时,也能对秘密数据编码α进行解码以获取原始明文。
类似的,关于秘密数据编码β,添加解码密钥本身,而不是添加“解码密钥检测数据”。所添加的解码密钥可以与用于对秘密数据编码α进行解码的解码密钥相同。作为替换方案,当使用与秘密数据编码α不同的加密密钥对秘密数据编码β的秘密数据进行加密时,可以添加与不同加密密钥相对应的不同解码密钥。因此,例如,在使用QR编码读取器对当前编码所产生处理产生的QR编码Q进行解码时,即使当例如QR编码读取器不具有秘密数据编码β的解码密钥时,也能够对秘密数据编码β进行解码以获取原始明文。
有时可能会在步骤S1113中确定不存在加密密钥(步骤S1113为“否”)。在该情况下,如图21E所示,可以在步骤S1113和S1117之间提供附加步骤。在该附加步骤中,在没有加密的明文数据之前,添加已在步骤S1115中添加的“开始位置”和“文本长度”。同样,经常会发生:编码为码字之前的数据在数据记录的位置关系中无序地放置。即使在该情况下,例如,在使用QR编码读取器对当前编码产生处理所产生的QR编码Q进行解码时,可以根据位置信息将解码数据放置在数据记录中以便具有编码之前的位置关系。
如上所述,根据本发明第八实施例的QR编码打印机10通过在MPU 11的帮助下执行编码产生处理而产生QR编码Q。在QR编码Q中,在步骤S1111中将末端ID码放置在编码区域的初始部分,并且在步骤S1111中将秘密数据编码放置在末端ID码之后,取代部分或所有的填充码。即,末端ID码位于数据编码的头部(在编码区域的初始部分),由此能够产生不包含公开数据编码的数据编码(公开代码的总数量为零),秘密数据编码位于末端ID码之后,取代部分或所有的填充码。
因此,在通用读取器中不读取位于末端ID码之后的秘密数据编码。因此,在该情况下,由于通用读取器认为已经读取到了不存在编码数据的空闲(空)QR编码,所以读取器的用户不会认知到秘密数据的存在。这样,避免了通用读取器的用户认知到秘密数据的存在。
因此,在通用读取器中,即使当存在该秘密数据编码时,在屏幕上也不会显示与该秘密数据编码相对应的数据编码。因此,可以避免用户认知到秘密数据的存在。而且,并且用户不会对读取具有疑问,或者无意地想要尝试对QR编码Q进行解密。另外,例如,即使当与秘密数据编码的解码数据相对应的数据是控制数据时,也不会在屏幕上显示该数据并因此不会使屏幕显示失真。
已描述的第八实施例举例说明了由QR编码打印机10在标签P上打印QR编码Q的情况。本发明并不限于该实施例,而是可以包含能够可视化地表现QR编码Q的任何组件。
例如,能如此配置:由计算机单元2执行图20所示的编码产生处理,以在显示器3上显示QR编码Q。在该情况下,构成如下技术构思:
即,技术构思“一种用于产生二维编码的程序,所述程序使计算机用作二维编码产生设备,其中,当被编码为表示公开数据的码字的公开数据编码的总数量小于与放置所述码字的编码区域中所能容纳的容量相对应的值时,将表示由位于所述编码区域中的公开数据编码所组成的码串的末端的末端ID码放置在所述码串的末端,并且将表示没有数据的填充码放置在所述编码区域的空闲部分中,其特征在于:不存在所述公开数据编码,即,所述公开数据编码的总数量为零;所述末端ID码位于所述编码数据的初始部分;并且将被编码为表示秘密数据的码字的秘密数据编码放置在所述末端ID码之后,取代一部分或所有的所述填充码”。
因此,使用所述用于产生二维编码的程序,用作二维编码产生设备的计算机可以提供类似于例如上述QR编码打印机10的MPU 11等的优势。
描述的第八实施例举例说明了计算机1连接到QR编码打印机10以及从计算机1传送打印数据的配置。然而,可以将例如具有该功能的任何数码相机、移动电话或手持计算机以及便携终端连接到QR编码打印机10以获取相同的优势,只要这些设备是能输出字符数据的信息处理器即可,该字符数据诸如为字母数字字符、日语字符(日本汉字)和符号。
[第九实施例]
参考图4、5、6和22,现在将描述本发明的第九实施例。
根据第九实施例,QR编码读取器20具有能够对由第九实施例中所述的QR编码打印机10打印的QR编码Q进行解码的配置。QR编码读取器20经配置以便也能够对普通QR编码(在该普通QR编码中,公开数据编码位于末端ID码之前)进行解码。应该理解,已参考图21A至21E和图4,描述了能够由QR编码读取器20进行解码的QR编码Q的配置。因此,这里省略其说明。
本发明采用已在图5中说明了其配置的QR编码读取器20,因此QR编码读取器20的每个组件按照与上述方式相同的方式运行。
参考图4、6和22,下文描述解码处理。
如图6所述,主解码处理由控制电路40和存储器35启动,在打开QR编码读取器20时触发该控制电路40和存储器35。该主解码处理与上文所述的相同。
因此,当已正确执行了纠错(步骤S223为“是”)时,控制进行到步骤S300,在该步骤中执行二级解码处理。
S300的细节如图22所示。下文参考图22描述二级解码处理。如图22所示,在二级解码处理中,首先在步骤S1301将“0”(零)设置给计数器n和Cnt。在当前二级解码处理中,计数器n用作指示构成QR编码Q的数据编码的顺序的变量。计数器Cnt用作指示诸如在普通QR编码中所包含的公开数据编码的数量的变量。
在步骤S1303,获取由计数器n指示的第n个数据编码。在随后的步骤S1305,确定在步骤S1303获取的第n个数据编码是否是末端ID码。如果确定该数据编码是末端ID码(步骤S1305为“是”),则读出的QR编码是第九实施例中所产生的QR编码Q,或者读出的QR编码并不包含任何位于末端ID码之前的常规数据编码。因此,控制进行到步骤S1315。
同时,如果确定该数据编码不是末端ID码(步骤S1305为“否”),则读出的QR编码就不是第八实施例中所产生的QR编码Q,而是普通的QR编码。这表示QR编码在所考虑的第n个数据编码之后仍然具有普通数据编码。因此,控制进行到步骤S1307,在该步骤中获取随后的数据编码,即,第(n+1)个数据编码,或者说是编码数量(文本长度)i。如参考图21C的第八实施例所述,这基于如下事实:文本长度存储在与第二个数据编码相对应的位置中。在JIS基本规范(JIS×0510:2004)的“8.4数据的编码”中描述了该细节。
在步骤S1307获取文本长度i之后,在随后的步骤S1309获取与文本长度i相对应的多个数据编码。然后,在步骤S1311,对于这些数据编码,即公开数据编码(被编码为表示要公开的数据的码字的数据编码)进行解码。
在完成步骤S1311的解码处理之后,控制进行到步骤S1313,在该步骤中,将“n+i+1”设置给计数器n,以便计数器n能指示随后的数据编码,并且将“Cnt+1”设置给计数器Cnt,以便计数器Cnt能够将公开数据编码的数量递增1。然后,控制返回到步骤S1303,以获取第n个数据编码。
这样,在步骤S1303到S1313中,获取并解码位于末端ID码之前的、一开始就应该进行解码的常规数据编码(第一数据编码,或公开数据编码)。
当在步骤S1305确定获取的第n个数据编码是末端ID码(步骤S1305为“是”)时,控制进行到步骤S1314,在该步骤中确定计数器Cnt的值是否大于“0”(零)。
具体而言,如果用于对公开数据编码进行计数的计数器Cnt的值大于“0”(零)(步骤S1314为“是”),则表示读出的QR编码包含公开数据编码。因此,控制进行到步骤S1343,跳过用于执行与秘密数据编码相关的处理的步骤S1315至S1341。这样,由于能够确定在末端ID码之前是否放置了公开数据编码(第一数据编码),执行步骤S1314的处理的控制电路40等对应于权利要求中所记载的“第一数据编码确定单元”。
另一方面,如果计数器Cnt的值不大于“0”(零)(步骤S1314为“否”),即,当计数器Cnt的值是“0”(零)时,则表示读出的QR编码不包含公开数据编码。在该情况下,控制进行到步骤S 1315,在该步骤中,将“n+1”设置给计数器n。然后,在步骤S1317,获取第n个数据编码。
在随后的步骤S1319,确定在步骤S1317获取的第n个数据编码是否是秘密ID码。这能够确定在末端ID码之后是否存在任何秘密数据编码(第二数据编码)。因此,执行步骤S1319的处理的控制电路40等对应于权利要求中所记载的“第二数据编码确定单元”。
当确定该数据编码是秘密ID码(步骤S1319为“是”)时,这表示紧邻秘密ID码之后存在秘密数据编码。在该情况下,控制进行到步骤S1321,在该步骤中,获取随后的数据编码,即第(n+1)个数据编码,或者说是编码数量(文本长度)j。类似于步骤S1309,这基于如下事实:文本长度存储在与第二个数据编码相对应的位置中。
当在步骤S1319确定存在秘密ID码时,确保向例如主机HST通知QR编码Q中存在秘密ID码。因此,主机能掌握如下事实:末端ID码之后的数据编码是秘密数据编码。可能会发生的是:位于末端ID码之后的、原本应该仅放置填充码的编码区域(编码区域的空闲部分)中的数据编码既不是填充码也不是秘密数据编码(例如,不再是填充码的错乱填充码)的数据编码。在该情况下,作为秘密数据编码的代码信息将不会输出到主机HST。因此,可以避免出现误操作,否则,就可能由于对秘密数据编码之外的数据编码进行解码而导致该误操作。
如果确定该数据编码不是秘密ID码(步骤S1319为“否”),则表示在QR编码Q中所考虑的第n个数据编码之后不存在秘密数据编码。然后,当前的二级解码处理结束,或者图6中的步骤S1300结束,以结束主解码处理。
在步骤S1321中获取了文本长度j之后,控制进行到步骤S1323,在该步骤中,获取与文本长度j相对应的多个数据编码。然后,在步骤S1325,将“n+j+2”设置给计数器n,以便计数器n能指示随后的数据编码,即秘密数据编码。此后,在步骤S1327,获取第n个解码密钥检测数据(密钥标识信息)。
在随后的步骤S1329,确定上述预定标记是否已经被设置为“1”,即确定是否要使用解码密钥对QR编码Q的秘密数据编码进行解码。如果该标记未被设置为“1”(步骤S1329为“否”),则跳过步骤S1331和S1333的处理,并且控制进行到步骤S1335,因为不需要进行解码。
如果该标记已被设置为“1”(步骤S1329为“是”),则表示需要使用解码密钥进行解码。因此,在步骤S1331,基于之前步骤S1327中所获取的解码密钥检测数据,确定从主机HST接收的解码密钥是否匹配用于对第n个秘密数据编码的加密数据进行解密的密钥。
如果在步骤S1331确定解码密钥匹配(步骤S1331为“是”),则在随后的步骤S1333中对加密数据进行解密。这里所用的密码技术是第八实施例中提及的公知的综合可视化密码技术(综合可视化秘密发布处理)。因此,即使当秘密数据编码的加密数据是基于综合可视化密码技术时,能够对加密数据进行解码并恢复到原始明文。应该理解,执行步骤S1333的处理的控制电路40等对应于权利要求中所记载的“解码单元”。
如果在步骤S1331确定解码密钥不匹配(步骤S1331为“否”),则跳过步骤S1333的处理而不对第n个秘密数据编码进行解密,并且控制进行到步骤S1335。因此,在由QR编码读取器20所处理的解码密钥不是能够对第n个秘密数据编码进行解密的密钥的情况下,对第n个秘密数据编码既不解密也不解码。因此,可以避免执行不必要的和重复的处理。应该理解,执行步骤S1331的处理的控制电路40等对应于权利要求中所记载的“密钥匹配确定单元”。
在步骤S1335,对秘密数据编码进行解码。换而言之,因为已在之前步骤S1333中对加密数据进行了解密,或者数据最初就未加密,所以对与明文相对应的秘密数据编码进行解码。
在完成步骤S1335的解码处理之后,控制进行到步骤S1337,在该步骤,将“n+1”设置给计数器n,以便计数器n能指示随后的数据编码。然后,在随后的步骤S1339,获取第n个数据编码。
在步骤S1341,确定在步骤S1339获取的第n个数据编码是否是填充码。如果第n个数据编码是填充码(步骤S1341为“是”),则表示QR编码Q中不再存在秘密数据编码,并且控制进行到随后的步骤S1343。
如果在步骤S1341确定第n个数据编码不是填充码(步骤S1341为“否”),则表示第n个数据编码是秘密数据编码。在该情况下,控制进行到步骤S1321,在该步骤中,再次获取第(n+1)个数据编码,或文本长度j,然后是上述的相同处理。
这样,能在步骤S1317、S1321至S1327、S1333和S1335对不应该一开始就进行解码的数据编码进行解码。具体而言,在这些步骤中,获取并处理位于末端ID码之后的数据编码(第二数据编码或秘密数据编码)。因此执行这些步骤的处理的控制电路40等对应于权利要求中所记载的“解码单元”。
在步骤S1343,确定计数器Cnt的值是否大于“0”(零)。具体而言,当用于对公开数据编码的数量进行计数的计数器Cnt的值大于“0”(零)(步骤S1343为“是”)时,就表示读出的QR编码包含公开数据编码。因此,在随后的步骤S1345中,将在步骤S1311中所解码的公开数据输出到LCD46。
另一方面,当用于对公开数据编码的数量进行计数的计数器Cnt的值未大于“0”(零),或者说是等于“0”(零)(步骤S1343为“否”)时,则表示读出的QR编码不包含任何公开数据编码。在该情况下,跳过随后的步骤S1345的输出处理,并且控制进行到步骤S1347。
在步骤S1347,将公开数据和秘密数据输出到主机HST。具体而言,当读出的QR编码中存在公开数据编码时,对该公开数据编码进行解码,并输出到主机HST。当读出的QR编码中存在秘密数据编码时,对该秘密数据编码进行解码并输出到主机HST。在主机HST没有连接到QR编码读取器20的情况下,在步骤S1347中不必执行输出处理,并且控制进行到步骤S1349。
在随后的步骤S1349,蜂鸣器44发声以及LED 43被点亮。具体而言,通知操作QR编码读取器20的操作员已经对读出的QR编码中包含的公开数据编码和秘密数据编码进行了解码。在当前实施例中,即使当在步骤S1331确定编码密钥不匹配(步骤S1331为“否”)时,也会通过蜂鸣器44和LED 43通知操作员QR编码已由QR编码读取器20解码。一旦完成了步骤S1349的处理,二级解码处理结束,或图6的步骤S1300结束。因此,主解码处理和二级解码处理的序列结束。
这样,即使当解码密钥不是能解码的密钥时,也能通知操作员完成了读取。换而言之,确保操作员几乎不会注意到QR编码中包含有不能解码的秘密数据的事实。同样,操作员不需要进行重复读取由于编码密钥不匹配而不能被解码的QR编码的无用操作。因此,不可能无意地促使操作员尝试对QR编码进行解密。作为结果,能提高安全性和操作性。
如上所述,在根据本发明的第九实施例的QR编码读取器20中,在步骤S1314确定在末端ID码之前是否存在公开数据编码(第一数据编码)。然后,在步骤S1319确定在秘密ID码之后是否存在秘密数据编码(第二数据编码)。当在步骤S1314确定不存在公开数据编码(步骤S1314为“否”)以及在步骤S1319确定存在秘密数据编码(步骤S1319为“是”)时,在步骤S1321至S1341对秘密数据编码进行解码。
因此,在原本应位于数据区域中的公开数据编码不存在并且在末端ID码之后、原本应该只有填充码的编码区域(编码区域的空闲部分)中存在秘密数据编码的情况下,能够对这些秘密数据编码进行解码。具体而言,能够对应该放置码字的编码区域的空闲部分中所存在的数据编码进行解码。换而言之,能够对这种QR编码Q进行解码:在该QR编码Q中,末端ID码在编码区域中位于初始部分,并且秘密数据编码位于末端ID码之后。
更具体而言,能够对由本发明第八实施例的QR编码打印机10打印的QR编码Q进行解码,在该QR编码Q中,末端ID码位于编码区域的初始部分(应该放置在编码区域中的数据编码的头部),并且秘密数据编码位于末端ID码之后。
在上述解码处理中,已配置为,在步骤S1327获取第n个解码密钥检测数据。作为替换方案,如参考第八实施例中图21D所述,当将解码密钥本身添加到秘密数据编码中时,在步骤S1327获取第n个解码密钥。因此,即使当QR编码读取器20不具有秘密数据编码的解码密钥(能实现解码的密钥)时,也能够对秘密数据编码进行解码以恢复原始明文。在该情况下,执行“获取第n个解码密钥”的处理的控制电路40等对应于权利要求中所记载的“密钥分离单元”。
当用不同的加密密钥对秘密数据编码进行加密时,能够确保添加到每个秘密数据编码的解码密钥,以便在步骤S 1327中获取第n个解码密钥。因此,即使当QR编码读取器20不具有秘密数据编码的解码密钥时,也能够对秘密数据编码进行解码并能恢复原始明文。
而且,在上述解码处理中,在步骤S1327中获取第n个解码密钥检测数据。如参考第八实施例的图21D所述,可能存在以下情况:例如,将作为位置信息的“开始位置”添加到秘密数据编码中。在该情况下,可以在步骤S1329从秘密数据编码中分离出“开始位置”,并且可以基于所分离的“开始位置”,在数据记录中放置具有已解码的秘密数据编码的秘密数据以便具有在编码之前的位置关系。因此,即使当编码为码字之前的数据在数据记录中的位置关系中无序地放置时,也能够根据位置信息将解码数据放置在数据记录中以便具有编码之前的位置关系。
在上述解码处理中,在步骤S1314确定公开数据编码的存在。如果存在公开数据编码(步骤S1314为“是”),则跳过在步骤S1315至S1341关于秘密数据编码的处理,并在步骤S1345显示经过解码的公开数据。作为替换方案,不执行步骤S1314中的确定处理,控制直接从步骤S1305进行到步骤S1315。因此,即使当存在公开数据时,也执行在步骤S1315至S1341中的关于秘密数据编码的处理。因此,当QR编码Q包含公开数据编码和秘密数据编码时,能够对这两种数据编码进行解码。
在不背离本发明的精神的情况下本发明能体现为许多其他形式。至今所述的实施例和修改只用于解释而不是限制性的,因为本发明的范围由附录的权利要求而不是前面的说明书定义。落入权利要求边界和范围内的所有改变或该边界和范围的等价物因此都包括在权利要求的范围内。

Claims (67)

1、一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述方法包括如下步骤:
第一,在所述编码区域中映射第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并表示要公开的数据;
向由所述第一类型的数据编码所组成的码串的末端添加末端标识码,所述末端标识码表示所述末端;
第二,在所述编码区域中的所述末端标识码之后,映射第二类型的数据编码,所述第二类型的数据编码被编码为所述码字并表示要保密的数据;以及
第三,当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,在所述第二类型的数据编码之后映射表示没有数据的填充码,以填充所述编码区域。
2、根据权利要求1的方法,包括步骤:确定是否应该在所述编码区域中映射所述第二类型的数据编码。
3、根据权利要求2的方法,包括步骤:在所述末端标识码与所述第二类型的数据编码之间映射秘密标识码,以表示所述秘密标识码后面的数据编码是所述第二类型的数据编码。
4、根据权利要求3的方法,其中,所述第二映射步骤包括步骤:对所述第二类型的数据编码进行加密。
5、根据权利要求4的方法,其中,所述第二类型的数据编码包括指定用以对所述加密的第二类型的数据编码进行解密的密钥的信息。
6、根据权利要求4的方法,其中,所述第二类型的数据编码包括用以对所述加密的第二类型的数据编码进行解密的密钥。
7、根据权利要求4的方法,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括指定用以对每个加密的数据编码进行解密的密钥的信息。
8、根据权利要求4的方法,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括用以对每个加密的数据编码进行解密的密钥。
9、根据权利要求1的方法,其中,当所述要公开的数据和所述要保密的数据在被编码为所述码字之前在位置上进行混合以便在数据记录中交替出现时,所述第二类型的数据编码包括表示所述数据记录中的位置关系的信息。
10、一种用于读取二维编码的装置,所述二维编码具有编码区域,在所述编码区域中映射了被编码为表示数据的码字的数据编码,其中,末端标识码被添加到由所述映射的数据编码所组成的码串的末端,所述末端标识码表示所述码串的末端,并且当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,在所述码串之后映射表示没有数据的填充码,以填充所述编码区域,所述装置包括:
第一解码单元,用于对第一类型的数据编码进行解码,所述第一类型的数据编码是在所述末端标识码之前映射的数据编码;
数据编码确定单元,用于确定在所述末端标识码之后是否映射了第二类型的数据编码;以及
第二解码单元,用于当所述数据编码确定单元确定映射了所述第二类型的数据编码时,对所述第二类型的数据编码进行解码。
11、根据权利要求10的装置,其中,所述二维编码具有在所述编码区域中的所述末端标识码与所述第二类型的数据编码之间映射的秘密标识码,以表示在所述编码区域中,所述第二类型的数据编码是要保密的数据编码并且被编码为所述码字,
所述装置包括:
标识码确定单元,用于确定是否映射了所述秘密标识码;以及
信息输出单元,用于当所述标识码确定单元确定映射了所述秘密标识码时,输出表示所述第二类型的数据编码是所述要保密的数据编码的信息。
12、根据权利要求10的装置,其中,所述第二类型的数据编码被加密,
所述装置包括解密单元,用于使用用以对所述第二类型的数据编码进行解密的密钥来解密所述第二类型的数据编码。
13、根据权利要求12的装置,包括所述的用以对所述第二类型的数据编码进行解密的密钥。
14、根据权利要求12的装置,其中,用以指定所述密钥的信息被添加到所述第二类型的数据编码中,
所述装置包括:
密钥确定单元,用于基于所述信息确定所述装置所拥有的密钥是否对应于用以对所述第二类型的数据编码进行解密的密钥;以及
允许单元,用于仅当所述密钥确定单元确定所述装置所拥有的密钥对应于用以对所述第二类型的数据进行解密的密钥时,才允许所述解密单元对所述第二类型的数据编码进行解密。
15、根据权利要求14的装置,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括指定用以对每个加密的数据编码进行解密的密钥的信息,并且所述密钥确定单元用于基于所述信息确定所述装置所拥有的密钥是否对应于用以对所述第二类型的数据编码进行解密的密钥。
16、根据权利要求12的装置,其中,所述密钥被添加到所述第二类型的数据编码中,
所述装置包括:
密钥分离单元,用于从所述第二类型的数据编码中分离出所述密钥,所述分离的密钥被提供给所述解密单元,以使用所述分离的密钥对所述第二类型的数据编码进行解密。
17、根据权利要求16的装置,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括用以对每个加密的数据编码进行解密的密钥,并且
所述密钥分离单元用于从每个所述第二类型的数据编码中分离出所述密钥。
18、根据权利要求10的装置,其中,所述第二类型的数据编码包括用于表示数据记录中位置关系的信息,在所述数据记录中,所述要公开的数据和所述要保密的数据在被编码为所述码字之前在位置上进行混合以交替出现,
所述装置包括:
信息分离单元,用于从所述第二类型的数据编码中分离出所述位置信息;以及
数据映射单元,用于基于由所述信息分离单元所分离的所述位置信息,将由所述第二解码单元所解码的所述第二类型的数据编码映射到所述数据记录中。
19、一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述方法包括如下步骤:
第一,在所述编码区域中映射第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并表示要公开的数据;
当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,i)添加末端标识码到由所述第一类型的数据编码所组成的码串的末端,所述末端标识码表示所述末端,或者ii)添加末端标识信息到所述码串的预定位置,所述末端标识信息指定所述码串的末端位置;以及
第二,i)在所述编码区域中的所述末端标识码之后映射第二类型的数据编码,或者ii)在由所述末端标识信息所指定的所述码串的末端位置之后映射所述第二类型的数据编码,其中,所述第二类型的数据编码被编码为码字并表示要保密的数据。
20、根据权利要求19所述的方法,其中,所述末端标识码被添加到所述码串的末端,
所述方法包括步骤:在所述末端标识码与所述第二类型的数据编码之间映射秘密标识码,以表示所述秘密标识码后面的数据编码是所述第二类型的数据编码。
21、根据权利要求20的方法,其中,所述第二映射步骤包括步骤:对所述第二类型的数据编码进行加密。
22、根据权利要求21的方法,其中,所述第二类型的数据编码包括指定用以对所述加密的第二类型的数据编码进行解密的密钥的信息。
23、根据权利要求21的方法,其中,所述第二类型的数据编码包括用以对所述加密的第二类型的数据编码进行解密的密钥。
24、根据权利要求21的方法,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括指定用以对每个加密的数据编码进行解密的密钥的信息。
25、根据权利要求21的方法,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括用以对每个加密的数据编码进行解密的密钥。
26、根据权利要求19的方法,其中,当所述要公开的数据和所述要保密的数据在被编码为所述码字之前在位置上进行混合以便在数据记录中交替出现时,所述第二类型的数据编码包括表示所述数据记录中的位置关系的信息。
27、一种用于读取二维编码的装置,所述二维编码具有编码区域,在所述编码区域中映射了被编码为表示数据的码字的数据编码,其中,当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,末端标识码被添加到由所述映射的数据编码所组成的码串的末端,所述末端标识码表示所述码串的末端,或者指定所述码串的末端位置的末端标识信息被添加到所述码串中的预定位置,所述装置包括:
第一解码单元,用于对第一类型的数据编码进行解码,所述第一类型的数据编码是在所述末端标识码之前或所述末端标识信息所指定的末端位置之前映射的数据编码;
数据编码确定单元,用于确定在所述末端标识码或所述末端位置之后是否映射了第二类型的数据编码;以及
第二解码单元,用于当所述数据编码确定单元确定映射了所述第二类型的数据编码时,对所述第二类型的数据编码进行解码。
28、根据权利要求27的装置,其中,在所述末端标识码被添加到所述码串的末端的情况下,所述二维编码具有在所述编码区域中的所述末端标识码与所述第二类型的数据编码之间映射的秘密标识码,以表示所述第二类型的数据编码是要保密的数据编码并且被编码为码字,
所述装置包括:
标识码确定单元,用于确定是否映射了所述秘密标识码;以及
信息输出单元,用于当所述标识码确定单元确定映射了所述秘密标识码时,输出表示所述第二类型的数据编码是要保密的数据编码的信息。
29、根据权利要求27的装置,其中,所述第二类型的数据编码被加密,
所述装置包括解密单元,用于使用用以对所述第二类型的数据编码进行解密的密钥来解密所述第二类型的数据编码。
30、根据权利要求29的装置,包括所述的用以对所述第二类型的数据编码进行解密的密钥。
31、根据权利要求29的装置,其中,用以指定所述密钥的信息被添加到所述第二类型的数据编码中,
所述装置包括:
密钥确定单元,用于基于所述信息确定所述装置所拥有的密钥是否对应于用以对所述第二类型的数据编码进行解密的密钥,以及
允许单元,用于仅当所述密钥确定单元确定所述装置所拥有的密钥对应于用以对所述第二类型的数据进行解密的密钥时,才允许所述解密单元对所述第二类型的数据编码进行解密。
32、根据权利要求31的装置,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括指定用以对每个加密的数据编码进行解密的密钥的信息,并且所述密钥确定单元用于基于所述信息确定所述装置所拥有的密钥是否对应于用以对所述第二类型的数据编码进行解密的密钥。
33、根据权利要求29的装置,其中,所述密钥被添加到所述第二类型的数据编码中,
所述装置包括:
密钥分离单元,用于从所述第二类型的数据编码中分离出所述密钥,所述分离的密钥被提供给所述解密单元,以使用所述分离的密钥对所述第二类型的数据编码进行解密。
34、根据权利要求33的装置,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括用以对每个加密的数据编码进行解密的密钥,并且
所述密钥分离单元用于从每个所述第二类型的数据编码中分离出所述密钥。
35、根据权利要求27的装置,其中,所述第二类型的数据编码包括用于表示数据记录中位置关系的信息,在所述数据记录中,所述要公开的数据和所述要保密的数据在被编码为所述码字之前在位置上进行混合以交替出现,
所述装置包括:
信息分离单元,用于从所述第二类型的数据编码中分离出所述位置信息;以及
数据映射单元,用于基于由所述信息分离单元所分离的所述位置信息,将由所述第二解码单元所解码的所述第二类型的数据编码映射到所述数据记录中。
36、一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述方法包括如下步骤:
第一,在所述编码区域中映射第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并表示要公开的数据;
当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,i)添加末端标识码到由所述第一类型的数据编码所组成的码串的末端,所述末端标识码表示所述末端,或者ii)添加末端标识信息到所述码串的预定位置,所述末端标识信息指定所述码串的末端位置;以及
第二,i)在所述编码区域中的所述末端标识码之后映射第二类型的数据编码,或者ii)在由所述末端标识信息所指定的所述码串的末端位置之后映射所述第二类型的数据编码,其中,所述第二类型的数据编码被编码为所述码字,受到了预定的处理,并表示要保密的数据。
37、根据权利要求36的方法,其中,将所述末端标识码添加到所述码串的末端,
所述方法包括步骤:在所述末端标识码与所述第二类型的数据编码之间映射秘密标识码,以表示所述秘密标识码后面的数据编码是所述第二类型的数据编码。
38、根据权利要求36的方法,其中,所述预定的处理是以下之中的一种:构成所述第二类型的数据编码的比特排列的变化、所述比特的排列的分配、以及对所述比特所指定的数据值的转换。
39、根据权利要求38的方法,其中,所述比特排列的变化或者所述比特的排列的分配取决于所述第一类型的数据编码的内容。
40、根据权利要求39的方法,其中,所述二维编码包括其内在信息,并且
所述比特排列的变化或者所述比特的排列的分配取决于所述内在信息的内容。
41、根据权利要求38的方法,其中,使用预定的转换表或预定的转换公式来执行对所述数据值的转换。
42、根据权利要求36的方法,其中,当所述要公开的数据和所述要保密的数据在被编码为所述码字之前在位置上进行混合以便在数据记录中交替出现时,所述第二类型的数据编码包括表示所述数据记录中的位置关系的信息。
43、一种用于读取二维编码的装置,所述二维编码具有编码区域,在所述编码区域中映射了被编码为表示数据的码字的数据编码,其中,当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,将末端标识码添加到由所述映射的数据编码所组成的码串的末端,所述末端标识码表示所述码串的末端,或者将指定所述码串的末端位置的末端标识信息添加到所述码串中的预定位置,所述装置包括:
第一解码单元,用于对第一类型的数据编码进行解码,所述第一类型的数据编码是在所述末端标识码之前或所述末端标识信息所指定的末端位置之前映射的数据编码;
数据编码确定单元,用于确定在所述末端标识码或所述末端位置之后是否映射了第二类型的数据编码;
提取单元,用于当所述数据编码确定单元确定存在所述第二类型的数据编码时,使用预定的提取处理提取所述第二类型的数据编码;以及
第二解码单元,用于对由所述提取单元所提取的所述第二类型的数据编码进行解码。
44、根据权利要求43的装置,其中,在将所述末端标识码添加到所述码串的末端的情况下,所述二维编码具有在所述编码区域中的所述末端标识码与所述第二类型的数据编码之间映射的秘密标识码,以表示所述第二类型的数据编码是要保密的数据编码并且被编码为所述码字,
所述装置包括:
标识码确定单元,用于确定是否映射了所述秘密标识码;以及
信息输出单元,用于当所述标识码确定单元确定映射了所述秘密标识码时,输出表示所述第二类型的数据编码是所述要保密的数据编码的信息。
45、根据权利要求43的装置,其中,所述第二类型的数据编码受到以下处理之一:构成所述第二类型的数据编码的比特排列的变化、或者所述比特的排列的分配,并且
所述预定的提取处理是基于所述第一类型的数据编码的内容的处理,其使经过排列变化的比特或者经过排列分配的比特恢复到其原始的比特位置。
46、根据权利要求43的装置,其中,所述第二类型的数据编码受到以下处理之一:构成所述第二类型的数据编码的比特排列的变化、或者所述比特的排列的分配;并且
所述预定的提取处理是使用信息的处理,其使用所述二维编码内在的信息来使经过排列变化的比特或者经过排列分配的比特恢复到其原始的比特位置。
47、根据权利要求43的装置,其中,所述第二类型的数据编码受到对由构成所述第二类型的数据编码的比特所指定的数据值进行转换的处理,并且
所述预定的提取处理是基于预定的转换表或预定的转换公式提取所述第二类型的数据编码的处理。
48、根据权利要求43的装置,包括允许单元,用于允许用户选择性地无效所述第一和第二解码单元。
49、一种用于产生二维编码的方法,所述二维编码具有编码区域,在所述编码区域中映射了被编码为码字的数据编码,所述数据编码包括要公开的第一类型的数据编码和要保密的第二类型的数据编码,所述方法包括以下步骤:
在所述编码区域的开始位置处放置末端标识码,所述末端标识码表示由要公开的第一类型的数据编码所组成的码串的末端;
在所述编码区域中的所述末端标识码之后映射所述第二类型的数据编码;以及
当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,在所述第二类型的数据编码之后映射填充码以填充所述编码区域,所述填充码是除了数据之外的填充物。
50、根据权利要求49的方法,包括步骤:在所述末端标识码与所述第二类型的数据编码之间映射秘密标识码,以表示所述秘密标识码后面的数据编码是所述第二类型的数据编码。
51、根据权利要求50的方法,其中,所述数据编码映射步骤包括步骤:对所述第二类型的数据编码进行加密。
52、根据权利要求51的方法,其中,所述第二类型的数据编码包括指定用以对所述加密的第二类型的数据编码进行解密的密钥的信息。
53、根据权利要求51的方法,其中,所述第二类型的数据编码包括用以对所述加密的第二类型的数据编码进行解密的密钥。
54、根据权利要求51的方法,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括指定用以对每个加密的数据编码进行解密的密钥的信息。
55、根据权利要求51的方法,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括用以对每个加密的数据编码进行解密的密钥。
56、一种用于读取二维编码的装置,所述二维编码具有编码区域,在所述编码区域中映射了被编码为表示数据的码字的数据编码,所述数据编码包括要公开的第一类型的数据编码和要保密的第二类型的数据编码,其中,当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,将表示由所述映射的数据编码所组成的码串的末端的末端标识码放置在所述编码区域中,并且映射表示没有数据的填充码以填充所述编码区域,所述装置包括:
第一确定单元,用于确定在所述编码区域中的所述末端标识码之前是否存在所述第一类型的数据编码;
第二确定单元,用于确定在所述编码区域中的所述末端标识码之后是否存在所述第二类型的数据编码;
解码单元,用于当所述第一确定单元确定在所述编码区域中不存在所述第一类型的数据编码并且所述第二确定单元确定在所述编码区域中存在所述第二类型的数据编码时,对所述第二类型的数据编码进行解码。
57、根据权利要求56的装置,其中,所述二维编码具有在所述数据区域中的所述末端标识码与所述第二类型的数据编码之间映射的秘密标识码,以表示所述第二类型的数据编码是要保密的数据编码并且被编码为所述码字,
所述装置包括:
标识码确定单元,用于确定是否映射了所述秘密标识码;以及
信息输出单元,用于当所述标识码确定单元确定映射了所述秘密标识码时,输出表示所述第二类型的数据编码是要保密的数据编码的信息。
58、根据权利要求57的装置,其中,所述第二类型的数据编码被加密,
所述装置包括解密单元,用于使用用以对所述第二类型的数据编码进行解密的密钥来解密所述第二类型的数据编码。
59、根据权利要求58的装置,包括所述的用以对所述第二类型的数据编码进行解密的密钥。
60、根据权利要求58的装置,其中,用以指定所述密钥的信息被添加到所述第二类型的数据编码中,
所述装置包括:
密钥确定单元,用于基于所述信息确定所述装置所拥有的密钥是否对应于用以对所述第二类型的数据编码进行解密的密钥;以及
允许单元,用于仅当所述密钥确定单元确定所述装置所拥有的密钥对应于用以对所述第二类型的数据进行解密的密钥时,才允许所述解密单元对所述第二类型的数据编码进行解密。
61、根据权利要求60的装置,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括指定用以对每个加密的数据编码进行解密的密钥的信息,并且所述密钥确定单元用于基于所述信息确定所述装置所拥有的密钥是否对应于用以对所述第二类型的数据编码进行解密的密钥。
62、根据权利要求60的装置,包括通知单元,用于当所述密钥确定单元确定所述装置所拥有的密钥不对应于用以对所述第二类型的数据编码进行解密的密钥时,通知操作者完成了对所述二维编码的读取。
63、根据权利要求58的装置,其中,所述密钥被添加到所述第二类型的数据编码中,
所述装置包括:
密钥分离单元,用于从所述第二类型的数据编码中分离出所述密钥,所述分离的密钥被提供给所述解密单元,以使用所述分离的密钥对所述第二类型的数据编码进行解密。
64、根据权利要求63的装置,其中,所述第二类型的数据编码由以不同密钥逐个编码地进行加密的多个数据编码组成,并且每个加密的数据编码包括用以对每个加密的数据编码进行解密的密钥,并且
所述密钥分离单元用于从每个所述第二类型的数据编码中分离出所述密钥。
65、一种具有编码区域的二维编码,在所述编码区域中映射了被编码为码字的数据编码,其中
在所述编码区域中映射了第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并且表示要公开的数据;
将末端标识码添加到由所述第一类型的数据编码所组成的码串的末端,所述末端标识码表示所述末端;
在所述编码区域中的所述末端标识码之后映射了第二类型的数据编码,所述第二类型的数据编码被编码为所述码字并且表示要保密的数据;以及
当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,在所述第二类型的数据编码之后映射表示没有数据的填充码以填充所述编码区域。
66、根据权利要求65的二维编码,其中,所述二维编码被打印,或者被显示在显示单元上。
67、一种具有编码区域的二维编码,在所述编码区域中映射了被编码为码字的数据编码,其中
在所述编码区域中映射了第一类型的数据编码,所述第一类型的数据编码被编码为所述码字并且表示要公开的数据;
当所述编码区域中的所述码字的总数量小于所述编码区域的容量时,将末端标识码添加到由所述第一类型的数据编码所组成的码串的末端,所述末端标识码表示所述末端,或者将末端标识信息添加到所述码串中的预定位置,所述末端标识信息指定所述码串的末端位置;并且
i)在所述编码区域中的所述末端标识码之后映射第二类型的数据编码,或者ii)在由所述末端标识信息所指定的所述码串的末端位置之后映射所述第二类型的数据编码,其中,所述第二类型的数据编码被编码为码字并且表示要保密的数据。
CN200810144647.6A 2007-05-29 2008-05-29 产生二维编码的方法和读取二维编码的读取器 Active CN101320436B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2007142239 2007-05-29
JP142239/2007 2007-05-29
JP142240/2007 2007-05-29
JP2007142240A JP4924206B2 (ja) 2007-05-29 2007-05-29 二次元コードの生成方法およびその読取装置
JP2008041448A JP4924468B2 (ja) 2007-05-29 2008-02-22 二次元コードの生成方法およびその読取装置
JP041448/2008 2008-02-22

Publications (2)

Publication Number Publication Date
CN101320436A true CN101320436A (zh) 2008-12-10
CN101320436B CN101320436B (zh) 2012-12-05

Family

ID=40180475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810144647.6A Active CN101320436B (zh) 2007-05-29 2008-05-29 产生二维编码的方法和读取二维编码的读取器

Country Status (2)

Country Link
JP (3) JP4924468B2 (zh)
CN (1) CN101320436B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103832090A (zh) * 2014-02-25 2014-06-04 上海天臣防伪技术股份有限公司 烫印二维码或图案标识的方法
CN104732137A (zh) * 2015-04-17 2015-06-24 南开大学 一种基于Android的多模式AES加密QR码的识别方法
CN105956861A (zh) * 2015-03-09 2016-09-21 电装波动株式会社 信息码读取系统
CN105976005A (zh) * 2016-04-26 2016-09-28 鸿博股份有限公司 二维码加密方法、二维码生成设备和二维码扫描设备
CN106066985A (zh) * 2016-07-11 2016-11-02 深圳市兴通物联科技有限公司 激光条码扫描器硬件电路
CN108921261A (zh) * 2018-04-17 2018-11-30 新大陆(福建)公共服务有限公司 一种安全二维码生成方法以及解析方法
CN110197244A (zh) * 2018-02-26 2019-09-03 Opto电子有限公司 二维码、二维码输出系统和方法、二维码读取系统和方法
CN110197243A (zh) * 2018-02-26 2019-09-03 Opto电子有限公司 二维码、二维码输出系统和方法、二维码读取系统和方法
CN110277069A (zh) * 2019-06-27 2019-09-24 青岛海信电器股份有限公司 一种电视屏幕背光控制方法、装置及电视

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5083344B2 (ja) * 2009-03-19 2012-11-28 株式会社デンソーウェーブ 携帯端末を用いた機密データ表示及び読取システム
JP5321507B2 (ja) * 2010-03-09 2013-10-23 株式会社デンソーウェーブ 読取装置及び読取システム
SG181277A1 (en) 2010-11-30 2012-06-28 Denso Wave Inc System for reading information code and medium on which information code is formed
JP5790068B2 (ja) * 2010-11-30 2015-10-07 株式会社デンソーウェーブ 情報コード読取システム及び情報コード読取装置
CN102708345B (zh) 2010-11-30 2018-05-25 电装波动株式会社 信息代码读取系统、信息代码读取装置及信息代码形成介质
JP5969176B2 (ja) * 2011-06-15 2016-08-17 株式会社デンソーウェーブ 情報コード読取システム
JP5783027B2 (ja) * 2011-12-15 2015-09-24 株式会社デンソーウェーブ 会員管理システム
JP2014030320A (ja) * 2012-07-31 2014-02-13 Denso Wave Inc 車両充電システム及び車両充電装置
JP6061075B2 (ja) * 2012-10-23 2017-01-18 株式会社テララコード研究所 二次元コード、二次元コードの生成方法、及び二次元コードの読取方法
JP6078878B2 (ja) * 2013-04-09 2017-02-15 国立大学法人 鹿児島大学 2次元コード
JP5844306B2 (ja) * 2013-04-30 2016-01-13 京セラドキュメントソリューションズ株式会社 画像形成装置、画像形成装置の制御プログラム、及び画像形成方法
JP6136688B2 (ja) * 2013-07-17 2017-05-31 株式会社デンソーウェーブ 情報コード利用システム、及び情報コード読取装置
EP3065088B1 (en) 2013-10-30 2021-03-24 NISHIZAKI, Tsutao 2d-code generation method, 2d-code generation device, 2d-code reading method, 2d-code reading device, 2d code, and program
JP6171855B2 (ja) * 2013-10-31 2017-08-02 株式会社デンソーウェーブ 情報コードおよび情報コード読取装置
JP5810179B2 (ja) * 2014-01-21 2015-11-11 株式会社トッパンTdkレーベル 二次元コード生成方法、二次元コード生成装置、プログラム、二次元コード読み取り方法、および、二次元コード読み取り装置
JP2015194811A (ja) * 2014-03-31 2015-11-05 株式会社デンソーウェーブ 情報コードおよび情報コード読取装置ならびに情報コード読取システム
JP5914579B2 (ja) * 2014-06-16 2016-05-11 株式会社トッパンTdkレーベル 秘匿対象情報の隠蔽方法、秘匿対象情報隠蔽装置、プログラム、秘匿対象情報の抽出方法、および、秘匿対象情報抽出装置
JP6519356B2 (ja) 2015-06-30 2019-05-29 株式会社リコー 情報処理プログラム、情報処理装置および情報処理方法
JP6041025B2 (ja) * 2015-08-20 2016-12-07 株式会社デンソーウェーブ 情報コード読取システム
CN105615470A (zh) * 2015-12-15 2016-06-01 宁波市铭时三维科技发展有限公司 含有二维码的水分子结构科普茶壶
JP2020086893A (ja) * 2018-11-26 2020-06-04 合同会社Ark 二次元コード評価システム及び方法
EP3684004A1 (en) * 2019-01-21 2020-07-22 Ngrave bvba Offline interception-free interaction with a cryptocurrency network using a network-disabled device
JP7488460B2 (ja) 2020-07-10 2024-05-22 株式会社デンソーウェーブ 二次元コードの生成方法、二次元コード及び二次元コード読取装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094510A (ja) * 2002-08-30 2004-03-25 Inst Of Physical & Chemical Res 商品流通における虚偽表示防止方法及びこれに用いる改ざん防止機能付きラベル書込装置
JP2004147006A (ja) * 2002-10-23 2004-05-20 Sharp Corp 情報送信方法及び携帯端末
JP2005165565A (ja) * 2003-12-01 2005-06-23 Kenpakku:Kk カラーコードシンボル及びカラーコードシンボル生成方法並びに、カラーコードシンボルを生成する記憶媒体。
JP2006166388A (ja) * 2004-12-06 2006-06-22 Masayuki Tonai 空白となるビット列の前方配置による境界相殺方法
CN100433053C (zh) * 2005-08-26 2008-11-12 毛山 基于二维条码传输信息的方法及其编码装置、解码装置
JP3953501B1 (ja) * 2006-03-03 2007-08-08 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、2次元コード生成システム、画像生成システム及び2次元コード

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103832090A (zh) * 2014-02-25 2014-06-04 上海天臣防伪技术股份有限公司 烫印二维码或图案标识的方法
CN105956861A (zh) * 2015-03-09 2016-09-21 电装波动株式会社 信息码读取系统
CN104732137A (zh) * 2015-04-17 2015-06-24 南开大学 一种基于Android的多模式AES加密QR码的识别方法
CN105976005A (zh) * 2016-04-26 2016-09-28 鸿博股份有限公司 二维码加密方法、二维码生成设备和二维码扫描设备
CN106066985A (zh) * 2016-07-11 2016-11-02 深圳市兴通物联科技有限公司 激光条码扫描器硬件电路
CN110197244A (zh) * 2018-02-26 2019-09-03 Opto电子有限公司 二维码、二维码输出系统和方法、二维码读取系统和方法
CN110197243A (zh) * 2018-02-26 2019-09-03 Opto电子有限公司 二维码、二维码输出系统和方法、二维码读取系统和方法
CN108921261A (zh) * 2018-04-17 2018-11-30 新大陆(福建)公共服务有限公司 一种安全二维码生成方法以及解析方法
CN110277069A (zh) * 2019-06-27 2019-09-24 青岛海信电器股份有限公司 一种电视屏幕背光控制方法、装置及电视

Also Published As

Publication number Publication date
JP4924468B2 (ja) 2012-04-25
JP2012089179A (ja) 2012-05-10
JP5206888B2 (ja) 2013-06-12
JP2009009547A (ja) 2009-01-15
CN101320436B (zh) 2012-12-05
JP5206887B2 (ja) 2013-06-12
JP2012089178A (ja) 2012-05-10

Similar Documents

Publication Publication Date Title
CN101320436B (zh) 产生二维编码的方法和读取二维编码的读取器
US8879737B2 (en) Method for producing two-dimensional code and reader for reading the two-dimensional code
JP4924206B2 (ja) 二次元コードの生成方法およびその読取装置
JP4951627B2 (ja) 小型品に符号マークを付ける方法とこの方法により製造された製品
US10749682B2 (en) Anti-counterfeit method
CN105825257A (zh) 基于二维条码的信息隐藏与隐藏信息提取方法及系统
CN108868367B (zh) 智能锁装置
US20120280029A1 (en) Incremental information object with an embedded information region
JP2022091746A (ja) フォレンジック暗号化方法及びシステム
JP2012181645A (ja) 認証サーバ、認証プログラムおよび認証システム
JP2009031969A (ja) 配送管理システム
JP4951743B2 (ja) 光学的情報読取装置および光学的情報読取システム
JP2006508602A (ja) 画像暗号システムにおける鍵同期化
EP2000950B1 (en) Method for producing two-dimensional code and reader for reading the two-dimensional code
CN102799917A (zh) 利用网屏编码控制方法的计算机随机彩色图形防伪方法
JP2012089177A (ja) 二次元コードを生成するプログラム及び二次元コード
JP6136688B2 (ja) 情報コード利用システム、及び情報コード読取装置
KR20120134822A (ko) 2차원바코드를 이용한 사용자 인증 시스템 및 방법
US8915450B2 (en) Dual deterent incremental information object
JP2008312001A (ja) 秘匿データ生成読取システム及び秘匿データ生成読取方法
CN110084933B (zh) 一种隐写密码锁
JP2020086893A (ja) 二次元コード評価システム及び方法
JP2020144796A (ja) 光学コード、光学コード生成方法とそのプログラム、並びに、光学コード読み取り方法とそのプログラム
JP2009187260A (ja) デジタルペンシステム
JP7488460B2 (ja) 二次元コードの生成方法、二次元コード及び二次元コード読取装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant