專利名稱:產(chǎn)生二維編碼的方法和讀取二維編碼的讀取器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種產(chǎn)生二維編碼的方法,該二維編碼包含需要隱藏或保 密的數(shù)據(jù)(下文稱為"秘密數(shù)據(jù)"或"要保持秘密的數(shù)據(jù)"),以及一種讀取 二維編碼的讀取器。
背景技術(shù):
產(chǎn)生并讀取包含秘密數(shù)據(jù)的二維編碼的技術(shù)是已知的。例如,日本專
利公開(特開平)No.2004-147006公開了一種名為"信息傳送方法和移動(dòng)單 元"的發(fā)明。在該現(xiàn)有技術(shù)中,傳送方的移動(dòng)單元使用通過密鑰輸入設(shè)備 所輸入的加密密鑰來加密傳送數(shù)據(jù),將該加密數(shù)據(jù)轉(zhuǎn)換為用作二維編碼的 QR(快速響應(yīng))編碼,并在顯示器上顯示該QR編碼。
另一方面,接收方移動(dòng)單元通過相機(jī)讀取例如在傳送方移動(dòng)單元的顯 示器上顯示的QR編碼的圖像,并確定該QR編碼是否被加密。如果是,則 要求加密密鑰。然后,當(dāng)使用所輸入的加密密鑰解密該傳送數(shù)據(jù)以在顯示 器上顯示解密數(shù)據(jù)時(shí),對QR編碼進(jìn)行逆變換。
然而,根據(jù)日本專利公開(特開平)N0.2004-147006中公開的"信息傳送 方法和移動(dòng)單元",當(dāng)加密數(shù)據(jù)已被逆變換為QR編碼時(shí),在諸如移動(dòng)單元 的顯示器上所顯示的加密數(shù)據(jù)本身通常作為字符信息而言是沒有意義的, 或相反的,該信息可能對應(yīng)于影響屏幕顯示控制的控制碼。
如果顯示器上所顯示的信息沒有意義,則移動(dòng)單元的用戶例如會(huì)發(fā)生 猜疑。這將使得用戶可能不經(jīng)意地認(rèn)為該信息是加密的,并試圖解密該信 息,而引起安全問題。
此外,如果該信息對應(yīng)于控制碼,則可能導(dǎo)致屏幕顯示失真,并可能 導(dǎo)致其他系統(tǒng)問題
發(fā)明內(nèi)容
本發(fā)明是基于上述問題完成的,并且其目標(biāo)在于提供一種用于產(chǎn)生二 維編碼的方法,該方法不允許用戶使用通用閱讀器讀取所述編碼以認(rèn)知到 加密數(shù)據(jù)的存在。本發(fā)明的另一目標(biāo)在于提供一種用于讀取二維編碼的閱 讀器,其能夠?qū)ξ挥谟成溆写a字的編碼區(qū)域的空閑部分中的數(shù)據(jù)編碼進(jìn)行解碼。
為了實(shí)現(xiàn)上面的方法,作為一個(gè)方面,本發(fā)明提供了一種用于產(chǎn)生二 維編碼的方法,所述二維編碼具有編碼區(qū)域,在所述編碼區(qū)域中映射了被 編碼為碼字的數(shù)據(jù)編碼,所述方法包括如下步驟第一,在所述編碼區(qū)域 中映射第一類型的數(shù)據(jù)編碼,所述第一類型的數(shù)據(jù)編碼被編碼為所述碼字 并表示要公開的數(shù)據(jù);向由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末端, 添加末端標(biāo)識碼,所述末端標(biāo)識碼表示所述末端;第二,在所述編碼區(qū)域 中的所述末端標(biāo)識碼之后,映射第二類型的數(shù)據(jù)編碼,所述第二類型的數(shù) 據(jù)編碼被編碼為所述碼字并表示要保密的數(shù)據(jù),以及第三,當(dāng)所述編碼區(qū) 域中碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),在所述第二類型的數(shù)據(jù)編 碼之后映射表示沒有數(shù)據(jù)的填充碼,以填充所述編碼區(qū)域。
因此,被編碼為表示要保密的數(shù)據(jù)的碼字的秘密數(shù)據(jù)編碼位于末端 ID(標(biāo)識)編碼之后,取代部分或所有的填充編碼。 一般而言,二維編碼閱讀 器被配置為覆蓋了以下算法規(guī)范其中,通過讀取位于編碼區(qū)域中的從編 碼區(qū)域的頭部開始到表示碼串末端的末端ID碼為止的數(shù)據(jù)編碼,來對二維 編碼進(jìn)行解碼。因此,例如,不會(huì)讀取經(jīng)常位于末端ID碼之后的填充碼。 因此,在通用讀取器中不會(huì)讀取位于末端ID碼之后、取代部分或所有的填 充碼的數(shù)據(jù)編碼,即使是該數(shù)據(jù)編碼是可讀的碼字也是如此。因此,通過 將要保密的數(shù)據(jù)編碼(秘密數(shù)據(jù)編碼)放置在末端ID碼之后,可以避免讀取 該秘密數(shù)據(jù)編碼,雖然位于末端ID碼之前的數(shù)據(jù)編碼仍然會(huì)被讀取。因此, 使用通用讀取器讀取包含該秘密數(shù)據(jù)編碼的二維編碼不會(huì)使讀取器的用戶 注意到由秘密數(shù)據(jù)編碼保密的數(shù)據(jù)的存在。
本方法優(yōu)選包括步驟確定是否應(yīng)該在所述編碼區(qū)域中映射所述第二 類型數(shù)據(jù)編碼。在該情況下,同樣優(yōu)選的是,該方法包括步驟在所述末 端標(biāo)識碼與所述第二類型的數(shù)據(jù)編碼之間映射秘密標(biāo)識碼,以表示所述秘 密標(biāo)識碼后面的數(shù)據(jù)編碼是所述第二類型的數(shù)據(jù)編碼。例如,所述第二映射步驟包括步驟對所述第二類型的數(shù)據(jù)編碼進(jìn)行加密。
例如,所述第二類型的數(shù)據(jù)編碼包括指定用以對所述加密的第二類型 的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。作為替換方案,所述第二類型的數(shù)據(jù) 編碼包括用以對所述加密的第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
優(yōu)選的,所述第二類型的數(shù)據(jù)編碼由以不同密鑰逐個(gè)編碼地進(jìn)行加密 的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編碼包括指定用以對每個(gè)加密 的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。所述第二類型的數(shù)據(jù)編碼由以不同密 鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編碼包 括用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
例如,同樣優(yōu)選的是,當(dāng)所述要公開的數(shù)據(jù)和所述要保密的數(shù)據(jù)在被 編碼為所述碼字之前在位置上進(jìn)行混合以便在數(shù)據(jù)記錄中交替出現(xiàn)時(shí),所 述第二類型的數(shù)據(jù)編碼包括表示所述數(shù)據(jù)記錄中的位置關(guān)系的信息。
為了實(shí)現(xiàn)上面的讀取器,作為另一方面,本發(fā)明提供一種用于讀取二 維編碼的裝置,所述二維編碼具有編碼區(qū)域,在所述編碼區(qū)域中映射了被 編碼為表示數(shù)據(jù)的碼字的數(shù)據(jù)編碼,其中,將末端標(biāo)識碼添加到由所述映 射的數(shù)據(jù)編碼所組成的碼串的末端,所述末端標(biāo)識碼表示所述碼串的末端, 并且當(dāng)所述編碼區(qū)域中碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),在所述 碼串之后映射表示沒有數(shù)據(jù)的填充碼,以填充所述編碼區(qū)域,所述裝置包 括第一解碼單元,用于對第一類型的數(shù)據(jù)編碼進(jìn)行解碼,所述第一類型 的數(shù)據(jù)編碼是在所述末端標(biāo)識碼之前映射的數(shù)據(jù)編碼;數(shù)據(jù)編碼確定單元, 用于確定在所述末端標(biāo)識碼之后是否映射了所述第二類型的數(shù)據(jù)編碼;以
及第二解碼單元,用于當(dāng)所述數(shù)據(jù)編碼確定單元確定映射了所述第二類型 的數(shù)據(jù)編碼時(shí),對所述第二類型的數(shù)據(jù)編碼進(jìn)行解碼。
在該情況下,所述數(shù)據(jù)編碼確定單元確定在末端ID碼之后是否存在所 述第二數(shù)據(jù)編碼。如果確定在末端ID碼之后存在所述第二數(shù)據(jù)編碼,則第 一解碼單元對所述第一數(shù)據(jù)編碼進(jìn)行解碼,而第二解碼單元對所述第二數(shù) 據(jù)編碼進(jìn)行解碼。因此,在所述末端ID碼之后的、原本僅應(yīng)有填充碼的編 碼區(qū)域(編碼區(qū)域的空閑區(qū)域)中存在所述第二數(shù)據(jù)編碼的情況下,可以對所 述第二數(shù)據(jù)編碼進(jìn)行解碼。這樣,可以對應(yīng)該放置碼字的編碼區(qū)域的空閑 區(qū)域中的數(shù)據(jù)編碼進(jìn)行解碼。另一方面,本發(fā)明提供了一種用于產(chǎn)生二維編碼的方法,所述二維編 碼具有編碼區(qū)域,在所述編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼,所 述方法包括如下步驟第一,在所述編碼區(qū)域中映射第一類型的數(shù)據(jù)編碼, 所述第一類型的數(shù)據(jù)編碼被編碼為所述碼字并表示要公開的數(shù)據(jù);當(dāng)所述
編碼區(qū)域中碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),i)添加末端標(biāo)識碼到 由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末端,所述末端標(biāo)識碼表示所 述末端,或者ii)添加末端標(biāo)識信息到所述碼串的預(yù)定位置,所述末端標(biāo)識
信息指定所述碼串的末端位置;以及第二, i)在所述編碼區(qū)域的所述末端標(biāo) 識碼之后映射第二類型的數(shù)據(jù)編碼,或者ii)在由所述末端標(biāo)識信息所指定 的所述碼串的末端位置之后映射所述第二類型的數(shù)據(jù)編碼,其中,所述第 二類型的數(shù)據(jù)編碼被編碼為碼字并表示要保密的數(shù)據(jù)。
再另一方面,本發(fā)明提供一種用于產(chǎn)生二維編碼的方法,所述二維編 碼具有編碼區(qū)域,在所述編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼,所 述方法包括如下步驟第一,在所述編碼區(qū)域中映射第一類型的數(shù)據(jù)編碼, 所述第一類型的數(shù)據(jù)編碼被編碼為所述碼字并表示要公開的數(shù)據(jù);當(dāng)所述 編碼區(qū)域中碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),i)添加末端標(biāo)識碼 到由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末端,所述末端標(biāo)識碼表示 所述末端,或者ii)添加末端標(biāo)識信息到所述碼串的預(yù)定位置,所述末端標(biāo) 識信息指定所述碼串的末端位置;以及第二, i)在所述編碼區(qū)域的所述末端 標(biāo)識碼之后映射第二類型的數(shù)據(jù)編碼,或者ii)在由所述末端標(biāo)識信息所指 定的所述碼串的末端位置之后映射所述第二類型的數(shù)據(jù)編碼,其中,所述 第二類型的數(shù)據(jù)編碼被編碼為所述碼字,并受到了預(yù)定的處理。
另一方面,本發(fā)明提供一種用于產(chǎn)生二維編碼的方法,所述二維編碼 具有編碼區(qū)域,在所述編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼,所述 數(shù)據(jù)編碼包括要公開的第一類型的數(shù)據(jù)編碼和要保密的所述第二類型的數(shù) 據(jù)編碼,所述方法包括以下步驟在所述編碼區(qū)域的開始位置放置末端標(biāo) 識碼,所述末端標(biāo)識碼表示由要公開的第一類型的數(shù)據(jù)編碼所組成的碼串 的末端;在所述編碼區(qū)域中的所述末端標(biāo)識碼之后映射所述第二類型的數(shù) 據(jù)編碼;以及當(dāng)所述編碼區(qū)域中碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí), 在所述第二類型的數(shù)據(jù)編碼之后映射填充碼以填充所述編碼區(qū)域,所述填充碼是除了數(shù)據(jù)之外的填充物。
在附圖中-
圖1A是根據(jù)本發(fā)明的第一實(shí)施例,示出了 QR編碼打印機(jī)和連接到該 打印機(jī)的計(jì)算機(jī)的說明圖IB是根據(jù)第一實(shí)施例,示出了 QR編碼打印機(jī)的硬件配置的示例的 框圖2是根據(jù)第一實(shí)施例,示出了產(chǎn)生由QR編碼打印機(jī)所執(zhí)行的編碼產(chǎn) 生處理流程的流程圖3A至3F是示出了在圖2所示的編碼產(chǎn)生處理中受到信息處理的數(shù) 據(jù)和編碼的格式示例的說明圖4是示出了類型1的QR編碼的配置示例的說明圖5是根據(jù)本發(fā)明的第二實(shí)施例,示出了 QR編碼讀取器的硬件配置的 示例的框圖6是根據(jù)第二實(shí)施例,示出了由QR編碼讀取器的控制電路所執(zhí)行的 主解碼處理流程的流程圖7是示出了圖6的二級解碼處理流程的流程圖8是根據(jù)本發(fā)明的第三實(shí)施例,示出了由QR編碼打印機(jī)所執(zhí)行的編 碼產(chǎn)生處理流程的流程圖9A至9F是示出了在圖8所示的編碼產(chǎn)生處理中受到信息處理的數(shù)
據(jù)和編碼的格式示例的說明圖IO是根據(jù)本發(fā)明的第四實(shí)施例,示出了由QR編碼打印機(jī)的控制電
路所執(zhí)行的主解碼處理流程的流程圖11是示出了圖10的二級解碼處理流程的流程圖12是根據(jù)本發(fā)明的第五實(shí)施例,示出了由QR編碼打印機(jī)所執(zhí)行的
編碼產(chǎn)生處理流程的流程圖13是示出了圖12的特定處理的流程圖14A至14E是示出了在圖13的特定處理中受到信息處理的編碼示例 的說明圖;圖15是根據(jù)本發(fā)明的第六實(shí)施例,示出了由QR編碼讀取器的控制電 路所執(zhí)行的主解碼處理的流程圖16是示出了圖15的二級解碼處理流程的流程圖17是示出了圖16的提取處理的流程的流程圖18是根據(jù)本發(fā)明的第七實(shí)施例,由QR編碼讀取器的控制電路所執(zhí) 行的解碼處理流程的流程圖19是根據(jù)本發(fā)明的第七實(shí)施例,由QR編碼讀取器的控制電路所執(zhí) 行的讀取標(biāo)記設(shè)置處理流程的流程圖20是根據(jù)本發(fā)明的第八實(shí)施例,由QR編碼打印機(jī)執(zhí)行的編碼產(chǎn)生 處理流程的流程圖21A至21E是在圖20所示的編碼產(chǎn)生處理中受到信息處理的數(shù)據(jù)和 編碼的格式示例的說明圖;以及
圖22是根據(jù)本發(fā)明的第九實(shí)施例,示出了二級解碼處理流程的流程圖。
具體實(shí)施例方式
結(jié)合附圖,下文將描述產(chǎn)生二維編碼的方法和讀取該二維編碼的讀取 器的某些實(shí)施例。在如下的每一個(gè)實(shí)施例中,QR(快速響應(yīng))編碼表示為該 二維編碼的示例。然而,應(yīng)該理解,與本發(fā)明相關(guān)的二維編碼并不限于這 種QR編碼,而是類似于QR編碼,本發(fā)明可以應(yīng)用于例如數(shù)據(jù)矩陣、 Maxicode、 CP編碼、PDF 417和RSS復(fù)合(RSS composite)。
參考圖1A和1B,現(xiàn)在將描述根據(jù)本發(fā)明的第一實(shí)施例的QR編碼打 印機(jī)10的配置。
圖1A是表示根據(jù)本發(fā)明的第一實(shí)施例的QR編碼打印機(jī)10和個(gè)人計(jì) 算機(jī)(下文稱為"計(jì)算機(jī)")l的說明圖。圖1B是表示QR編碼打印機(jī)10的硬 件配置的示例的框圖。
如圖1A所示,QR編碼打印機(jī)10通過電纜5連接到計(jì)算機(jī)1。因此, QR編碼打印機(jī)10具有以下功能例如,根據(jù)從計(jì)算機(jī)1輸入的諸如字母 數(shù)字字符、日語字符(日本漢字)和符號等的字符數(shù)據(jù)(下文將這些數(shù)據(jù)統(tǒng)一 稱為"打印數(shù)據(jù)")產(chǎn)生QR編碼,并在標(biāo)簽P上打印所產(chǎn)生的QR編碼。這里的"QR編碼"是基于日本工業(yè)標(biāo)準(zhǔn)(JIS)的二維編碼符號-QR編碼-基本 規(guī)范(JISx0510: 2004)。
計(jì)算機(jī)1包括計(jì)算機(jī)單元2和顯示器3。計(jì)算機(jī)單元2是包括未示出的 MPU、主存儲(chǔ)器(主要存儲(chǔ)單元)、硬盤(輔助存儲(chǔ)單元)、輸入/輸出接口、通 信接口、鍵盤和定點(diǎn)設(shè)備的信息處理器。顯示器3是連接到計(jì)算機(jī)單元2 的信息顯示設(shè)備,用于在屏幕上顯示從計(jì)算機(jī)單元2輸出的信息。
QR編碼打印機(jī)10的設(shè)備驅(qū)動(dòng)位于(內(nèi)嵌于)計(jì)算機(jī)單元2中。這使得計(jì) 算機(jī)單元2選擇性地將包含字符的打印數(shù)據(jù)輸出到QR編碼打印機(jī)10,例 如,計(jì)算機(jī)l的用戶希望以QR編碼的格式在標(biāo)簽P上打印的字符。
如圖1B所示,QR編碼打印機(jī)lO主要包括MPUll、存儲(chǔ)器12、接口 13、滾筒控制器14、頭控制器15、滾筒17和頭18。這些組件安裝在印刷 電路板沐示出)上或位于外殼(未示出)內(nèi)。
MPU 11是能整體控制QR編碼打印機(jī)10的微型計(jì)算機(jī)。MPU 11能和 通過存儲(chǔ)總線所連接的存儲(chǔ)器12 —起構(gòu)成信息處理器,并具有信息處理功 能。MPU11不僅連接到存儲(chǔ)器12,而且還連接到接口13,滾筒控制器14 和頭控制器15。稍后描述的編碼產(chǎn)生處理由MPU 11和存儲(chǔ)器12執(zhí)行。
存儲(chǔ)器12是對應(yīng)于例如RAM(DRAM、 SRAM等)和ROM(EPROM、 EEPROM等)的半導(dǎo)體存儲(chǔ)器件。存儲(chǔ)器12中的RAM被配置為能確保某 些區(qū)域,這些區(qū)域包括用于存儲(chǔ)從計(jì)算機(jī)1傳送的字符數(shù)據(jù)的緩沖區(qū),或 當(dāng)執(zhí)行諸如算術(shù)運(yùn)算和邏輯運(yùn)算之類的處理時(shí)由MPU 11利用的操作區(qū)。程 序預(yù)先設(shè)置在ROM中。所述程序包括能執(zhí)行例如編碼產(chǎn)生處理(稍后描述) 的給定程序和能控制諸如滾筒控制器14和頭控制器15之類的各種硬件的 系統(tǒng)程序。
接口 13是能接收例如從計(jì)算機(jī)1的計(jì)算單元2傳送的打印數(shù)據(jù)的輸入 接口。接口 13例如通過串行總線連接到MPU11。通過接口 13輸入到MPU11 的打印數(shù)據(jù)受到信息處理,并且由所述編碼產(chǎn)生處理對其進(jìn)行編碼(稍后描 述)。
滾筒控制器14用作控制單元,其能夠控制滾筒17的驅(qū)動(dòng)機(jī)構(gòu)(未示出) 并通過例如串行總線連接到MPU 11。因此,響應(yīng)于從MPU 11接收的信號, 對滾筒17進(jìn)行控制,例如對于它的開始和停止或旋轉(zhuǎn)方向進(jìn)行控制。頭控制器15是熱頭,其例如能在由熱敏紙制成的標(biāo)簽上打印任何圖案, 并通過例如串行總線連接到MPU 11。在本實(shí)施例中,頭控制器15能在熱 敏標(biāo)簽上打印在編碼產(chǎn)生處理(稍后描述)中所產(chǎn)生的QR編碼。具體而言, 頭控制器15允許與熱敏標(biāo)簽的傳送時(shí)序同步地在該標(biāo)簽上打印QR編碼, 其中,該時(shí)序由滾筒控制器14產(chǎn)生。QR編碼例如包括位置檢測圖案、時(shí) 序圖案或數(shù)據(jù)編碼。
下文中,給出的描述將舉例說明用作頭控制器15的熱頭。然而,諸如 噴墨打印頭或點(diǎn)打印頭之類的任何頭都能用作頭控制器15,只要該頭能打 印QR編碼即可。同樣,能使用諸如激光打印機(jī)或LED打印機(jī)之類的任何 打印機(jī)制。
因此,根據(jù)如上述配置的QR編碼打印機(jī)10,從計(jì)算機(jī)l輸出并輸入 到QR編碼打印機(jī)10中的打印數(shù)據(jù)通過接口 13臨時(shí)存儲(chǔ)在存儲(chǔ)器12的緩 沖區(qū)中,然后受到下述的編碼產(chǎn)生處理。
參考圖2至4,下文將描述所述編碼產(chǎn)生處理。圖2是示出了編碼產(chǎn)生 處理流程的流程圖。圖3A至3F示出了在圖2所示的編碼產(chǎn)生處理中受到 信息處理的數(shù)據(jù)和編碼的格式示例。具體而言,圖3A是打印數(shù)據(jù)的數(shù)據(jù)記 錄的示例,圖3B是經(jīng)過重新排序的數(shù)據(jù)記錄的示例,圖3C是添加了多個(gè) 編碼之后的示例,圖3D是圖3C所示的秘密編碼的配置的示例,圖3E是 圖3C所示的秘密編碼的配置的另一示例,以及圖3F是圖3C所示的秘密編 碼的配置的再另一示例。圖4表示類型1的QR編碼的配置的示例。
如圖2所示,所述編碼產(chǎn)生處理由MPU11和存儲(chǔ)器12啟動(dòng),通過打 開QR編碼打印機(jī)10的電源來激活該MPU11和存儲(chǔ)器12。首先,在步驟 S101執(zhí)行初始化。在該處理中,清空存儲(chǔ)器12中用于存儲(chǔ)數(shù)據(jù)的操作區(qū)和 緩沖區(qū),或清空存儲(chǔ)器12中的預(yù)定標(biāo)記、計(jì)數(shù)器等。
在步驟S103,確定是否已經(jīng)接收到打印數(shù)據(jù)。重復(fù)該步驟,直到接收 到打印數(shù)據(jù)為止(步驟S103的"否,。當(dāng)確定已經(jīng)接收到打印數(shù)據(jù)(步驟S103 的"是")時(shí),控制進(jìn)行到隨后的步驟S105,在該步驟中,清空計(jì)數(shù)器的計(jì) 數(shù)值。在步驟S105中清空計(jì)數(shù)值的計(jì)時(shí)器在隨后的步驟S107中檢測預(yù)定 時(shí)間的流逝。
在步驟S107,上述計(jì)時(shí)器確定所述預(yù)定時(shí)間是否期滿。具體而言,在隨后的步驟Slll,需要確定例如與加密相關(guān)的數(shù)據(jù)是否包含在從計(jì)算機(jī)1 傳送的打印數(shù)據(jù)中。在這點(diǎn)上,計(jì)時(shí)器在步驟Slll中確定例如一秒的預(yù)定
時(shí)間是否期滿。如果與加密相關(guān)的數(shù)據(jù)在該時(shí)間期滿之前沒有從計(jì)算機(jī)1
傳送,則在該預(yù)定時(shí)間期滿時(shí)(步驟S107的"是"),控制進(jìn)行到步驟S109。 如果該預(yù)定時(shí)間還沒有期滿(步驟S107的"否"),則在隨后的步驟Slll 中確定是否已接收到例如與加密相關(guān)的數(shù)據(jù),該數(shù)據(jù)包括用于表示要保 密的數(shù)據(jù)(下文稱為"秘密數(shù)據(jù)")在數(shù)據(jù)記錄中的位置關(guān)系的秘密數(shù)據(jù)位置 信息;以及用于加密的加密密鑰。當(dāng)確定已經(jīng)接收到這些數(shù)據(jù)(步驟Slll 的"是")時(shí),控制進(jìn)行到隨后的步驟S113。當(dāng)確定沒有接收到這些數(shù)據(jù)(步 驟Slll的"否")時(shí),控制返回到上述步驟S107,從而可以再次確定該預(yù) 定時(shí)間是否期滿。
然后,當(dāng)在步驟S107中確定該預(yù)定時(shí)間已期滿(步驟S107的"是") 時(shí),在步驟S109中將預(yù)定標(biāo)記設(shè)置為"0"。該標(biāo)記指示打印數(shù)據(jù)中是否包 括秘密數(shù)據(jù)。如果該標(biāo)記被設(shè)置為"0",則表示打印數(shù)據(jù)中不包括秘密數(shù) 據(jù)。如果該標(biāo)記被設(shè)置為"1",則表示打印數(shù)據(jù)中包括秘密數(shù)據(jù)。因此, 如果步驟Slll中確定已接收到與加密等相關(guān)的數(shù)據(jù)(步驟Slll的"是"), 則該標(biāo)記在隨后的步驟S113中被設(shè)置為"1"。
在步驟S113中將該預(yù)定標(biāo)記設(shè)置為"1"之后,在隨后的步驟S115中 對公開數(shù)據(jù)和秘密數(shù)據(jù)進(jìn)行重新排序。具體而言,打印數(shù)據(jù)可以包括向第 三方公開的數(shù)據(jù)(公開數(shù)據(jù))和向第三方保密的數(shù)據(jù)(秘密數(shù)據(jù)),并且這些數(shù) 據(jù)會(huì)無序地出現(xiàn)在數(shù)據(jù)記錄中。在該情況下,根據(jù)步驟S1U中所接收到的 "表示秘密數(shù)據(jù)在數(shù)據(jù)記錄中的位置關(guān)系的位置信息"對該數(shù)據(jù)的順序進(jìn) 行重新排序,以便將該數(shù)據(jù)分組為公開數(shù)據(jù)組和秘密數(shù)據(jù)組。
例如,如圖3A所示,讓我們假設(shè)從計(jì)算機(jī)1傳送的打印數(shù)據(jù)記錄按順 序包括公開數(shù)據(jù)A、秘密數(shù)據(jù)a,公開數(shù)據(jù)B和秘密數(shù)據(jù)p。在該情況下, 在步驟S115中對這些數(shù)據(jù)進(jìn)行重新排序,以便按圖3B所示的公開數(shù)據(jù)A、 公開數(shù)據(jù)B、秘密數(shù)據(jù)ot和秘密數(shù)據(jù)卩的順序進(jìn)行排序。因此,公開數(shù)據(jù) 和秘密數(shù)據(jù)被分組以便于處理,所述處理例如為在稍后的步驟S121中所執(zhí) 行的添加末端ID(標(biāo)識)碼的處理,或在步驟S125中所執(zhí)行的添加秘密ID 碼的處理。在隨后的步驟S117中,按照J(rèn)IS基本規(guī)范(JISx0510: 2004)對包括公開 數(shù)據(jù)和秘密數(shù)據(jù)的數(shù)據(jù)進(jìn)行編碼。該處理產(chǎn)生了已編碼的公開數(shù)據(jù)編碼, 作為表示要公開的數(shù)據(jù)的碼字(即,本發(fā)明中的第一類型的數(shù)據(jù)編碼);以及 已編碼的秘密數(shù)據(jù)編碼,作為表示要保密的數(shù)據(jù)的碼字(即,本發(fā)明中的第 二類型的數(shù)據(jù)編碼)。
在隨后的步驟S119中,使用例如在JIS基本規(guī)范(JISx0510: 2004)中所 述的用于產(chǎn)生糾錯(cuò)碼的算法來為每個(gè)公開數(shù)據(jù)產(chǎn)生糾錯(cuò)碼,然后對所產(chǎn)生 的糾錯(cuò)碼進(jìn)行編碼。以類似方式為每個(gè)秘密數(shù)據(jù)產(chǎn)生糾錯(cuò)碼。
在隨后的步驟S121中,將末端ID碼添加到公幵數(shù)據(jù)編碼后面。末端 ID碼例如具有"0000"的4-比特模式,并緊鄰公開數(shù)據(jù)編碼B之后,該公 開數(shù)據(jù)編碼B在圖3C所示的公開數(shù)據(jù)編碼A之后。
在隨后的步驟S123中,確定所述預(yù)定標(biāo)記是否被設(shè)置為"1",即,打 印數(shù)據(jù)是否包括秘密數(shù)據(jù)。如果包含秘密數(shù)據(jù)(如果標(biāo)記被設(shè)置為"1",步 驟S123為"是"),則控制進(jìn)行到步驟S125。如果不包含秘密數(shù)據(jù)(如果標(biāo) 記被設(shè)置為"0",步驟S123為"否"),則跳過秘密處理的序列(步驟S125 至S133),并且控制進(jìn)行到步驟S135。
步驟S125至S133是在打印數(shù)據(jù)包含秘密數(shù)據(jù)的情況下所執(zhí)行的秘密 處理序列。在該情形中,首先,在步驟S125中,將秘密ID碼添加到緊鄰 末端ID碼之后。
在步驟S125中,通過將秘密ID碼置于緊鄰末端ID碼之后,清楚地指 出位于末端ID碼之后的數(shù)據(jù)編碼是"被編碼為表示要保密的數(shù)據(jù)的碼字的 數(shù)據(jù)編碼"。因此,例如,在使用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理所產(chǎn) 生的QR編碼Q進(jìn)行解碼時(shí),可以識別出QR編碼Q中包含有秘密數(shù)據(jù)編 碼。因此,可以避免將沒有讀取的數(shù)據(jù)和錯(cuò)亂碼數(shù)據(jù)錯(cuò)誤地識別為秘密數(shù) 據(jù)而被讀取。此外,可以避免由于基于錯(cuò)誤識別的讀取所造成的誤操作的 發(fā)生。
在隨后的步驟S127中,計(jì)算秘密數(shù)據(jù)編碼的長度。對所計(jì)算的數(shù)據(jù)長 度進(jìn)行編碼并且將其附加地放置在緊鄰秘密ID碼之后,由此可以識別秘密 數(shù)據(jù)編碼所在的區(qū)域和范圍。因此,例如在使用QR編碼讀取器對當(dāng)前編碼 產(chǎn)生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),可以識別秘密數(shù)據(jù)編碼或經(jīng)加密的數(shù)據(jù)編碼的范圍。
例如,在圖3C所示的示例中,計(jì)算秘密數(shù)據(jù)編碼a和p的長度之和作 為所述數(shù)據(jù)長度,然后將該長度添加到緊鄰秘密ID碼之后。
在隨后的步驟S129中,確定是否存在加密密鑰,以確定是否需要對秘 密數(shù)據(jù)編碼進(jìn)行加密。具體而言,如果在步驟Slll中已從計(jì)算機(jī)l接收到 加密密鑰,則確定存在加密密鑰(步驟S129為"是")并且控制進(jìn)行到步驟 S131以執(zhí)行加密處理。如果在步驟S111中沒有從計(jì)算機(jī)l接收到加密密鑰, 則確定不存在加密密鑰(步驟S129為"否")并且控制進(jìn)行到步驟S133,跳 過步驟S131的加密處理。
即使當(dāng)在步驟SU1中沒有接收到任何加密密鑰時(shí),如果計(jì)算機(jī)1提前 在信息存儲(chǔ)介質(zhì)(諸如存儲(chǔ)器12或硬盤)中保存了加密密鑰,則也確定存在 加密密鑰(步驟S129為"是")。在該情形下,同樣,控制進(jìn)行到執(zhí)行加密 處理的步驟S131。
在步驟S131中,對秘密數(shù)據(jù)編碼進(jìn)行加密。在該處理中,通過使用例 如公知的綜合可視化密碼技術(shù)(綜合可視化秘密發(fā)布處理),對秘密數(shù)據(jù)編碼 進(jìn)行加密。以該方式,與沒有添加加密的明文數(shù)據(jù)相比,能夠提高安全性。
在圖3D所示的示例中,對秘密數(shù)據(jù)編碼a進(jìn)行加密,以獲取"加密數(shù) 據(jù)",并同時(shí)產(chǎn)生"開始位置"、"文本長度"、和"解碼密鑰檢測數(shù)據(jù)"。最 初所在的"開始位置"作為已加密的秘密數(shù)據(jù)的位置信息給出。當(dāng)對打印 數(shù)據(jù)的開頭賦予地址零時(shí),可以用一個(gè)表示性的地址值來對應(yīng)于該"開始 位置"。隨后的"文本長度"是已加密的秘密數(shù)據(jù)的字符數(shù)。有時(shí)會(huì)發(fā)生的 是數(shù)據(jù)在被編碼為碼字之前,在數(shù)據(jù)記錄的位置關(guān)系中無序地放置。即 使是在該情況下,例如,在使用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理所產(chǎn)生 的QR編碼Q進(jìn)行解碼時(shí),可以根據(jù)上述位置信息將已解碼的數(shù)據(jù)放置在 數(shù)據(jù)記錄中,以便能夠具有在編碼之前的位置關(guān)系。
最后添加的"解碼密鑰檢測數(shù)據(jù)"是密鑰標(biāo)識信息,使用該信息可以 標(biāo)識用于對密碼進(jìn)行解密的解碼密鑰。當(dāng)密鑰加密技術(shù)(也稱為"秘密密鑰加 密技術(shù)")在加密密鑰和解密密鑰之間是公共的時(shí),該解碼密鑰檢測數(shù)據(jù)也可 以標(biāo)識加密密鑰。因此,例如,在使用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理 所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),可以容易地標(biāo)識出秘密數(shù)據(jù)編碼的解碼密鑰(能夠?qū)崿F(xiàn)解碼的密鑰),或者確定所考慮的密鑰是否是解碼密鑰。
按照與秘密數(shù)據(jù)編碼a類似的方式構(gòu)成秘密數(shù)據(jù)編碼|3??梢詫⑴c用于 對秘密數(shù)據(jù)a進(jìn)行解碼的解碼密鑰相同的信息添加在其中,以作為"解碼 密鑰檢測數(shù)據(jù)"。作為替換方案,當(dāng)使用與秘密數(shù)據(jù)編碼a不同的加密密鑰 對秘密數(shù)據(jù)編碼P的秘密數(shù)據(jù)進(jìn)行加密時(shí),可以添加用于標(biāo)識解碼密鑰的 不同的"解碼密鑰檢測數(shù)據(jù)"。因此,例如,在使用QR編碼讀取器對當(dāng)前 編碼產(chǎn)生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),可以容易地為每一個(gè)秘密 數(shù)據(jù)編碼識別出用于實(shí)現(xiàn)解碼的密鑰,或確定所考慮的密鑰是否是解碼密 鑰。
在步驟S133中,將秘密數(shù)據(jù)編碼附加地放置在緊鄰數(shù)據(jù)長度之后。在 圖3D所示的示例中,秘密數(shù)據(jù)編碼a和P附加地位于數(shù)據(jù)長度之后,因此, 在由通用二維編碼讀取器執(zhí)行的解碼處理中,不會(huì)讀取例如位于末端ID碼 之后的填充碼。因此,通用二維編碼讀取器不能讀取位于末端ID碼之后的 秘密數(shù)據(jù)編碼。因此,即使當(dāng)通用讀取器讀取包含這種秘密數(shù)據(jù)編碼的二 維編碼時(shí),也不能識別秘密數(shù)據(jù)編碼的存在。因此,讀取器的用戶就不會(huì) 注意到存在秘密數(shù)據(jù)。
在隨后的步驟S135中,參考例如ISO 18004所述的處理算法和JIS基 本規(guī)范(JISx0510: 2004),在秘密數(shù)據(jù)編碼之后附加地放置填充碼。該算法 包括"當(dāng)編碼區(qū)域中碼字總數(shù)量小于編碼區(qū)域的容量時(shí),將表示沒有數(shù)據(jù) 的填充碼映射到要保密的數(shù)據(jù)(第二類型的數(shù)據(jù)編碼)之后,以填充該編碼區(qū) 域"的處理。在步驟S137中,進(jìn)一步添加糾錯(cuò)碼。因此,可以產(chǎn)生圖3C 所示的格式的數(shù)據(jù)編碼。
在步驟S139中,根據(jù)步驟S137中所產(chǎn)生的數(shù)據(jù)編碼,產(chǎn)生各個(gè)單元, 然后將其置于圖4所示的數(shù)據(jù)框中。具體而言,圖4所示的類型1的QR 編碼被配置為具有正方形,該正方形的一個(gè)邊對應(yīng)21個(gè)單元(模塊)。因此, 除了在三個(gè)角處設(shè)置的位置檢測圖案之外的編碼區(qū)域,形成了信息區(qū)域(圖 4中的陰影區(qū)域),并且采用時(shí)序圖案來設(shè)置26個(gè)數(shù)據(jù)塊(A0-A25),每個(gè)數(shù) 據(jù)塊由4行2列排列的8個(gè)單元組成。
例如,在圖3C所示的示例中,公開數(shù)據(jù)編碼A放置在塊A0至A2中, 公開數(shù)據(jù)編碼B放置在塊A3至A6中,以及末端ID碼放置在塊A7中。然后,在末端ID碼之后,在塊A8至A17中放置秘密數(shù)據(jù)編碼、數(shù)據(jù)長度、 秘密ID碼等,塊A8至A17對應(yīng)于通常放置填充碼的位置。
具體而言,秘密ID碼放置在塊A8中,數(shù)據(jù)長度放置在接下來的塊A9 中,以及秘密數(shù)據(jù)編碼(x放置在接下來的塊A10至A13中,以及秘密數(shù)據(jù) 編碼(3放置在接下來的塊A14至A17中。然后,類似于常規(guī)QR編碼,在 剩余的塊A20至A25中放置糾錯(cuò)碼。填充碼放置在上述塊之間的空閑部分 中,即塊A18和A19中。設(shè)置有插入的時(shí)序圖案的塊A15和A18被分別劃 分為塊A15和A15'以及塊A18和A18'。
如圖3E所示,在步驟S131中添加解碼密鑰本身,而不是添加"解碼 密鑰檢測數(shù)據(jù)"。因此,例如,在使用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理 所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),即使當(dāng)例如QR讀取器不具有秘密數(shù)據(jù) 編碼a的解碼密鑰時(shí),也能對秘密數(shù)據(jù)編碼a進(jìn)行解碼以獲取原始明文。
類似的,對于秘密數(shù)據(jù)編碼p,添加解碼密鑰本身,而不是添加"解碼 密鑰檢測數(shù)據(jù)"。添加的解碼密鑰可以與用于對秘密數(shù)據(jù)編碼a進(jìn)行解碼的 解碼密鑰相同。作為替代方案,當(dāng)使用與秘密數(shù)據(jù)編碼a的加密密鑰不同 的加密密鑰對秘密數(shù)據(jù)編碼j3的秘密數(shù)據(jù)進(jìn)行加密時(shí),添加對應(yīng)于所述不 同加密密鑰的不同解密密鑰。因此,例如在使用QR編碼讀取器對當(dāng)前編碼 產(chǎn)生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),即使當(dāng)例如QR讀取器不具有 秘密數(shù)據(jù)編碼P的解碼密鑰時(shí),也能對秘密數(shù)據(jù)編碼P進(jìn)行解碼以獲取原 始明文。
有時(shí),在步驟S123中可能會(huì)確定不存在秘密數(shù)據(jù)(該標(biāo)記被設(shè)置為"O", 步驟S123為"否")。在該情況下,如圖3F所示,能在步驟S123和S135 之間提供附加步驟。在該附加步驟中,可以在未被加密的明文數(shù)據(jù)之前, 添加已在步驟S131中添加的"開始位置"和"文本長度"。同樣,有時(shí)發(fā) 生的是,數(shù)據(jù)在被編碼為碼字之前,在數(shù)據(jù)記錄的位置關(guān)系中無序地放置。 即使是在該情形中,例如,在使用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理所產(chǎn) 生的QR編碼Q進(jìn)行解碼時(shí),能根據(jù)所述位置信息來放置已解碼數(shù)據(jù)以便 具有編碼之前的位置關(guān)系。
如上所述,在根據(jù)第一實(shí)施例的QR編碼打印機(jī)10所產(chǎn)生的QR編碼 Q中,在步驟S133,將秘密數(shù)據(jù)編碼附加地放置在末端ID碼之后,取代部分或所有的填充碼。因?yàn)樵谕ㄓ米x取器中不能讀取位于末端ID碼之后的秘 密數(shù)據(jù)編碼,所以即使當(dāng)通用讀取器讀取包含該秘密數(shù)據(jù)編碼的二維編碼 時(shí),也由于秘密數(shù)據(jù)編碼而不能識別要保密的數(shù)據(jù)的存在。因此,可以確 保該通用讀取器的用戶不會(huì)注意到該秘密數(shù)據(jù)的存在。
類似的,對于秘密數(shù)據(jù)編碼|3,添加解碼密鑰本身,而不是添加"解碼 密鑰檢測數(shù)據(jù)"。添加的解碼密鑰可以與用于對秘密數(shù)據(jù)編碼a進(jìn)行解碼的 解碼密鑰相同。作為替代方案,當(dāng)使用與秘密數(shù)據(jù)編碼a的加密密鑰不同 的加密密鑰對秘密數(shù)據(jù)編碼P的秘密數(shù)據(jù)進(jìn)行加密時(shí),添加對應(yīng)于所述不 同加密密鑰的不同解密密鑰。因此,例如在使用QR編碼讀取器對當(dāng)前編碼 產(chǎn)生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),即使當(dāng)例如QR讀取器不具有 秘密數(shù)據(jù)編碼P的解碼密鑰時(shí),也能對秘密數(shù)據(jù)編碼卩進(jìn)行解碼以獲取原 始明文。
描述的第一實(shí)施例舉例說明了由QR編碼打印機(jī)10在標(biāo)簽P上打印 QR編碼Q的情形。然而本發(fā)明并不限于此,而是可以涉及能夠可視化地表 現(xiàn)QR編碼Q的任何組件。
例如,可以如此配置由計(jì)算機(jī)單元2執(zhí)行圖2所示的編碼產(chǎn)生處理, 以在顯示器3上顯示QR編碼Q。在該情況下,可以構(gòu)成如下技術(shù)構(gòu)思
艮P,技術(shù)構(gòu)思"一種用于產(chǎn)生二維編碼的程序,所述程序使計(jì)算機(jī)用 作二維編碼產(chǎn)生設(shè)備,其中,當(dāng)被編碼為表示公開數(shù)據(jù)的碼字的公開數(shù)據(jù) 編碼的總數(shù)量小于與放置所述碼字的編碼區(qū)域中所能容納的容量相對應(yīng)的 值時(shí),將表示由位于所述編碼區(qū)域中的公開數(shù)據(jù)編碼所組成的碼串的末端 的末端ID碼放置在所述碼串的末端,并且將表示沒有數(shù)據(jù)的填充碼放置在
所述編碼區(qū)域的空閑部分中,其特征在于將被編碼為表示要保密的數(shù)據(jù)
的碼字的秘密數(shù)據(jù)編碼放置在所述末端ID碼之后,取代部分或所有的所述
填充碼"。
因此,使用所述的用于產(chǎn)生二維編碼的程序,用作二維編碼產(chǎn)生設(shè)備
的計(jì)算機(jī)可以提供類似于上述QR編碼打印機(jī)10的MPU 11等的優(yōu)勢。
描述的第一實(shí)施例舉例說明了將計(jì)算機(jī)1連接到QR編碼打印機(jī)10以 及從計(jì)算機(jī)1傳送打印數(shù)據(jù)的配置。然而,可以將例如具有該功能的任何 數(shù)碼相機(jī)、移動(dòng)電話或手持計(jì)算機(jī)以及便攜終端連接到QR編碼打印機(jī)10以獲取相同的優(yōu)勢,只要這些設(shè)備是能輸出字符數(shù)據(jù)的信息處理器即可, 該字符數(shù)據(jù)諸如為字母數(shù)字字符、日語字符(日本漢字)和符號。 [第二實(shí)施例]
下文將描述本發(fā)明的第二實(shí)施例。應(yīng)該了解,在第二實(shí)施例和隨后的 實(shí)施例中,為了省略解釋,相同或類似組件、部分或處理被給予與第一實(shí) 施例中相同的附圖標(biāo)記。
根據(jù)第二實(shí)施例,QR編碼讀取器20具有能夠?qū)Φ谝粚?shí)施例所述的QR 編碼打印機(jī)IO打印的QR編碼Q進(jìn)行解碼的配置。因?yàn)榧航?jīng)參考圖3A至 3F和圖4描述了由QR編碼讀取器20進(jìn)行解碼的QR編碼的配置,所以在 此省略說明。
參考圖5,描述根據(jù)本發(fā)明的第二實(shí)施例的QR編碼讀取器20的配置。 圖5是根據(jù)第二實(shí)施例示出了 QR編碼讀取器的硬件配置的示例的框圖。
如圖5所示,QR編碼讀取器20包括具有照明源21、光接收傳感器 23和成像透鏡27的光學(xué)系統(tǒng);具有存儲(chǔ)器35、控制電路40、操作開關(guān)42 和液晶顯示器(LCD)46的微型計(jì)算機(jī)系統(tǒng);以及具有電源開關(guān)41和電池49 的電源系統(tǒng)。這些組件安裝在印刷電路板(未示出)上或設(shè)置于外殼(未示出) 中。關(guān)于硬件,以與通用QR編碼讀取器類似的方式配置QR編碼讀取器 20。
如上所述,光學(xué)系統(tǒng)包括照明源21、光接收傳感器23和成像透鏡27。 照明源21用作能發(fā)射照明光Lf的照明源。例如,照明源21包括紅色LED、 在LED發(fā)射側(cè)設(shè)置的擴(kuò)散透鏡、以及聚焦透鏡。在第二實(shí)施例中,照明源 21設(shè)置在側(cè)邊以便將光接收傳感器23夾在中間,并經(jīng)配置以通過殼體(未 示出)的讀取口向標(biāo)簽P發(fā)射光Lf。在標(biāo)簽P上打印第一實(shí)施例所解釋的 QR編碼Q。
光接收傳感器23經(jīng)配置,以便接收反射光Lr,所述反射光Lr是照射 到標(biāo)簽P或QR編碼Q的光的反射。例如, 一個(gè)面?zhèn)鞲衅骺梢詫?yīng)于光接 收傳感器23。在該面?zhèn)鞲衅髦校T如C-MOS和CCD之類的光接收元件或 固態(tài)成像元件是二維排列的。光接收傳感器23安裝在印刷電路板沐示出) 上,以便光接收面23a能接收通過成像透鏡27進(jìn)入的入射光。
成像透鏡27用作能收集通過讀取口從外部進(jìn)入的入射光并在傳感器23的光接收面23a上成像的成像光學(xué)系統(tǒng)。例如,成像透鏡包括透鏡管和透 鏡筒中容納的多個(gè)聚焦透鏡。
描述該微型計(jì)算機(jī)系統(tǒng)的配置。該微型計(jì)算機(jī)系統(tǒng)包括放大電路31、 A/D轉(zhuǎn)換電路33、存儲(chǔ)器35、地址產(chǎn)生電路36、同步信號產(chǎn)生電路38、 控制電路40、操作開關(guān)42、 LED 43、蜂鳴器44、 LCD 46和通信接口 48。 如名字所表示的,微型計(jì)算機(jī)系統(tǒng)經(jīng)配置集中于控制電路40和存儲(chǔ)器35, 控制電路40和存儲(chǔ)器35可用作微型計(jì)算機(jī)。
使用從放大電路31輸入的預(yù)定增益對從光學(xué)系統(tǒng)的光接收傳感器23 輸出的圖像信號進(jìn)行放大,然后輸入到A/D轉(zhuǎn)換電路33中用于從模擬信號 轉(zhuǎn)換為數(shù)字信號。數(shù)字化的圖像信號,即圖像數(shù)據(jù),被輸入到存儲(chǔ)器35中 以便存儲(chǔ)在圖像數(shù)據(jù)存儲(chǔ)區(qū)中。同步信號產(chǎn)生電路38經(jīng)配置以便能為光接 收傳感器23和地址產(chǎn)生電路36產(chǎn)生同步信號。地址產(chǎn)生電路36經(jīng)配置以 便能根據(jù)從同步信號產(chǎn)生電路38提供的同步信號為存儲(chǔ)在存儲(chǔ)器35中的 圖像數(shù)據(jù)產(chǎn)生存儲(chǔ)地址。
存儲(chǔ)器35是對應(yīng)于例如RAM(DRAM、 SRAM等)和ROM(EPROM、 EEPROM等)的半導(dǎo)體存儲(chǔ)器件。在存儲(chǔ)器35中,RAM經(jīng)配置以便除了上 述圖像數(shù)據(jù)存儲(chǔ)區(qū)之外還能提供例如操作區(qū)。這些操作區(qū)用于各種處理, 諸如由控制電路40執(zhí)行的算術(shù)運(yùn)算和邏輯運(yùn)算。程序預(yù)先設(shè)置在ROM中。 所述程序包括例如,能夠執(zhí)行解碼處理(稍后描述)的給定程序;以及能夠 控制各個(gè)硬件的系統(tǒng)程序,所述硬件例如為照明源21和光接收傳感器23。
控制電路40是能整體控制QR編碼讀取器20的微型計(jì)算機(jī),并包括 CPU、系統(tǒng)總線和輸入/輸出接口??刂齐娐?0與存儲(chǔ)器35—起構(gòu)成信息 處理器,并具有處理信息的功能??刂齐娐?0經(jīng)配置以便能通過所結(jié)合的 輸入/輸出接口連接到各種輸入/輸出設(shè)備。例如,在第二實(shí)施例中,控制電 路40連接到電源開關(guān)41、操作開關(guān)42、 LED 43、蜂鳴器44、 LCD 46和 通信接口48。
因此,例如,可以監(jiān)視并控制電源開關(guān)41和操作開關(guān)42。能夠?qū)τ米?指示器的LED 43和能產(chǎn)生嗶嗶聲和警報(bào)聲的蜂鳴器44的聲音執(zhí)行開/關(guān)控 制。而且,能夠?qū)CD46執(zhí)行屏幕控制,該LCD46能顯示讀出的QR編 碼Q中的編碼內(nèi)容。同樣,能對通信接口48執(zhí)行例如通信控制,該通信接口 48能執(zhí)行與外部裝置的串行通信。連接到通信接口 48的外部裝置包括 主機(jī)HST,其對應(yīng)于QR編碼讀取器20的主系統(tǒng)。
電源系統(tǒng)包括電源開關(guān)41和電池49。電池49為各個(gè)設(shè)備和電路提供 驅(qū)動(dòng)電壓。響應(yīng)于在控制電路40的控制下的電源開關(guān)41的開/關(guān)控審ij,控 制來自電池49的驅(qū)動(dòng)電壓提供。電池49是能產(chǎn)生預(yù)定DC電壓的二次電池。 電池49對應(yīng)于例如鋰離子電池。QR編碼讀取器20經(jīng)配置以便從通過通信 接口 48連接的外部裝置而不是從電池49提供電源,該外部裝置例如為主 機(jī)HST。在該情況下,可以省略電池49。
在以該形式配置的QR編碼讀取器20中,當(dāng)打開電源開關(guān)41時(shí),例如 能正常完成預(yù)定自我診斷處理等,以使讀取器20進(jìn)入能讀取QR編碼Q的 狀態(tài)中。然后,接收來自操作開關(guān)42(例如,觸發(fā)開關(guān))的輸入,指示發(fā)出 照明光Lf。因此,當(dāng)用戶打開觸發(fā)開關(guān)時(shí),控制電路40向照明源21輸出 發(fā)射信號,其被稱為同步信號。已接收到所述發(fā)射信號的照明源21使LED 為照明光Lf的照射而發(fā)光。
照射到QR編碼Q的照射光Lf被反射。然后,反射光Lr通過讀取口 進(jìn)入成像透鏡27,以便在光接收傳感器23的表面23a上形成QR編碼Q的 圖像。因此,QR編碼Q的圖像曝光傳感器23。相應(yīng)地,然后通過存儲(chǔ)器 35的圖像數(shù)據(jù)存儲(chǔ)區(qū),對經(jīng)過上述微型計(jì)算機(jī)系統(tǒng)的圖像處理的QR編碼 Q的圖像數(shù)據(jù)進(jìn)行解碼處理(將稍后描述)。
參考圖4、 6和7,下文將描述該解碼處理。圖6是示出了主解碼處理 的流程的流程圖。圖7是示出了圖6的二級解碼處理的流程的流程圖。圖4 是示出了類型l的QR編碼的配置示例的解釋圖。
如圖6所示,當(dāng)打開QR編碼讀取器20時(shí),主解碼處理由被觸發(fā)的控 制電路40和存儲(chǔ)器35啟動(dòng)。首先,在步驟S201,執(zhí)行初始化。在該處理 中,清空存儲(chǔ)器35中的圖像數(shù)據(jù)的操作區(qū)和存儲(chǔ)區(qū),或清空預(yù)定標(biāo)記或計(jì) 數(shù)器。這里所述的QR編碼讀取器20連接到主機(jī)HST,從該主機(jī)HST獲 取解碼密鑰數(shù)據(jù)作為設(shè)置數(shù)據(jù)。
在歩驟S203,清空計(jì)時(shí)器的計(jì)數(shù)值。在該步驟S203中清空計(jì)數(shù)值的計(jì) 時(shí)器在隨后的步驟S205中將檢測預(yù)定時(shí)間的流逝。
在步驟S205,上述計(jì)時(shí)器確定所述預(yù)定時(shí)間是否期滿。具體而言,在隨后的步驟S209中,需要確定從主機(jī)HST傳送的設(shè)置數(shù)據(jù)是否包括解碼 密鑰數(shù)據(jù)。在這方面,計(jì)時(shí)器在步驟S205確定例如五秒的預(yù)定時(shí)間是否期 滿。如果到該時(shí)間期滿為止沒有從主機(jī)HST傳送與加密相關(guān)的數(shù)據(jù),則在 該預(yù)定時(shí)間期滿時(shí)(步驟S205的"是"),控制進(jìn)行到步驟S207。
如果該預(yù)定時(shí)間還沒有期滿(步驟S205的"否"),則在隨后的步驟S209 中確定是否已接收到解碼密鑰。當(dāng)確定已接收到解碼密鑰(步驟S209的 "是"),控制進(jìn)行到隨后的步驟S211。當(dāng)確定沒有接收到解碼密鑰(步驟 S209的"否"),控制返回到上述步驟S205,以便再次確定該預(yù)定時(shí)間的 期滿。
然后,當(dāng)在步驟205中確定預(yù)定時(shí)間己期滿(步驟S205的"是")時(shí), 則在步驟S207中將預(yù)定標(biāo)記設(shè)置為"0"。該標(biāo)記表示是否要使用解碼密鑰 對QR編碼Q的秘密數(shù)據(jù)編碼進(jìn)行解碼。如果該標(biāo)記被設(shè)置為"0",則表 示不使用解碼密鑰對該編碼進(jìn)行解碼。如果該標(biāo)記被設(shè)置為"1",則表示 使用解碼密鑰對該編碼進(jìn)行解碼。因此,如果在步驟S209中確定已接收到 解碼密鑰(步驟S209的"是"),則在隨后的步驟S211中將該標(biāo)記設(shè)置為"l"。
在步驟S211將該預(yù)定標(biāo)記設(shè)置為"1"之后,在隨后的步驟S213中獲 取圖像數(shù)據(jù)。換而言之,讀出在存儲(chǔ)器35的圖像數(shù)據(jù)存儲(chǔ)區(qū)中所存儲(chǔ)的圖 像數(shù)據(jù)。因此,可以獲取例如圖4所示的QR編碼Q的編碼圖像。
在隨后的步驟S215,檢測所述位置檢測圖案。具體而言,如圖4所示, 在QR編碼Q的三個(gè)角上設(shè)置了位置檢測圖案。在隨后的步驟S217中,通 過檢測這些圖案,來檢測QR編碼Q的輪廓。
在步驟S219,計(jì)算每個(gè)單元的中心坐標(biāo),在隨后的步驟S221中確定每 個(gè)單元的黑和白。這能識別圖4所示(圖4中的陰影區(qū)域)的形式信息或數(shù)據(jù) 塊。因此,如果出現(xiàn)任何缺陷數(shù)據(jù)塊,則在隨后的步驟S223中確定是否能 夠?qū)@些塊進(jìn)行糾錯(cuò)。
當(dāng)在步驟S223中確定能夠執(zhí)行糾錯(cuò)(步驟S223 "是")時(shí),執(zhí)行糾錯(cuò)。 然后,控制進(jìn)行到執(zhí)行二級解碼處理的步驟S300。另一方面,當(dāng)在步驟S223 中確定不能執(zhí)行糾錯(cuò)(步驟S223 "否")時(shí),控制返回到步驟S213以再次獲 取該圖像數(shù)據(jù)并執(zhí)行步驟S215至S221。
圖7示出步驟S300的細(xì)節(jié)。下文參考圖7描述二級解碼處理。如圖7所示,在該二級解碼處理中,在步驟S301首先將"O"(零)設(shè)置給計(jì)數(shù)器n。 在當(dāng)前二級解碼處理中,計(jì)數(shù)器n用作指示構(gòu)成QR編碼Q的數(shù)據(jù)編碼順
序的變量。
在步驟S303,獲取計(jì)數(shù)器n所指示的第n個(gè)數(shù)據(jù)編碼。在隨后的步驟 S305,確定在步驟S303所獲取的第n個(gè)數(shù)據(jù)編碼是否是末端ID碼。如果 確定該數(shù)據(jù)編碼是末端ID碼(步驟S305為"是"),則讀出的QR編碼不包 括任何位于末端ID碼之前的常規(guī)數(shù)據(jù)編碼。因此,控制進(jìn)行到步驟S315。
同時(shí),如果不能確定該數(shù)據(jù)編碼是末端ID碼(步驟S305為"否"),則 表示QR編碼在所考慮的第n個(gè)數(shù)據(jù)編碼之后仍有常規(guī)數(shù)據(jù)編碼。因此,控 制迸行到步驟S307,在該步驟中,獲取后面的數(shù)據(jù)編碼,即,第(n+l)個(gè)數(shù) 據(jù)編碼,或者說是編碼數(shù)量(文本長度)i。如參考圖3D的第一實(shí)施例所述, 這基于如下事實(shí)文本長度存儲(chǔ)在與第二個(gè)數(shù)據(jù)編碼相對應(yīng)的位置中。在 JIS基本規(guī)范(JISx0510: 2004)的"8.4數(shù)據(jù)編碼"中描述了該細(xì)節(jié)。
在步驟S307中獲取了文本長度i之后,在隨后的步驟S309中獲取與該 文本長度i相對應(yīng)的多個(gè)數(shù)據(jù)編碼。然后,在步驟S311,對這些數(shù)據(jù)編碼, 即公開數(shù)據(jù)編碼(被編碼為表示要公開的數(shù)據(jù)的碼字的數(shù)據(jù)編碼)進(jìn)行解碼。
在步驟S311中完成該解碼處理之后,控制進(jìn)行到步驟S313,在該步驟 中,將"n+i+l"設(shè)置給計(jì)數(shù)器n,因此計(jì)數(shù)器n能指示隨后的數(shù)據(jù)編碼。 然后,控制返回到步驟S303,以獲取第n個(gè)數(shù)據(jù)編碼。
這樣,在步驟S303至S313,獲取并解碼位于末端ID碼之前并且應(yīng)該 一開始就進(jìn)行解碼的常規(guī)數(shù)據(jù)編碼(第一數(shù)據(jù)編碼或公開數(shù)據(jù)編碼)。因此, 執(zhí)行這些步驟的控制電路40等可以對應(yīng)于權(quán)利要求中所記載的"第一解碼 單元"。
在步驟S315,確定上述預(yù)定標(biāo)記是否被設(shè)置為"1",或者說是否要使 用解碼密鑰對QR編碼Q的秘密數(shù)據(jù)編碼進(jìn)行解碼。當(dāng)該標(biāo)記未被設(shè)置為 "1"(步驟S315為"否")時(shí),就不需要使用解碼密鑰執(zhí)行解碼。因此,當(dāng) 前二級解碼處理結(jié)束,從而結(jié)束圖6中的步驟S300。
當(dāng)該預(yù)定標(biāo)記被設(shè)置為"1"(步驟S315為"是")時(shí),則需要使用解碼 密鑰執(zhí)行解碼,并且控制進(jìn)行到隨后的步驟S317,在該步驟中,將"n+l" 設(shè)置給計(jì)數(shù)器n。然后,在步驟S319,獲取由計(jì)數(shù)器n指示的第n個(gè)數(shù)據(jù)編碼。
在隨后的步驟S321 ,確定步驟S319中所獲取的第n個(gè)數(shù)據(jù)編碼是否是 秘密ID碼。因此,執(zhí)行步驟S321的控制電路40等對應(yīng)于權(quán)利要求中記載 的"數(shù)據(jù)編碼確定單元"和"秘密ID碼確定單元"。
當(dāng)確定該數(shù)據(jù)編碼是秘密ID碼(步驟S321為"是")時(shí),則表示在該秘 密ID碼之后存在秘密數(shù)據(jù)編碼。然后,控制進(jìn)行到步驟S323,在該步驟中, 獲取后面的數(shù)據(jù)編碼,即,第(n+l)個(gè)數(shù)據(jù)編碼,或者說是編碼數(shù)量(文本長 度)j。類似于步驟S309,這基于如下事實(shí)文本長度存儲(chǔ)在與第二個(gè)數(shù)據(jù) 編碼相對應(yīng)的位置中。
當(dāng)在步驟S321中確定存在秘密ID碼時(shí),例如確保向主機(jī)HST通知該 QR編碼Q中存在秘密ID碼。因此,主機(jī)能理解該事實(shí)末端ID碼之后 的數(shù)據(jù)編碼是秘密數(shù)據(jù)編碼??赡軙?huì)發(fā)生的是位于末端ID碼之后的、原 本應(yīng)該僅放置填充碼的編碼區(qū)域(編碼區(qū)域的空閑部分)中的數(shù)據(jù)編碼既不 是填充碼也不是秘密數(shù)據(jù)編碼(例如,不再是填充碼的錯(cuò)亂填充碼)的數(shù)據(jù)編 碼。在該情形中,作為秘密數(shù)據(jù)編碼的數(shù)據(jù)編碼的信息不會(huì)被輸出到主機(jī) HST。因此,可以避免出現(xiàn)誤操作,否則,就可能由于對秘密數(shù)據(jù)編碼之外 的數(shù)據(jù)編碼進(jìn)行解碼而導(dǎo)致該誤操作。
如果確定該數(shù)據(jù)編碼不是秘密ID碼涉驟S321的"否"),則表示在 QR編碼Q中所考慮的第n個(gè)數(shù)據(jù)編碼之后不存在秘密數(shù)據(jù)編碼。然后,當(dāng) 前二級解碼處理結(jié)束,即,結(jié)束圖3中的步驟S300以便結(jié)束主解碼處理。
在步驟S323中獲取了文本長度j之后,控制進(jìn)行到步驟S325,在該步 驟中,獲取與文本長度j相對應(yīng)的多個(gè)數(shù)據(jù)編碼。然后,在步驟S327,將 "n+j+2"設(shè)置給計(jì)數(shù)器n,因此計(jì)數(shù)器n能指示隨后的數(shù)據(jù)編碼,g卩,秘 密數(shù)據(jù)編碼。此后,在步驟S329,獲取第n個(gè)解碼密鑰檢測數(shù)據(jù)(密鑰標(biāo)識 信息)。
然后,在步驟S331中,根據(jù)步驟S329中所獲取的解碼密鑰檢測數(shù)據(jù), 確定在之前的步驟S209中從主機(jī)HST接收到的解碼密鑰是否匹配用于對 第n個(gè)秘密數(shù)據(jù)編碼的加密數(shù)據(jù)進(jìn)行解密的密鑰。當(dāng)在步驟S331中確定解 碼密鑰匹配時(shí)(步驟S331為"是"),在隨后的步驟S333中對加密數(shù)據(jù)進(jìn)行 解密。這里所用的密碼技術(shù)是第一實(shí)施例中提及的已知的綜合可視化密碼技 術(shù)(綜合可視化秘密發(fā)布處理)。因此,即使當(dāng)使用該綜合可視化密碼技術(shù)對 秘密數(shù)據(jù)編碼的加密數(shù)據(jù)進(jìn)行加密時(shí),數(shù)據(jù)也可以被解碼并恢復(fù)到原始明
文。執(zhí)行歩驟S333的控制電路40等對應(yīng)于權(quán)利要求中所記載的"解碼單 元"。
當(dāng)在步驟S331中確定解碼密鑰不匹配時(shí)(步驟S331為"否"),不對所 考慮的第n個(gè)秘密數(shù)據(jù)編碼進(jìn)行解密,并且控制進(jìn)行到步驟S337,在該步 驟中,將"n+l"設(shè)置給計(jì)數(shù)器n以獲取隨后的秘密數(shù)據(jù)編碼。因此,在 QR編碼讀取器20所擁有的解碼密鑰不是用于對所考慮的第n個(gè)秘密數(shù)據(jù) 編碼進(jìn)行解密的解碼密鑰的情況下,即不解密也不解碼第n個(gè)秘密數(shù)據(jù)編 碼。因此,不執(zhí)行不必要的解碼處理。執(zhí)行步驟S331的控制電路40等對 應(yīng)于權(quán)利要求中所記載的"密鑰匹配確定單元"。
在步驟S335,對秘密數(shù)據(jù)編碼進(jìn)行解碼。具體而言,因?yàn)榧涸谥暗?步驟S333中對加密數(shù)據(jù)進(jìn)行了解密,因此在步驟S335中,基于解密后的 數(shù)據(jù)來對秘密數(shù)據(jù)編碼進(jìn)行解碼。
在步驟S335中的解碼處理完成之后,控制進(jìn)行到步驟S337,在該步驟 中,將"n+l"設(shè)置給計(jì)數(shù)器n以便計(jì)數(shù)器n能指示隨后的數(shù)據(jù)編碼。然后, 在隨后的歩驟S339中,獲取第n個(gè)數(shù)據(jù)編碼。
在步驟S341中,確定在步驟S339所獲取的第n個(gè)數(shù)據(jù)編碼是否是填 充碼。如果第n個(gè)數(shù)據(jù)編碼是填充碼(步驟S341為"是"),則表示QR編 碼Q不再包含秘密數(shù)據(jù)編碼。因此,當(dāng)前二級解碼處理結(jié)束,或圖6的步 驟S300結(jié)束,由此結(jié)束主解碼處理。
如果在步驟S341中確定第n個(gè)數(shù)據(jù)編碼不是填充碼(步驟S341為 "否"),則表示第n個(gè)數(shù)據(jù)編碼是秘密數(shù)據(jù)編碼。在該情況下,控制返回 到步驟S323,在該步驟中,再次獲取第(n+l)個(gè)數(shù)據(jù)編碼或編碼數(shù)量j(文本 長度)以執(zhí)行上述處理。
這樣,在步驟S319和S323至S335中,獲取并解碼位于末端ID碼之 后且不應(yīng)一開始就進(jìn)行解碼的數(shù)據(jù)編碼(第二數(shù)據(jù)編碼,或秘密數(shù)據(jù)編碼)。 因此,執(zhí)行這些步驟的控制電路40等對應(yīng)于權(quán)利要求中所記載的"第二解 碼單元"。如上所述,在根據(jù)第二實(shí)施例的QR編碼讀取器20中,即使當(dāng)秘密數(shù) 據(jù)編碼(第二數(shù)據(jù)編碼)位于末端ID碼之后的、原本應(yīng)該僅放置填充碼的編 碼區(qū)域(編碼區(qū)域的空閑部分)中時(shí),也能對秘密數(shù)據(jù)編碼進(jìn)行解碼。因此, 可以對出現(xiàn)在編碼區(qū)域的空閑部分中的數(shù)據(jù)編碼執(zhí)行解碼。因此,能由根 據(jù)第二實(shí)施例QR編碼讀取器20對根據(jù)第一實(shí)施例的QR編碼打印機(jī)10 打印的QR編碼Q進(jìn)行解碼。
在上述的解碼處理中,已配置為,在步驟S329中獲取第n個(gè)解碼密鑰 檢測數(shù)據(jù)。作為替代方案,如參考圖3E的第一實(shí)施例所解釋的,如果解碼 密鑰本身被嵌入到秘密數(shù)據(jù)編碼中,則在步驟S329中就可以獲取第n個(gè)解 碼密鑰。因此,即使當(dāng)QR編碼讀取器20不具有秘密數(shù)據(jù)編碼的解碼密鑰(能 夠?qū)崿F(xiàn)解碼的密鑰)時(shí),秘密數(shù)據(jù)編碼也能被解碼并恢復(fù)為原始明文。在該 情況下,執(zhí)行處理"獲取第n個(gè)解碼密鑰"的控制電路40等對應(yīng)于權(quán)利要 求中記載的"密鑰分離單元"。
即使當(dāng)用不同的加密密鑰對每個(gè)秘密數(shù)據(jù)編碼進(jìn)行加密時(shí),如果解碼 密鑰被嵌入到每個(gè)秘密數(shù)據(jù)編碼,則在步驟S329中就可以獲取第n個(gè)解碼 密鑰。因此,即使當(dāng)QR編碼讀取器20不具有秘密數(shù)據(jù)編碼的解碼密鑰時(shí), 秘密數(shù)據(jù)編碼也能被解碼并恢復(fù)為原始明文。
而且,在上述解碼處理中,在步驟S329中獲取第n個(gè)解碼密鑰檢測數(shù) 據(jù)??赡艽嬖谌缦虑闆r例如,作為位置信息的"開始位置"被添加到秘 密數(shù)據(jù)編碼中,如第一實(shí)施例中參考圖3D所述。在該情況下,在步驟S329 中,可以從秘密數(shù)據(jù)編碼中分離出"開始位置",并且根據(jù)所分離的"開始 位置",可以在數(shù)據(jù)記錄中放置具有己解碼的秘密數(shù)據(jù)編碼的秘密數(shù)據(jù)以便 具有在編碼之前的位置關(guān)系。因此,即使當(dāng)被編碼為碼字之前的數(shù)據(jù)在數(shù) 據(jù)記錄中的位置關(guān)系中無序地放置時(shí),也能夠基于位置信息將解碼數(shù)據(jù)放 置在數(shù)據(jù)記錄中以便具有編碼之前的位置關(guān)系。
在該情況下,執(zhí)行"從秘密數(shù)據(jù)編碼中分離出'開始位置'"的處理的控 制電路40等對應(yīng)于權(quán)利要求中所記載的"根據(jù)所分離的'開始位置',在數(shù) 據(jù)記錄中放置具有已解碼的秘密數(shù)據(jù)編碼的秘密數(shù)據(jù)以便具有在編碼之前 的位置關(guān)系"的處理的控制電路40等對應(yīng)于權(quán)利要求中所記載的"數(shù)據(jù)放 置單元"。[第三實(shí)施例〗
下文將參考圖8、圖9A至9F描述本發(fā)明的第三實(shí)施例。 在第三實(shí)施例中,根據(jù)第三實(shí)施例使用QR編碼打印機(jī)IO產(chǎn)生另一QR 編碼。圖8是根據(jù)本發(fā)明的第三實(shí)施例,示出由QR編碼打印機(jī)執(zhí)行的編碼 產(chǎn)生處理流程的流程圖。圖9A是打印數(shù)據(jù)的數(shù)據(jù)記錄的示例,圖9B是經(jīng) 過重新排序的數(shù)據(jù)記錄的示例,圖9C是添加了編碼之后的示例,圖9D是 圖9C所示秘密編碼的配置的示例,圖9E是圖9C所示秘密編碼的配置的 另一示例,以及圖9F是圖9C所示秘密編碼的配置的另一示例。
這里所述的QR編碼使用圖9C所示的格式,在該格式中,使用可選編 碼(例如,"00000000"、 "llllllll"等)來填充空閑區(qū)域,而不是使用填充碼 ("11101100")。
如圖8所示,編碼產(chǎn)生處理由MPU 11和存儲(chǔ)器12啟動(dòng),通過打開QR 編碼打印機(jī)10來觸發(fā)該MPU 11和存儲(chǔ)器12。當(dāng)在步驟S101中執(zhí)行了初 始化時(shí),在隨后的步驟S103接收打印數(shù)據(jù)。通過步驟S107和S111接收秘 密數(shù)據(jù),并在步驟S115中重新排序公開數(shù)據(jù)和秘密數(shù)據(jù)。然后,在步驟 S117,對包括公開數(shù)據(jù)和秘密數(shù)據(jù)的各個(gè)數(shù)據(jù)進(jìn)行編碼,隨后在步驟S119 產(chǎn)生糾錯(cuò)碼。在步驟S121,將末端ID碼放置在公開數(shù)據(jù)編碼之后。
對于在公開數(shù)據(jù)編碼之后放置末端ID碼的替換方案,例如,可以如圖 9C括出的格式所示地對編碼進(jìn)行排列。具體而言,計(jì)算每個(gè)公開數(shù)據(jù)編碼 的數(shù)據(jù)長度以獲取"公開數(shù)據(jù)編碼的碼串的末端位置"(下文簡單地稱為"末 端位置")??梢詫⑦@種用于標(biāo)識末端位置的末端位置數(shù)據(jù)放置在公開數(shù)據(jù) 編碼的頭部。
如果打印數(shù)據(jù)中包含秘密數(shù)據(jù)(步驟S123為"是"),則在步驟S125 至S133中將秘密ID碼等附加地放置在該末端位置之后。如果該末端位置 之后不包含秘密數(shù)據(jù)(步驟S123為"否"),則例如在步驟S135'中添加 "O0O0O00O"和"11111111",作為上述可選編碼。
具體而言,在將秘密數(shù)據(jù)編碼填充到從該末端位置到糾錯(cuò)碼的區(qū)域中 之后仍然存在空閑空間(編碼區(qū)域的空閑部分)的情況中,填充所述可選編碼
(例如"oooooooo"和"iiiiiiir,)。因此,例如,在步驟sioi的初始化中提前
使用該可選編碼填充構(gòu)成該數(shù)據(jù)格式的存儲(chǔ)器的所有范圍的情況下,省略了步驟S135'的處理(圖8中步驟S135'的框架線由虛線標(biāo)出)。
通過在步驟S137中附加地放置糾錯(cuò)碼,產(chǎn)生了圖9C所示的格式中的 數(shù)據(jù)編碼。然后,在隨后的步驟S139,基于這些數(shù)據(jù)編碼產(chǎn)生單元,并且 將這些單元放置在參考圖4所解釋的數(shù)據(jù)框中。除了將所述可選編碼設(shè)置 在原本應(yīng)該放置填充碼的范圍內(nèi)之外,以與參考圖2至4解釋的QR編碼的 情形相同的形式進(jìn)行配置。
如上所述,在由根據(jù)第三實(shí)施例的QR編碼打印機(jī)10的MPU 11執(zhí)行 的編碼產(chǎn)生處理所產(chǎn)生的QR編碼Q中,秘密數(shù)據(jù)編碼位于所述末端位置 之后。因此,在通用讀取器中不讀取位于末端位置之后的秘密數(shù)據(jù)編碼。 相應(yīng)地,當(dāng)由通用讀取器讀取包含該秘密數(shù)據(jù)編碼的二維編碼時(shí),由于秘 密數(shù)據(jù)編碼,讀取器不能識別要保密的數(shù)據(jù)的存在。換而言之,確保了通 用讀取器的用戶不會(huì)注意到秘密數(shù)據(jù)的存在。
以該形式,如果QR編碼Q中包含秘密數(shù)據(jù)編碼,則不能在通用讀取 器的顯示器上顯示與秘密數(shù)據(jù)編碼相對應(yīng)的數(shù)據(jù)編碼。因此,用戶就不會(huì) 注意到秘密數(shù)據(jù)的存在,并且用戶不會(huì)對讀取具有疑問,或者無意地想要 嘗試對QR編碼Q進(jìn)行解密。即使當(dāng)與秘密數(shù)據(jù)編碼相對應(yīng)的數(shù)據(jù)編碼是 控制數(shù)據(jù)時(shí),例如,也不會(huì)顯示該編碼并因此不會(huì)使屏幕顯示失真。
描述的第三實(shí)施例舉例說明了由QR編碼打印機(jī)10在標(biāo)簽P上打印 QR編碼Q的情況。本發(fā)明并不限于此,只要能夠可視化地表現(xiàn)QR編碼Q 即可。
例如,可以如此配置由計(jì)算機(jī)單元2執(zhí)行圖8所示的編碼產(chǎn)生處理, 以在顯示器3上指示QR編碼Q。在該情況下,構(gòu)成如下技術(shù)構(gòu)思
艮P,技術(shù)構(gòu)思"一種用于產(chǎn)生二維編碼的程序,所述程序使計(jì)算機(jī)用 作二維編碼產(chǎn)生設(shè)備,其中,當(dāng)被編碼為表示公開數(shù)據(jù)的碼字的公開數(shù)據(jù) 編碼的總數(shù)量小于與放置所述碼字的編碼區(qū)域中所能容納的容量相對應(yīng)的 值時(shí),將表示由位于所述編碼區(qū)域中的公開數(shù)據(jù)編碼所組成的碼串的末端 的末端ID碼放置在所述碼串的末端,或者將能夠標(biāo)識由所述公開數(shù)據(jù)編碼 所組成的碼串的末端位置的末端ID信息放置在所述碼串的預(yù)定位置上,其 特征在于,將被編碼為表示要保密的數(shù)據(jù)的碼字的秘密數(shù)據(jù)編碼放置在所 述末端BD碼之后,或者放置在由所述末端ID信息所指示的所述末端位置之后"。
因此,使用該用于產(chǎn)生二維編碼的程序,用作二維編碼產(chǎn)生設(shè)備的計(jì)
算機(jī)提供了類似于上述QR編碼打印機(jī)10的MPU 11等的優(yōu)勢。
描述的第三實(shí)施例舉例說明了計(jì)算機(jī)1連接到QR編碼打印機(jī)10以及 從計(jì)算機(jī)1傳送打印數(shù)據(jù)的配置。然而,可以將例如具有該功能的任何數(shù) 碼相機(jī)、移動(dòng)電話或手持計(jì)算機(jī)以及便攜終端連接到QR編碼打印機(jī)10以 獲取相同的優(yōu)勢,只要這些設(shè)備是能輸出字符數(shù)據(jù)的信息處理器即可,該 字符數(shù)據(jù)諸如為字母數(shù)字字符、日語字符(日本漢字)和符號。 [第四實(shí)施例]
現(xiàn)在參考圖10和11,下文描述本發(fā)明的第四實(shí)施例。
在第四實(shí)施例的解碼處理中,使用QR編碼讀取器20解碼另一QR編 碼。這里所述的"另一 QR編碼"采用了一種使用可選編碼(例如"OOOOOOOO"、 "llllllll"等沐填充空閑區(qū)域的格式。即,這里的QR編碼是由第三實(shí)施例 的QR編碼打印機(jī)10打印的QR編碼。
圖IO是根據(jù)第四實(shí)施例示出主解碼處理的流程圖。如圖所示,該主解 碼處理由控制電路40和存儲(chǔ)器35啟動(dòng),通過打開QR編碼讀取器20的電 源觸發(fā)該控制電路40和存儲(chǔ)器35。首先在步驟S201執(zhí)行初始化。然后, 在步驟S205的預(yù)定時(shí)間期滿(步驟S205為"是")之后,或在步驟S209接 收到解碼密鑰(S209為"是")之后,在步驟S213獲取圖像數(shù)據(jù)。然后在步 驟S215、 S217、 S219和S221中識別QR編碼Q的圖像。在步驟S223,確 定是否能夠糾錯(cuò)。如果確定能夠糾錯(cuò)(步驟S223為"是"),則執(zhí)行糾錯(cuò)。然 后控制進(jìn)行到步驟S300',在該步驟中執(zhí)行二級解碼處理(圖11)。
如圖11所示,在步驟S300'的二級解碼處理中,當(dāng)在步驟S301至S313 發(fā)現(xiàn)末端位置(步驟S305'為"是")時(shí),在步驟S315、 S317和S319獲取計(jì) 數(shù)器n所指示的第n個(gè)數(shù)據(jù)編碼。然后,在步驟S321確定第n個(gè)數(shù)據(jù)編碼 是否是秘密ID碼。應(yīng)該理解,術(shù)語"末端位置"指由公開數(shù)據(jù)編碼所組成 的碼串的末端位置,其能通過末端ID碼或末端位置數(shù)據(jù)標(biāo)識。當(dāng)確定第n 個(gè)數(shù)據(jù)編碼是秘密ID碼(步驟S321為"是")時(shí),在步驟S323至S331檢査 解碼密鑰的匹配情況,以便在步驟S333使用解碼密鑰對加密數(shù)據(jù)進(jìn)行解密。 然后,在步驟S335,對秘密數(shù)據(jù)編碼進(jìn)行解碼。當(dāng)在步驟S321確定該數(shù)據(jù)編碼為秘密ID碼時(shí),可以配置為,例如通 知主機(jī)HST如下事實(shí)QR編碼Q具有秘密ID碼。這能使主機(jī)理解該事實(shí) 末端ID碼之后的數(shù)據(jù)編碼是秘密數(shù)據(jù)編碼。還有可能會(huì)發(fā)生的是位于末 端ID碼之后的、原本應(yīng)該僅放置填充碼的編碼區(qū)域(編碼區(qū)域的空閑部分) 中的數(shù)據(jù)編碼既不是填充碼也不是秘密數(shù)據(jù)編碼(例如,不再是填充碼的錯(cuò) 亂填充碼)的數(shù)據(jù)編碼。在該情況下,作為秘密數(shù)據(jù)編碼的數(shù)據(jù)編碼的信息 不會(huì)被輸出到主機(jī)HST。因此,可以避免出現(xiàn)誤操作,否則,就可能由于 對秘密數(shù)據(jù)編碼之外的數(shù)據(jù)編碼進(jìn)行解碼而導(dǎo)致該誤操作。
在步驟S336',確定經(jīng)解碼的秘密數(shù)據(jù)編碼是否是最后一個(gè)秘密數(shù)據(jù)編 碼。具體而言,如圖9C所示,例如,緊鄰該秘密ID碼存儲(chǔ)了隨后的秘密 數(shù)據(jù)編碼的數(shù)據(jù)長度。因此,根據(jù)該數(shù)據(jù)長度,能確定該秘密數(shù)據(jù)編碼是 否是最后一個(gè)秘密數(shù)據(jù)編碼。此外,如上所述,在最后一個(gè)秘密數(shù)據(jù)編碼 之后,即在空閑區(qū)域(編碼區(qū)域的空閑部分)中,填充可選編碼(例如, "00000000", "llllllll"等)。因此,基于該可選編碼的存在,確定所考慮的 秘密數(shù)據(jù)編碼是否對應(yīng)于最后一個(gè)秘密數(shù)據(jù)編碼。
當(dāng)在步驟S336'確定所考慮的秘密數(shù)據(jù)編碼不是最后一個(gè)秘密數(shù)據(jù)編 碼(步驟S336'為"否")時(shí),則在步驟S337將"n+l"設(shè)置給計(jì)數(shù)器n,因 此計(jì)數(shù)器n能指示隨后的數(shù)據(jù)編碼。然后,在步驟S339,獲取第n個(gè)數(shù)據(jù) 編碼,并且然后,類似上面描述,在步驟S323至S331檢査解碼密鑰的匹 配情況。
另一方面,當(dāng)在步驟S336'確定所考慮的秘密數(shù)據(jù)編碼是最后一個(gè)秘密 數(shù)據(jù)編碼(步驟S336'為"是")時(shí),則表示QR編碼Q不再包含更多的秘密 數(shù)據(jù)編碼。因此,當(dāng)前二級解碼處理結(jié)束,或者說是圖10的步驟S300'結(jié)束。
應(yīng)該理解,在步驟S303和S313,獲取并解碼位于末端位置之前并且一 開始就應(yīng)該進(jìn)行解碼的常規(guī)數(shù)據(jù)編碼(第一數(shù)據(jù)編碼,或公開數(shù)據(jù)編碼)。因 此,執(zhí)行這些步驟的控制電路40等對應(yīng)于權(quán)利要求中所記載的"第一解碼 單元"。
同樣,在步驟S321,對步驟S319中所獲取的第n個(gè)數(shù)據(jù)編碼執(zhí)行用于 確定其是否是秘密ID碼的處理。因此,執(zhí)行步驟S321的控制電路40等對應(yīng)于權(quán)利要求中所記載的"數(shù)據(jù)編碼確定單元"或"秘密ID碼確定單元"。 而且,執(zhí)行步驟S331和S333的控制電路40等對應(yīng)于權(quán)利要求中所記載的
"密鑰匹配確定單元"或"解碼單元"。
此外,步驟S319和S323至S335執(zhí)行用于獲取并解碼位于末端位置之 后并且不應(yīng)該一開始就進(jìn)行解碼的數(shù)據(jù)編碼(第二數(shù)據(jù)編碼,或秘密數(shù)據(jù)編 碼)的處理。因此,執(zhí)行這些步驟的控制電路等對應(yīng)于權(quán)利要求中所記載的
"第二解碼單元"。
即使當(dāng)秘密數(shù)據(jù)編碼位于末端位置之后的、原本不應(yīng)該放置數(shù)據(jù)編碼 的編碼區(qū)域中(編碼區(qū)域的空閑部分)時(shí),根據(jù)上述第四實(shí)施例的QR編碼讀 取器20也能對秘密數(shù)據(jù)編碼(第二數(shù)據(jù)編碼)進(jìn)行解碼。因此,能夠?qū)Υ嬖?于要放置碼字的編碼區(qū)域的空閑部分中的數(shù)據(jù)編碼進(jìn)行解碼。
這樣,第三實(shí)施例的QR編碼打印機(jī)10打印的QR編碼Q能由第四實(shí) 施例的QR編碼讀取器20進(jìn)行解碼。
在上述的解碼處理中,已如此配置在步驟S329獲取第n個(gè)解碼密鑰 檢測數(shù)據(jù)。作為替換方案,如參考圖3E的第一實(shí)施例中解釋的,如果解碼 密鑰本身嵌入到秘密數(shù)據(jù)編碼中,則也可以在第四實(shí)施例的步驟S329中獲 取第n個(gè)解碼密鑰。因此,即使當(dāng)QR編碼讀取器20不具有秘密數(shù)據(jù)編碼 的解碼密鑰(能夠解碼的密鑰)時(shí),秘密數(shù)據(jù)編碼也能被解碼并恢復(fù)為原始明 文。在該情況下,執(zhí)行"獲取第n個(gè)解碼密鑰"的處理的控制電路40等對 應(yīng)于權(quán)利要求中所記載的"密鑰分離單元"。
即使當(dāng)用不同的加密密鑰對每個(gè)秘密數(shù)據(jù)編碼進(jìn)行加密時(shí),如果每個(gè) 秘密數(shù)據(jù)編碼都嵌入有解碼密鑰,則在步驟S329獲取第n個(gè)解碼密鑰。因 此,即使當(dāng)QR編碼讀取器20不具有秘密數(shù)據(jù)編碼的解碼密鑰時(shí),秘密數(shù) 據(jù)編碼也能被解碼并恢復(fù)為原始明文。
而且,在上述解碼處理中,在步驟S329獲取第n個(gè)解碼密鑰檢測數(shù)據(jù)。 可能存在這種情形例如,作為位置信息的"開始位置"被添加到秘密數(shù) 據(jù)編碼中,如參考第一實(shí)施例中的圖3D所述。在該情況下,在步驟S329 中從秘密數(shù)據(jù)編碼中分離出"開始位置",并且根據(jù)所分離的"開始位置", 可以在數(shù)據(jù)記錄中放置具有已解碼的秘密數(shù)據(jù)編碼的秘密數(shù)據(jù)以便具有在 編碼之前的位置關(guān)系。因此,即使當(dāng)被編碼為碼字之前的數(shù)據(jù)在數(shù)據(jù)記錄中的位置關(guān)系中無序地放置時(shí),也能夠基于位置信息將解碼數(shù)據(jù)放置在數(shù) 據(jù)記錄中以便具有編碼之前的位置關(guān)系。
在該情況下,執(zhí)行"從秘密數(shù)據(jù)編碼中分離出'開始位置,"的處理的控
制電路40等對應(yīng)于權(quán)利要求中所記載的"位置信息分離單元"。同樣,執(zhí) 行"根據(jù)所分離的'開始位置',在數(shù)據(jù)記錄中放置具有已解碼的秘密數(shù)據(jù)編 碼的秘密數(shù)據(jù)以便具有在編碼之前的位置關(guān)系"的處理的控制電路40等對 應(yīng)于權(quán)利要求中所記載的"數(shù)據(jù)放置單元"。 [第五實(shí)施例]
現(xiàn)在參考圖12和13以及圖14A至14E,下文描述本發(fā)明的第五實(shí)施例。
根據(jù)第五實(shí)施例,使用QR編碼打印機(jī)10產(chǎn)生另一 QR編碼。圖12 是根據(jù)本發(fā)明的第五實(shí)施例,示出由QR編碼打印機(jī)執(zhí)行的編碼產(chǎn)生處理的 流程的流程圖。圖13是示出圖12的具體處理的流程圖。圖14A是由第三 實(shí)施例的編碼產(chǎn)生處理所產(chǎn)生的編碼的示例(對應(yīng)于圖9C的示例),圖14B 是進(jìn)行了分散配置之后的秘密數(shù)據(jù)編碼的示例,圖14C是秘密數(shù)據(jù)編碼的 示例,該秘密數(shù)據(jù)編碼中的各個(gè)比特被重新排序或者對其比特值進(jìn)行了轉(zhuǎn) 換,圖14D是圖14C所示的秘密數(shù)據(jù)編碼的示例,圖14E是由第三實(shí)施例 (對應(yīng)9D的示例)的編碼產(chǎn)生處理所產(chǎn)生的秘密數(shù)據(jù)編碼的示例,作為與圖 14D的秘密數(shù)據(jù)編碼的比較。
這里所述的QR編碼使用圖14B所示的格式,在該格式中,對秘密數(shù) 據(jù)編碼a和P進(jìn)行了預(yù)定處理,并將其填充在預(yù)定空閑區(qū)域中。
如圖12所示,編碼產(chǎn)生處理由MPU 11和存儲(chǔ)器12啟動(dòng),通過打開 QR編碼打印機(jī)10來觸發(fā)該MPU 11和存儲(chǔ)器12。當(dāng)在步驟S101執(zhí)行了初 始化時(shí),在隨后的步驟S103接收打印數(shù)據(jù)。通過步驟S107和S111接收秘 密數(shù)據(jù),并然后控制進(jìn)行到步驟S117。在步驟S117,對包括公開數(shù)據(jù)和秘 密數(shù)據(jù)的各個(gè)數(shù)據(jù)進(jìn)行編碼,隨后在步驟S121',例如添加末端ID碼(包含 了組成公開數(shù)據(jù)編碼的碼串的末端位置)。
如果打印數(shù)據(jù)中包含秘密數(shù)據(jù)(步驟S123為"是"),則在步驟S125 和S127緊鄰該末端位置之后附加地放置秘密ID碼等。然后,在步驟S131, 對秘密數(shù)據(jù)編碼進(jìn)行加密,并且控制進(jìn)行到步驟S132,在該步驟中,將填充碼放置在空閑區(qū)域中。此后,在步驟S500執(zhí)行預(yù)定處理。如果打印數(shù)據(jù) 中不包含秘密數(shù)據(jù)(步驟S123為"否"),則控制進(jìn)行到步驟S133,跳過步 驟S125、 S127、 S131、 S132和S500的處理。
參考圖13,描述上述預(yù)定處理。如圖13所示,在步驟S501,指針i 置零。該指針i用于指示要進(jìn)行步驟S507至S517的分散配置處理的比特位 置。使用零位調(diào)整,處理開始于第O位。
在步驟S503,為末端位置之后的除了糾錯(cuò)碼范圍之外的空閑區(qū)域(參見 圖14A至14C),即原本應(yīng)該放置填充碼的區(qū)域,計(jì)算比特?cái)?shù)量n。該處理 是用于計(jì)算一個(gè)常數(shù)的處理,該常數(shù)用于獲取在稍后描述的步驟S513的偽 隨機(jī)數(shù)R。
在隨后的步驟S505,執(zhí)行計(jì)算,以獲取加密數(shù)據(jù)的比特?cái)?shù)量與解碼密 鑰檢測數(shù)據(jù)的比特?cái)?shù)量之和m(參見圖14D和14E)。具體而言,獲取受到分 散配置處理(diffusionprocess)的秘密數(shù)據(jù)編碼的比特?cái)?shù)量,以便在隨后的步 驟S519確定該分散配置處理是否已完成。
在隨后的步驟S507,采用2個(gè)字節(jié)為單位,對公開數(shù)據(jù)編碼和加密數(shù) 據(jù)執(zhí)行異或運(yùn)算(EXOR)以獲取運(yùn)算結(jié)果S。在步驟S509,將該運(yùn)算結(jié)果S 設(shè)置為步驟S513的偽隨機(jī)數(shù)的種子值。該種子值用作使用預(yù)定計(jì)算產(chǎn)生偽 隨機(jī)數(shù)的種子。相同的種子值能產(chǎn)生完全相同的隨機(jī)數(shù)。即,用該運(yùn)算結(jié) 果S的值單一地確定在步驟S513中的偽隨機(jī)數(shù)的值和產(chǎn)生順序。在這點(diǎn)上, 基于公開數(shù)據(jù)編碼的內(nèi)容來執(zhí)行當(dāng)前處理。
在步驟S511,以"1"遞增或加上指針i。因此,將例如在步驟S517 中受到分散配置處理的比特位置(即,指針?biāo)甘镜奈恢?加起來。在上面的 示例中,通過將計(jì)數(shù)從"0"遞增至"1"來指示第一比特。
在隨后的步驟S513,獲取偽隨機(jī)數(shù)R。該處理的目的是基于上述種 子值,通過執(zhí)行根據(jù)預(yù)定隨機(jī)數(shù)產(chǎn)生算法的預(yù)定信息處理,來以偽形式產(chǎn) 生隨機(jī)數(shù)。在此,在從1至n(n是空閑區(qū)域的比特?cái)?shù)量)的范圍之內(nèi)產(chǎn)生偽 隨機(jī)數(shù)。例如使用"R=rand()m0dn+1"的計(jì)算公式。
應(yīng)該理解,"mnd()"是針對種子值S而返回一個(gè)偽隨機(jī)數(shù)的函數(shù)。此 夕卜,"xmody"是計(jì)算"y"對"x"的模的函數(shù)。具體而言,在上面計(jì)算公 式中,"mod"之前的參數(shù)"x" (g卩"mnd()")是偽隨機(jī)數(shù)的值,其被"mod"之后的參數(shù)"y"(即"n")所除,然后再加上"1",從而獲取了偽隨機(jī)數(shù)R。 應(yīng)該理解,如上所述,"n"是空閑區(qū)域中的比特?cái)?shù)量。
這樣,當(dāng)在步驟S513計(jì)算了從l至n的偽隨機(jī)數(shù)R時(shí),在隨后的步驟 S515確定是否己產(chǎn)生過該偽隨機(jī)數(shù)R。具體而言,如果產(chǎn)生過與該偽隨機(jī) 數(shù)相同的值,則在隨后的步驟S517中所執(zhí)行的分散配置處理中重寫該比特 數(shù)量。因此,執(zhí)行步驟S515的處理,以便能避免中斷排列在同一比特位置 之前的值。因此,如果確定所產(chǎn)生的作為偽隨機(jī)數(shù)R的值與已經(jīng)產(chǎn)生過的 值相同(步驟S515為"是"),則控制返回到步驟S513,以再次獲取偽隨機(jī) 數(shù)R。
當(dāng)在步驟S515確定偽隨機(jī)數(shù)R并不具有與已經(jīng)產(chǎn)生的偽隨機(jī)數(shù)相同的 值(步驟S515為"否")時(shí),控制進(jìn)行到步驟S517。在步驟S517,在空閑區(qū) 域的第R比特位置處設(shè)置加密數(shù)據(jù)的第i比特(指針i所指向的比特位置)的 值。在上面示例中,第l比特的值被設(shè)置給空閑區(qū)域中的第R比特位置。 因此,最初位于第l比特的信息由無規(guī)則產(chǎn)生的隨機(jī)數(shù)轉(zhuǎn)移到第R比特位 置。
在隨后的步驟S519,確定指針i的值是否到達(dá)受到分散配置處理的秘 密數(shù)據(jù)編碼的比特?cái)?shù)量的末端(最后一個(gè)比特),即,確定分散配置處理是否 已經(jīng)完成。當(dāng)指針i的值與所有比特的數(shù)量一致時(shí),則表示已經(jīng)對秘密數(shù)據(jù) 編碼的所有比特進(jìn)行了步驟S507至S517的分散配置處理(步驟S519為 "是")。然后,當(dāng)前處理結(jié)束。
當(dāng)指針i的值與所有比特的數(shù)量不一致時(shí),表示秘密數(shù)據(jù)編碼中仍有剩 余比特沒有進(jìn)行分散配置處理(步驟S519為"否")。因此,控制返回到步 驟S511,在該步驟中,遞增指針i,以再次執(zhí)行步驟S513中的偽隨機(jī)數(shù)產(chǎn) 生處理。
這樣,對秘密數(shù)據(jù)編碼的所有比特重復(fù)地執(zhí)行步驟S513至S517的處 理。因此,根據(jù)無規(guī)則改變的偽隨機(jī)數(shù)R,轉(zhuǎn)移比特信息中原本應(yīng)該按順 序排列的第1比特、第2比特、第3比特...、第(n-l)比特和第n比特。因 此,當(dāng)步驟S500的該預(yù)定處理完成時(shí),如圖14B所示,將進(jìn)行分散配置處 理(圖14A)之前的秘密數(shù)據(jù)編碼ct和p兩者以比特為單元?jiǎng)澐譃槎鄠€(gè)段并重 新排列。此外,將填充碼通過該分散配置處理類似地劃分為多個(gè)段,然后以與秘密數(shù)據(jù)編碼段混合的狀態(tài)在空閑區(qū)域中對其進(jìn)行重新排列。
因此,經(jīng)加密的秘密數(shù)據(jù)編碼被進(jìn)一步擾亂,由此進(jìn)一步提高了安全 級別。
在當(dāng)前處理中,作為對于步驟S507至S517執(zhí)行的該分散配置處理的 替代方案,例如根據(jù)比特-位置轉(zhuǎn)換表(轉(zhuǎn)換表)來對比特重新排序,用該比 特-位置轉(zhuǎn)換表來轉(zhuǎn)換比特位置。具體而言,例如,可以提供比特-位置轉(zhuǎn)換 表,以便能根據(jù)轉(zhuǎn)換規(guī)則來轉(zhuǎn)換比特位置,在該轉(zhuǎn)換規(guī)則中,第1比特被 轉(zhuǎn)換為第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比特。因此,例如,將一個(gè)16比特的數(shù)據(jù)"1001011011010110"(96D6h) 轉(zhuǎn)換為"0101101001100001"(5A61h)。
通過使秘密數(shù)據(jù)編碼經(jīng)過該比特-位置轉(zhuǎn)換表,如上所述,數(shù)據(jù)的十六 進(jìn)制符號"96D6h"例如被轉(zhuǎn)換為"5A61h"。這能被看作是一種技術(shù)構(gòu)思其 中,能夠基于預(yù)定轉(zhuǎn)換表,轉(zhuǎn)換由構(gòu)成秘密數(shù)據(jù)編碼的多個(gè)比特所標(biāo)識的 數(shù)據(jù)值本身。應(yīng)該理解,能通過使用預(yù)定的數(shù)據(jù)-值轉(zhuǎn)換公式來執(zhí)行該數(shù)據(jù) 值轉(zhuǎn)換,在該轉(zhuǎn)換公式中,輸入數(shù)據(jù)X被加倍,接著減去1以獲取輸出 Y(=xx2-1)。
作為替代方案,秘密數(shù)據(jù)編碼可以經(jīng)過例如循環(huán)移位寄存器,因此能 夠?qū)Ρ忍匚恢眠M(jìn)行循環(huán),并將比特位置向著LSB(最低有效位)側(cè)移位預(yù)定數(shù) 量的比特。在該情況下,上面的16比特?cái)?shù)據(jù)的示例 "1001011011010110"(96D6h)被轉(zhuǎn)換為"011010010110110r(696Dh)。自然地, 移位量并不限于4個(gè)比特,而可以是1至15比特中的任何一個(gè)。同樣,移 位方向能向著MSB(最高有效位)側(cè)。
構(gòu)成在此所例舉的該16比特結(jié)構(gòu)的16個(gè)比特等同于加密數(shù)據(jù)的比特 數(shù)量與上述解碼密鑰檢測數(shù)據(jù)的比特?cái)?shù)量之和m。圖14D示出了采用除了 上述分散配置處理之外的比特重新排序或比特值轉(zhuǎn)換所產(chǎn)生的格式(加密數(shù) 據(jù)+解碼密鑰檢測數(shù)據(jù))的示例。為了進(jìn)行比較,圖14E示出由第三實(shí)施例的編碼產(chǎn)生處理所產(chǎn)生的秘密數(shù)據(jù)編碼的配置的示例。
在上述步驟S507,己經(jīng)采用2個(gè)字節(jié)為單元,對公開數(shù)據(jù)編碼和加密 數(shù)據(jù)執(zhí)行了異或操作(EXOR),以獲取運(yùn)算結(jié)果S。隨后在步驟S509,將該 運(yùn)算結(jié)果S設(shè)置為偽隨機(jī)數(shù)的種子值。作為公開數(shù)據(jù)編碼的替代方案,QR 編碼Q內(nèi)在的具體信息,例如糾錯(cuò)級(L、 M、 Q和H)或模塊數(shù)(l至40)能 與加密數(shù)據(jù)一起使用,來執(zhí)行異或運(yùn)算(EXOR)并獲取運(yùn)算結(jié)果S。關(guān)于糾 錯(cuò)級和模塊數(shù)以及規(guī)格的細(xì)節(jié),參考二維編碼符號-QR編碼-日本工業(yè)標(biāo)準(zhǔn) (JISx0510: 2004)的基本規(guī)范。
再次參考圖12,在完成步驟S500的預(yù)定處理之后,控制進(jìn)行到步驟 S133,在該步驟中,附加地放置秘密數(shù)據(jù)編碼。在隨后的步驟S134,確定 是否存在秘密數(shù)據(jù)編碼。
具體而言,如果在步驟S134確定存在秘密數(shù)據(jù)編碼(步驟S134為"是"), 則不需要隨后的用于添加填充碼的步驟S135,因?yàn)橐言谏鲜龅牟襟ES132 添加了填充碼。因此,在該情況下,跳過步驟S135,并且控制進(jìn)行到步驟 S137。另一方面,如果確定不存在秘密數(shù)據(jù)編碼,或如果只存在公開數(shù)據(jù) 編碼(步驟S134為"否"),則表示還沒有附加地放置填充碼。因此,在該 情況下,在隨后步驟S135中放置填充碼,并且控制進(jìn)行到步驟S137。
在步驟S137,添加糾錯(cuò)碼,由此產(chǎn)生了具有圖14A至14C所示的格式 的數(shù)據(jù)編碼。因此,在隨后的步驟S139,基于這些數(shù)據(jù)編碼產(chǎn)生各個(gè)單元, 并將其排列在參考圖4所解釋的數(shù)據(jù)塊中。
如上所述,在由根據(jù)第五實(shí)施例的QR編碼打印機(jī)10的MPU 11執(zhí)行 的編碼產(chǎn)生處理所產(chǎn)生的QR編碼Q中,對秘密數(shù)據(jù)編碼進(jìn)行了步驟S500 中所執(zhí)行的預(yù)定處理,并然后將其放置在末端ID碼之后或者放置在末端ID 信息所標(biāo)識的末端位置之后。利用所采用的該預(yù)定處理,確保不會(huì)識別到 秘密數(shù)據(jù)編碼的存在。因此,嘗試讀出末端ID碼之后的數(shù)據(jù)甚至不會(huì)使操 作員注意到秘密數(shù)據(jù)編碼的存在。以該形式,能進(jìn)一步提高安全級別。
在上述第五實(shí)施例中,在步驟S113之后未插入用于對公開數(shù)據(jù)和秘密 數(shù)據(jù)進(jìn)行重新排序的處理(對應(yīng)于圖2的步驟S115)。在這點(diǎn)上,打印數(shù)據(jù) 包含向第三方公開的數(shù)據(jù)(公開數(shù)據(jù))和對第三方保密的數(shù)據(jù)(秘密數(shù)據(jù))。如 果這些數(shù)據(jù)無序地位于數(shù)據(jù)記錄中,則根據(jù)"用于表示在數(shù)據(jù)記錄中的秘密數(shù)據(jù)的位置關(guān)系的位置信息"對數(shù)據(jù)進(jìn)行重新排序,從而能夠獲取公開 數(shù)據(jù)組和秘密數(shù)據(jù)組。
因此,例如,當(dāng)從計(jì)算機(jī)1傳送的打印數(shù)據(jù)包含按照公開數(shù)據(jù)A、秘 密數(shù)據(jù)a、公開數(shù)據(jù)B和秘密數(shù)據(jù)p的順序的數(shù)據(jù)時(shí),能夠在步驟S115以 公開數(shù)據(jù)A、公開數(shù)據(jù)B、秘密數(shù)據(jù)a和秘密數(shù)據(jù)P的順序重新排序這些 數(shù)據(jù)。因此,能夠?qū)⒐_數(shù)據(jù)和秘密數(shù)據(jù)進(jìn)行分組,以便于例如在后來的 步驟S121'執(zhí)行的添加末端ID碼的處理或在步驟S125中執(zhí)行的添加秘密ID 碼的處理。
現(xiàn)在參考圖15至17,下文描述本發(fā)明的第六實(shí)施例。 根據(jù)第六實(shí)施例,使用QR編碼讀取器20解碼另一 QR編碼。這里所 述的"另一 QR編碼"使用的格式為,將預(yù)定處理應(yīng)用于例如秘密數(shù)據(jù)編碼 a、 f3等(如參考圖14B所述),來填充空閑區(qū)域。
圖15是示出根據(jù)第六實(shí)施例的主解碼處理的流程圖。如圖所示,主解 碼處理由控制電路40和存儲(chǔ)器35啟動(dòng),通過打開QR編碼讀取器20的電 源觸發(fā)該控制電路40和存儲(chǔ)器35。首先在步驟S201執(zhí)行初始化。然后在 步驟S205中的預(yù)定時(shí)間期滿(步驟S205為"是")之后,或在步驟S209接 收到解碼密鑰(步驟S209為"是")之后,在步驟S213獲取圖像數(shù)據(jù)。然后在 步驟S215、 S217、 S219和S221識別QR編碼Q的圖像。在步驟S223,確 定是否能夠進(jìn)行糾錯(cuò)。如果確定能夠進(jìn)行糾錯(cuò)(步驟S223為"是"),則進(jìn) 行糾錯(cuò),并且控制進(jìn)行到步驟S300",在該步驟中執(zhí)行如圖16所示的二級 解碼處理。
如圖16所示,在步驟S300 "的二級解碼處理中,當(dāng)在步驟S301至S313 發(fā)現(xiàn)末端位置(步驟S305'為"是")時(shí),在步驟S315、 S317和S319獲取由 計(jì)數(shù)器n所指示的第n個(gè)數(shù)據(jù)編碼。然后,在步驟S321確定該第n個(gè)數(shù)據(jù) 編碼是否是秘密ID碼。應(yīng)該理解,術(shù)語"末端位置"指由公開數(shù)據(jù)編碼所 組成的碼串的末端位置,其能夠由末端ID碼或末端位置數(shù)據(jù)來標(biāo)識。當(dāng)確 定第n個(gè)數(shù)據(jù)編碼是秘密ID碼(步驟S321為"是")時(shí),控制進(jìn)行到步驟 S323,在該步驟中,獲取編碼數(shù)量(文本長度)j。然后,在步驟S600,執(zhí)行 預(yù)定的提取處理。當(dāng)在步驟S321確定了在該數(shù)據(jù)編碼處放置了秘密ID碼時(shí),能例如如 此配置以便向主機(jī)HST通知如下事實(shí)QR編碼Q具有秘密ID碼。這能使 主機(jī)HST掌握該事實(shí)末端ID碼之后的數(shù)據(jù)編碼是秘密數(shù)據(jù)編碼??赡?會(huì)發(fā)生的是位于末端ID碼之后的、原本應(yīng)該僅放置填充碼的編碼區(qū)域(編 碼區(qū)域的空閑部分)中的數(shù)據(jù)編碼既不是填充碼也不是秘密數(shù)據(jù)編碼(例如, 不再是填充碼的錯(cuò)亂填充碼)的數(shù)據(jù)編碼。在該情況下,作為秘密數(shù)據(jù)編碼 的數(shù)據(jù)編碼的信息將不會(huì)輸出到主機(jī)HST。因此,可以避免出現(xiàn)誤操作, 否則,就可能由于對秘密數(shù)據(jù)編碼之外的數(shù)據(jù)編碼進(jìn)行解碼而導(dǎo)致該誤操 作。
現(xiàn)在參考圖17,描述步驟S600的預(yù)定提取處理。應(yīng)該理解,圖17中 所示的預(yù)定提取處理類似于第五實(shí)施例中所述預(yù)定處理(圖13)的信息處理 內(nèi)容。因此,基本上與第五實(shí)施例相同的處理步驟被指定了相同的標(biāo)記并 省略了詳細(xì)說明。
如圖17所示,在該預(yù)定提取處理中,在步驟S501中將指針i置零。在 步驟S503,計(jì)算末端位置之后的比特?cái)?shù)量n(參見圖14A至14C)。在步驟 S505,計(jì)算加密數(shù)據(jù)的比特?cái)?shù)量與解碼密鑰檢測數(shù)據(jù)的比特?cái)?shù)量之和m(參 見圖14D和14E)。然后,在步驟S507,采用2個(gè)字節(jié)為單位,對公開數(shù)據(jù) 編碼和加密數(shù)據(jù)編碼執(zhí)行異或運(yùn)算(EXOR)以獲取運(yùn)算結(jié)果S。在隨后的步 驟S509,將該運(yùn)算結(jié)果S設(shè)置為偽隨機(jī)數(shù)的種子值。
如第五實(shí)施例所述,在步驟S509所設(shè)置的種子值用于通過預(yù)定計(jì)算產(chǎn) 生偽隨機(jī)數(shù)。相同的種子值能產(chǎn)生完全相同的隨機(jī)數(shù)。因此,如果QR編碼 Q是相同的,則從圖13的預(yù)定處理和當(dāng)前實(shí)施例的提取處理中所得到的種 子值是相同的。因此,隨后的步驟S513中的偽隨機(jī)數(shù)的值和這些數(shù)的產(chǎn)生 順序是相同的。
因此,在步驟S513,獲取偽隨機(jī)數(shù)R。在隨后的步驟S515,如果確定 偽隨機(jī)數(shù)R不具有與已經(jīng)產(chǎn)生的偽隨機(jī)數(shù)相同的值(步驟S515為"否"), 則控制進(jìn)行到步驟S617。在步驟S617,將空閑區(qū)域中第R比特的值設(shè)置給 加密數(shù)據(jù)緩沖器中的第i比特(由指針i所指示的位置)。
具體而言,在第五實(shí)施例的預(yù)定處理中,步驟S517已執(zhí)行將加密數(shù)據(jù) 的第i比特(由指針i所指示的比特位置)的值設(shè)置給空閑區(qū)域中第R比特的
50處理。例如,在空閑區(qū)域中第R比特設(shè)置第1比特的值。相反,在當(dāng)前提 取處理的步驟S617,將空閑區(qū)域中第R比特的值設(shè)置給加密數(shù)據(jù)緩沖器中 的第i比特(由指針i所指示的比特位置)。例如,將空閑區(qū)域中的第R比特 的值設(shè)置在加密數(shù)據(jù)緩沖器中的第i比特處。
因此,將在第五實(shí)施例的預(yù)定處理中己設(shè)置給空閑區(qū)域中第R比特的 加密數(shù)據(jù)中第i比特的值設(shè)置給加密數(shù)據(jù)緩沖器中的第i比特。這樣,就能 夠恢復(fù)已經(jīng)以比特為單位劃分為段的秘密數(shù)據(jù)編碼段。換而言之,例如, 能夠在步驟S617執(zhí)行集中恢復(fù)處理(intensive restoration process)。
然后,在步驟S519,當(dāng)指針i與秘密數(shù)據(jù)編碼的總比特?cái)?shù)量一致時(shí), 表示已經(jīng)對秘密數(shù)據(jù)編碼的所有比特進(jìn)行了上述步驟S507至S517的集中 恢復(fù)處理(步驟S519為"是")。在該情況下,該提取處理結(jié)束。另一方面, 當(dāng)指針i與秘密數(shù)據(jù)編碼的總比特?cái)?shù)量不一致時(shí),表示秘密數(shù)據(jù)編碼中的某 些比特還沒有進(jìn)行恢復(fù)處理(步驟S519為"否")。在該情況下,控制返回 到步驟S511,在該步驟中,遞增指針i,以再次在步驟S513中執(zhí)行偽隨機(jī) 數(shù)產(chǎn)生處理。
再次參考圖16,在步驟S600完成了所述預(yù)定提取處理之后,控制進(jìn)行 到步驟S325,以獲取與文本長度j相對應(yīng)的數(shù)據(jù)編碼。然后,在隨后的步 驟S329',獲取第j個(gè)解碼密鑰檢測數(shù)據(jù)(密鑰標(biāo)識信息)。
然后,在步驟S331,基于在步驟S329'所獲取的解碼密鑰檢測數(shù)據(jù),確 定在步驟S209中從主機(jī)HST接收的解碼密鑰是否適合于(匹配)用于對第j 個(gè)秘密數(shù)據(jù)編碼的加密數(shù)據(jù)進(jìn)行解碼的密鑰。當(dāng)確定解碼密鑰匹配(步驟 S331為"是")時(shí),在隨后的步驟S333對加密數(shù)據(jù)進(jìn)行解密。
另一方面,當(dāng)在步驟S331中確定解碼密鑰不匹配(步驟S331為"否") 時(shí),當(dāng)前二級解碼處理結(jié)束而不解密第n個(gè)秘密數(shù)據(jù)編碼。因此, 一旦執(zhí) 行了步驟S335中的對秘密數(shù)據(jù)編碼進(jìn)行解碼的處理,圖15的步驟S300" 就結(jié)束,從而結(jié)束主解碼處理。
在當(dāng)前提取處理中,作為在步驟S507至S617所執(zhí)行的集中恢復(fù)處理 的替換方案,能夠基于例如逆向比特-位置轉(zhuǎn)換表對比特進(jìn)行重新排序,該 逆向比特-位置轉(zhuǎn)換表能以相反方向轉(zhuǎn)換比特位置。具體而言,例如,可以 提供第六實(shí)施例的逆向比特-位置轉(zhuǎn)換表,以便能根據(jù)逆向轉(zhuǎn)換規(guī)則來逆向轉(zhuǎn)換比特位置,在該轉(zhuǎn)換規(guī)則中,第1比特被轉(zhuǎn)換到第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比特?cái)?shù)據(jù) "0101101101100001"(5A61h)例如被轉(zhuǎn)換為原文"1001011011010110" (96D6h)。
作為使秘密數(shù)據(jù)編碼經(jīng)過該逆向比特-位置轉(zhuǎn)換表的替換方案,也能使 用逆向數(shù)據(jù)-值轉(zhuǎn)換表,該表能逆向轉(zhuǎn)換由構(gòu)成秘密數(shù)據(jù)編碼的多個(gè)比特所 指定的數(shù)據(jù)值。在這點(diǎn)上,在第五實(shí)施例中解釋的數(shù)據(jù)-值轉(zhuǎn)換表中,數(shù)據(jù) 的十六進(jìn)制符號"96D6h"能夠被轉(zhuǎn)換為"5A61h"。因此,基于該能夠?qū)?"5A61h"逆向轉(zhuǎn)換為"96D6h"的預(yù)定逆向數(shù)據(jù)-值轉(zhuǎn)換表執(zhí)行轉(zhuǎn)換,來執(zhí)行恢 復(fù)處理。
作為使秘密數(shù)據(jù)編碼經(jīng)過該逆向比特-位置轉(zhuǎn)換表的替換方案,也能使 用逆向數(shù)據(jù)-值轉(zhuǎn)換公式,該公式能逆向轉(zhuǎn)換由構(gòu)成秘密數(shù)據(jù)編碼的多個(gè)比 特所指定的數(shù)據(jù)值。在這點(diǎn)上,在第五實(shí)施例中解釋的預(yù)定數(shù)據(jù)-值轉(zhuǎn)換公 式中,輸入數(shù)據(jù)X被加倍,接著減去l,以獲取輸出Y(=Xx2-l)。相反,將 輸入數(shù)據(jù)X'加上1,然后除以2,以獲取輸出Y'(=(X'+l)/2)。因此,可以執(zhí) 行恢復(fù)處理。
在使秘密數(shù)據(jù)編碼經(jīng)過第五實(shí)施例所解釋的循環(huán)移位寄存器的情況 中,可以通過使用允許在與第五實(shí)施例的預(yù)定處理相反的方向上進(jìn)行移位 的循環(huán)移位寄存器來執(zhí)行恢復(fù)處理。例如,對于上面的16比特?cái)?shù)據(jù)結(jié)構(gòu)的 示例,在所述預(yù)定處理中,已經(jīng)向LSB側(cè)執(zhí)行移位了 4個(gè)比特,以便將 "1001011011010110"(96D6h)轉(zhuǎn)換到"011010010110110r(696Dh)。為了執(zhí)行 所述恢復(fù)處理,在相反的方向上移位4個(gè)比特,即向著MSB側(cè)移位,以獲 得"1001011011010110,,(96D6h)。
類似于第五實(shí)施例,使用QR編碼Q內(nèi)在的具體信息,例如糾錯(cuò)級(L、 M、 Q和H)或模塊數(shù)(l至40)以及加密數(shù)據(jù)一起來獲取在步驟S509設(shè)置的 偽隨機(jī)數(shù)的種子值,以執(zhí)行異或運(yùn)算(EXOR)并獲取運(yùn)算結(jié)果S。關(guān)于糾錯(cuò)級和模塊數(shù)以及規(guī)格的細(xì)節(jié),參考二維編碼符號-QR編碼-日本工業(yè)標(biāo)準(zhǔn) (JISx0510: 2004)的基本規(guī)范。
應(yīng)該理解,在步驟S303至S313,通過獲取位于末端位置之前的、應(yīng)該 一開始就進(jìn)行解碼的常規(guī)數(shù)據(jù)編碼(第一數(shù)據(jù)編碼或公開數(shù)據(jù)編碼),來執(zhí)行 解碼。因此,執(zhí)行這些步驟的控制電路40等對應(yīng)于權(quán)利要求中所記載的"第 一解碼單元"。
同樣,在步驟S321,對在步驟S319獲取的第n個(gè)數(shù)據(jù)編碼進(jìn)行用于確 定其是否是秘密ID碼的處理。因此,執(zhí)行步驟S321的控制電路40等對應(yīng) 于權(quán)利要求中所記載的"數(shù)據(jù)編碼確定單元"或"秘密ID碼確定單元"。 而且,執(zhí)行步驟S333的控制電路40等對應(yīng)于權(quán)利要求中所記載的"解碼 單元"。
此外,步驟S319和S323至S335執(zhí)行用于獲取并解碼位于末端位置之 后并且不應(yīng)該一開始就進(jìn)行解碼的數(shù)據(jù)編碼(第二數(shù)據(jù)編碼,或秘密數(shù)據(jù)編 碼)的處理。因此,執(zhí)行這些步驟的控制電路40等對應(yīng)于權(quán)利要求中所記載 的"第二解碼單元"。
既使當(dāng)秘密數(shù)據(jù)編碼位于末端ID碼之后的、例如原本不應(yīng)該放置數(shù)據(jù) 編碼的編碼區(qū)域(編碼區(qū)域的空閑部分)中時(shí),根據(jù)上述第六實(shí)施例的QR編 碼讀取器20也能對秘密數(shù)據(jù)編碼(第二數(shù)據(jù)編碼)進(jìn)行解碼。因此,能夠?qū)?要放置碼字的編碼區(qū)域的空閑部分中存在的數(shù)據(jù)編碼進(jìn)行解碼。
在上述解碼處理中,如此配置為,在步驟S329'獲取第j個(gè)解碼密鑰檢 測數(shù)據(jù)。在這點(diǎn)上,如第五實(shí)施例所述,可以在步驟S113的處理之后插入 用于對公開數(shù)據(jù)和秘密數(shù)據(jù)進(jìn)行重新排序的處理(對應(yīng)于圖2的步驟S115)。 然后,根據(jù)"用于指示秘密數(shù)據(jù)在數(shù)據(jù)記錄中的位置關(guān)系的位置信息"對 數(shù)據(jù)進(jìn)行重新排序以獲取公開數(shù)據(jù)組和秘密數(shù)據(jù)組。當(dāng)執(zhí)行該處理時(shí),步 驟S329'可以執(zhí)行從秘密數(shù)據(jù)編碼中分離出"開始位置"的處理,并基于所 分離出的"開始位置",按照編碼之前的數(shù)據(jù)記錄中的位置關(guān)系中來放置具 有已解碼的秘密數(shù)據(jù)編碼的秘密數(shù)據(jù)。
因此,即使是當(dāng)被編碼為碼字之前的數(shù)據(jù)無序地位于數(shù)據(jù)記錄中的位 置關(guān)系中時(shí),也可以基于所述位置信息,按照編碼之前的位置關(guān)系放置已 解碼數(shù)據(jù)。在該情況下,執(zhí)行"從秘密數(shù)據(jù)編碼中分離出'開始位置'"的處理的控制電路40等對應(yīng)于權(quán)利要求中所記載的"位置信息分離單元"。同樣, 執(zhí)行"根據(jù)所分離的'開始位置',在數(shù)據(jù)記錄中放置具有已解碼的秘密數(shù)據(jù) 編碼的秘密數(shù)據(jù)以便具有在編碼之前的位置關(guān)系"的處理的控制電路40等 對應(yīng)于權(quán)利要求中所記載的"數(shù)據(jù)放置單元"。 [第七實(shí)施例]
參考圖18和19,下文將描述本發(fā)明的第七實(shí)施例。
圖18和19示出根據(jù)第七實(shí)施例,由QR編碼讀取器20執(zhí)行的QR編 碼Q的解碼處理的流程圖。應(yīng)該理解,這里的QR編碼Q是在上述第一至 第五實(shí)施例中包含秘密數(shù)據(jù)編碼的QR編碼。
在第七實(shí)施例中,沒有示出主解碼處理。圖18是二級解碼處理的流程 圖,該二級解碼處理能夠分別取代圖6、 10和15所示的步驟S300、 S300' 和S300"中所執(zhí)行的二級解碼處理。圖18所示的二級解碼處理代表第七實(shí) 施例。
如圖18所示,在該二級解碼處理中,當(dāng)在步驟S305'確定不存在對應(yīng) 于末端位置的數(shù)據(jù)(步驟S305'為"否")時(shí),控制進(jìn)行到隨后的步驟。應(yīng)該 理解,所述末端位置指的是位于由公開數(shù)據(jù)編碼所組成的碼串的末端處的 位置,并能由末端ID碼或末端位置數(shù)據(jù)來標(biāo)識。在步驟S307和S309,獲 取與文本長度i相對應(yīng)的多個(gè)數(shù)據(jù)編碼,然后在步驟S310,確定是否要對
公開數(shù)據(jù)編碼進(jìn)行解碼。
具體而言,在步驟S310,根據(jù)"讀取標(biāo)記S"(下文將參考圖19說明) 的狀態(tài),確定用于對公開數(shù)據(jù)編碼進(jìn)行解碼的信息是否被設(shè)置給讀取標(biāo)記 S。讀取標(biāo)記S的狀態(tài)能夠表示為(1)標(biāo)記S4:只對公開數(shù)據(jù)編碼進(jìn)行解 碼;(2)標(biāo)記S=2:只對秘密數(shù)據(jù)編碼進(jìn)行解碼;(3)標(biāo)記S=0:對公開數(shù)據(jù) 編碼和秘密數(shù)據(jù)編碼進(jìn)行解碼。例如,該讀取標(biāo)記S設(shè)置在構(gòu)成QR編碼 讀取器20的存儲(chǔ)器35的預(yù)定區(qū)域或寄存器中。在讀取標(biāo)記設(shè)置處理(參見 圖19)中設(shè)置該標(biāo)記S,這將在下文說明。
在標(biāo)記S=l或S=0被設(shè)置為讀取標(biāo)記(步驟S310為"是")的情況下, 控制進(jìn)行到隨后的步驟S311,在該步驟中,執(zhí)行用于對公開數(shù)據(jù)進(jìn)行解碼 的處理。在標(biāo)記S-2被設(shè)置為讀取標(biāo)記(步驟S310為"否")的情況下,跳 過步驟S311的處理,并且控制進(jìn)行到步驟S313和S303,在該步驟中,例如,獲取隨后的數(shù)據(jù)編碼。
另一方面,當(dāng)在步驟S301至S313,發(fā)現(xiàn)末端位置(位于由公開數(shù)據(jù)編 碼所組成的碼串的末端處的位置,并且該位置能由末端ID碼或末端位置數(shù) 據(jù)來標(biāo)識)時(shí)(步驟S305'為"是"),控制進(jìn)行到步驟S314,在該步驟中, 確定是否要對秘密數(shù)據(jù)編碼進(jìn)行解碼。
具體而言,與上述步驟S310的處理相對照,在步驟S314中根據(jù)該讀 取標(biāo)記S來確定是否應(yīng)該對秘密數(shù)據(jù)編碼進(jìn)行解碼。更具體而言,在標(biāo)記 S=2或S=0被設(shè)置為讀取標(biāo)記(步驟S314為"是")的情況下,控制進(jìn)行到 隨后的歩驟S315至S335,在這些步驟中對秘密數(shù)據(jù)編碼進(jìn)行解碼。在標(biāo)記 S=l被設(shè)置為讀取標(biāo)記(步驟S314為"否")的情況下,當(dāng)前二級解碼處理
結(jié)束o
現(xiàn)在參考圖19,描述讀取標(biāo)記設(shè)置處理。讀取標(biāo)記設(shè)置處理包括在維 護(hù)程序中,當(dāng)改變、取消或初始化構(gòu)成QR編碼讀取器20的硬件的各種設(shè) 置(例如,蜂鳴聲音的開/關(guān)狀態(tài),或LCD 46的背光的開/關(guān)狀態(tài))時(shí)啟動(dòng)該 維護(hù)程序。因此,讀取標(biāo)記設(shè)置處理并不包括在常規(guī)主解碼處理中(圖6、 10和15)。這里省略根據(jù)所述維護(hù)程序執(zhí)行所述維護(hù)處理的流程圖及其說 明。
如圖19所示,在讀取標(biāo)記設(shè)置處理中,首先在步驟S901執(zhí)行初始化, 包括將讀取標(biāo)記設(shè)置為"0" (S=0)。然后,在步驟S903,清空計(jì)吋器的值。 在步驟S905,使用該計(jì)時(shí)器計(jì)算消逝時(shí)間,以確定預(yù)定時(shí)間是否期滿。
如果在步驟S905確定所述預(yù)定時(shí)間還沒期滿(步驟S905為"否"),則 在隨后的步驟S907確定是否已接收到命令。例如,該命令從主機(jī)HST接 收,或者在上述維護(hù)程序中由構(gòu)成QR編碼讀取器20的操作開關(guān)42輸入。
如果在步驟S907確定還沒接收到命令(步驟S907為"否"),則控制返 回到步驟S905,在該步驟中再次確定預(yù)定時(shí)間是否期滿。另一方面,如果 確定己接收到命令(步驟S907為"是"),則控制進(jìn)行到隨后的步驟S909, 在步驟S909判斷所接收命令的內(nèi)容。
具體而言,步驟S卯9進(jìn)行的判斷如下。即,當(dāng)命令用于(l)只對公開數(shù) 據(jù)編碼進(jìn)行解碼時(shí),在步驟S911中將讀取標(biāo)記S設(shè)置"1" (S=l)。當(dāng)命令 用于(2)只對秘密數(shù)據(jù)編碼進(jìn)行解碼時(shí),在步驟S913中將讀取標(biāo)記S設(shè)置"2"(S=2)。當(dāng)命令既不是(1)也不是(2)時(shí),讀取標(biāo)記S保持設(shè)置為"0",以結(jié)束 該讀取標(biāo)記設(shè)置處理。換而言之,在該情況下,在上述步驟S901中缺省設(shè) 置為"0",并且照原樣使用它,以便使讀取標(biāo)記S執(zhí)行(3)對公開和秘密數(shù) 據(jù)編碼進(jìn)行解碼。
在步驟S911或S913中已經(jīng)設(shè)置了讀取標(biāo)記之后,結(jié)束該讀取標(biāo)記設(shè) 置處理。應(yīng)該理解,步驟S310和S314可以對應(yīng)于權(quán)利要求中所記載的"解 碼功能選擇單元"。此外,步驟S311對應(yīng)于權(quán)利要求中所記載的"第一數(shù) 據(jù)編碼的解碼功能",而步驟S335對應(yīng)于權(quán)利要求中所記載的"第二數(shù)據(jù) 編碼的解碼功能"。
如上所述,在根據(jù)第七實(shí)施例的QR編碼讀取器20中,QR編碼讀取 器20的用戶能選擇以下至少一種對公開數(shù)據(jù)編碼進(jìn)行解碼;以及對秘密 數(shù)據(jù)編碼進(jìn)行解碼。因此,在用戶希望讀取秘密數(shù)據(jù)編碼而不是公開數(shù)據(jù) 編碼的情況下,可以節(jié)約執(zhí)行不必要解碼處理所花費(fèi)的解碼時(shí)間;反之亦 然。因此,能縮短解碼時(shí)間。
在某些上述實(shí)施例中,諸如第一實(shí)施例(圖2)和第三實(shí)施例(圖8),在編 碼產(chǎn)生處理的步驟S119中產(chǎn)生糾錯(cuò)碼。然而,糾錯(cuò)碼并不必須在步驟S119 產(chǎn)生。作為可替換方案,例如,編碼產(chǎn)生處理的流程可以這樣配置在之 前的步驟執(zhí)行與步驟S119的處理(糾錯(cuò)碼產(chǎn)生處理)相對應(yīng)的處理,例如添 加糾錯(cuò)碼(步驟S137)。
參考圖1A、 1B、 20和22,現(xiàn)在將描述本發(fā)明的第八實(shí)施例。 本實(shí)施例采用了已參考圖1A和1B描述了其配置的QR編碼打印機(jī)10。 因此,根據(jù)QR編碼打印機(jī)IO,將從計(jì)算機(jī)1輸出并輸入到QR編碼 打印機(jī)10的打印數(shù)據(jù)通過接口 13臨時(shí)存儲(chǔ)在存儲(chǔ)器12的緩沖區(qū)中,并且 對其進(jìn)行下述的編碼產(chǎn)生處理。
參考圖20、 21和4,下文將描述編碼產(chǎn)生處理。圖20是示出編碼產(chǎn)生 處理的流程的流程圖。圖21A-21E示出進(jìn)行圖20所示編碼產(chǎn)生處理中的信 息處理的數(shù)據(jù)和編碼的格式的示例。具體而言,圖21A是打印數(shù)據(jù)的數(shù)據(jù) 記錄的示例,圖21B是添加了編碼之后的示例,圖21C是圖21B所示秘密 編碼的配置的示例,圖21D是圖21B所示秘密編碼的配置的另一示例,以及圖21E是圖21B所示秘密編碼的配置的又一示例。
如圖20所示,編碼產(chǎn)生處理由MPU 11和存儲(chǔ)器12啟動(dòng),通過打開 QR編碼打印機(jī)10的電源觸發(fā)該MPU 11和存儲(chǔ)器12。首先,在步驟S1101 執(zhí)行初始化。在該處理中,清空存儲(chǔ)器12中用于存儲(chǔ)數(shù)據(jù)的操作區(qū)和緩沖 區(qū),或清空存儲(chǔ)器12中的預(yù)定標(biāo)記、計(jì)數(shù)器、等等。
在步驟S1103,確定是否已接收到打印數(shù)據(jù)。重復(fù)該步驟直到接收到打 印數(shù)據(jù)為止(步驟S1103為"否")。當(dāng)確定接收到打印數(shù)據(jù)(步驟S1103為 "是")時(shí),控制進(jìn)行到隨后的步驟S105。應(yīng)該理解,所接收的數(shù)據(jù)除了打 印數(shù)據(jù)之外還包括加密密鑰數(shù)據(jù)。具體而言,如下文所述,當(dāng)需要對秘密 數(shù)據(jù)編碼進(jìn)行加密時(shí),還在該步驟S1103中接收加密密鑰數(shù)據(jù)。這里所接 收到的打印數(shù)據(jù)都打算向第三方保密(秘密數(shù)據(jù)),并因此不包括向第三方公 開的數(shù)據(jù)(公開數(shù)據(jù))。因此,這些打印數(shù)據(jù)在下面的說明中都被處理為秘密 數(shù)據(jù)。
在隨后的步驟S1105,根據(jù)JIS的基本規(guī)范(JISx0510: 2004)對秘密數(shù) 據(jù)進(jìn)行編碼。因此,將秘密數(shù)據(jù)編碼為碼字,以產(chǎn)生秘密數(shù)據(jù)編碼。例如, 如圖21A所示,當(dāng)在步驟S1103接收到的打印數(shù)據(jù)是秘密數(shù)據(jù)a和p時(shí), 計(jì)算在步驟S1105中所編碼的秘密數(shù)據(jù)編碼a和|3的數(shù)據(jù)長度之和,并將 結(jié)果添加在緊鄰秘密數(shù)據(jù)編碼a之前,如圖21B所示。
在隨后的步驟S1107,計(jì)算秘密數(shù)據(jù)編碼的長度,并對其進(jìn)行編碼,并 將其添加在緊鄰秘密數(shù)據(jù)編碼之前。因此,可以知道放置秘密數(shù)據(jù)編碼的 區(qū)域和范圍。由此,例如,在用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理中所產(chǎn) 生的QR編碼Q進(jìn)行解碼時(shí),可以知道秘密數(shù)據(jù)編碼在多遠(yuǎn)處出現(xiàn),以及 秘密數(shù)據(jù)編碼是否是經(jīng)加密的數(shù)據(jù)編碼。
在步驟S1109,在步驟S1107已編碼的數(shù)據(jù)長度之前附加地放置秘密ID 碼。該秘密ID碼明確地表示緊鄰(在隨后的步驟Sllll添加)末端ID碼之后 的數(shù)據(jù)編碼是"已被編碼為表示數(shù)據(jù)的碼字的數(shù)據(jù)編碼"。由此,例如,在 用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理中所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí), 可以識別在QR編碼Q中的包含秘密數(shù)據(jù)編碼的編碼。因此,可以避免對 不用讀取的數(shù)據(jù)或錯(cuò)亂碼數(shù)據(jù)進(jìn)行錯(cuò)誤識別并將其讀作秘密數(shù)據(jù)編碼。因 此,也可以避免發(fā)生由于基于錯(cuò)誤認(rèn)知的讀取所造成的誤操作。然后,在隨后的步驟Sllll,緊鄰秘密ID碼之前添加末端ID碼。例如, 末端ID碼是"0000"的4比特模式。在當(dāng)前實(shí)施例中,在如上所述的步驟 S1103中所接收的打印數(shù)據(jù)中不包含公開數(shù)據(jù)。因此,如圖21B所示,不 存在一般位于緊鄰末端ID碼之前的公開數(shù)據(jù),并因此末端ID碼位于頭部。
經(jīng)過上述步驟S1105至Sllll的處理,可以在秘密數(shù)據(jù)編碼之后添加 填充碼或糾錯(cuò)碼。然而,在當(dāng)前實(shí)施例中,如圖21C所示,在這些處理之 后執(zhí)行用于對秘密數(shù)據(jù)編碼進(jìn)行加密的處理。
具體而言,在步驟S1113,確定是否存在加密密鑰,以確定是否需要對 秘密數(shù)據(jù)編碼進(jìn)行加密。換而言之,在已經(jīng)在步驟S1103中從計(jì)算機(jī)1接 收到加密密鑰數(shù)據(jù)的情況下,則確定存在加密密鑰(步驟S1113為"是"), 并且控制進(jìn)行到步驟S1115,以執(zhí)行加密處理。同時(shí),在步驟S1103中沒有 從計(jì)算機(jī)1接收到加密密鑰的情況下,則確定不存在加密密鑰(步驟S1113 為"否")。因此,跳過步驟S1115的加密處理,并且控制進(jìn)行到步驟S1117。
即使是當(dāng)在步驟S1103中沒有接收到加密密鑰數(shù)據(jù)時(shí),如果計(jì)算機(jī)1 在諸如存儲(chǔ)器12或硬盤等的信息存儲(chǔ)介質(zhì)中保存了加密密鑰,則確定存在 加密密鑰(步驟S1113為"是")。因此,在步驟S1115中執(zhí)行加密處理。
在步驟S1115,對秘密數(shù)據(jù)編碼進(jìn)行加密。在該處理中,通過使用例如 公知的綜合可視化密碼技術(shù)(綜合可視化秘密發(fā)布處理),來對秘密數(shù)據(jù)編碼 進(jìn)行加密。這樣,與添加未加密的明文的情況相比,提高了安全性。
正如能從圖21C所示的示例中看出的,例如,對秘密數(shù)據(jù)編碼(x進(jìn)行 加密以獲取"加密數(shù)據(jù)",并且在同時(shí)產(chǎn)生"開始位置"、"文本長度"和"解 碼密鑰檢測數(shù)據(jù)"。將最初進(jìn)行放置的"開始位置"作為經(jīng)加密的秘密數(shù)據(jù) 的位置信息給出。當(dāng)將地址零賦予打印數(shù)據(jù)的頭部時(shí), 一個(gè)表示性的地址 值可以對應(yīng)于該"開始位置"。隨后的"文本長度"是經(jīng)加密的秘密數(shù)據(jù)的 字符數(shù)量。經(jīng)常會(huì)發(fā)生的是編碼為碼字之前的數(shù)據(jù)在數(shù)據(jù)記錄中的位置 關(guān)系中無序地放置。即使是在該情況下,例如,在使用QR編碼讀取器對當(dāng) 前編碼產(chǎn)生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),可以根據(jù)上述位置信息, 將已解碼的數(shù)據(jù)置于數(shù)據(jù)記錄中以便能夠具有在編碼之前的位置關(guān)系。
最后添加的"解碼密鑰檢測數(shù)據(jù)"是密鑰標(biāo)識信息,用該信息可以標(biāo) 識用于對密碼進(jìn)行解密的解碼密鑰。當(dāng)密鑰加密技術(shù)(也稱為"秘密密鑰加密技術(shù)")在加密密鑰和解碼密鑰之間是公共的時(shí),解碼密鑰檢測數(shù)據(jù)也能
標(biāo)識加密密鑰。因此,例如,在使用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理所 產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),能輕松地為秘密數(shù)據(jù)編碼標(biāo)識解碼密鑰(能 夠解碼的密鑰),或者確定所考慮的密鑰是否是解碼密鑰。
以與秘密數(shù)據(jù)編碼a類似的形式配置秘密數(shù)據(jù)編碼p。在這里,可以添 加與用于對秘密數(shù)據(jù)a進(jìn)行解碼的解碼密鑰相同的信息,以用作"解碼密 鑰檢測數(shù)據(jù)"。作為替代方案,當(dāng)使用與秘密數(shù)據(jù)編碼a不同的加密密鑰對 秘密數(shù)據(jù)編碼卩的密碼數(shù)據(jù)進(jìn)行加密時(shí),可以添加不同的用于標(biāo)識解碼密 鑰的"解碼密鑰檢測數(shù)據(jù)"。因此,例如,在使用QR編碼讀取器對當(dāng)前編 碼產(chǎn)生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),能輕松為每個(gè)秘密數(shù)據(jù)編碼 標(biāo)識能解碼的密鑰,或者確定所考慮的密鑰是否是解碼密鑰。
在隨后的步驟S1117,根據(jù)JIS基本規(guī)范(JISx0510: 2004),在秘密數(shù) 據(jù)編碼之后添加填充碼。然后,在步驟S1119,根據(jù)JIS基本規(guī)范(JISx0510: 2004),產(chǎn)生秘密數(shù)據(jù)的糾錯(cuò)符號。進(jìn)一步編碼該符號,以產(chǎn)生糾錯(cuò)碼。
在步驟S1121,基于步驟S1119所產(chǎn)生的數(shù)據(jù)編碼,產(chǎn)生各個(gè)單元,然 后將各個(gè)單元放置在圖4所示的數(shù)據(jù)框中。具體而言,圖4所示的類型1 的QR編碼具有正方形,該正方形的一個(gè)邊對應(yīng)于21個(gè)單元(模塊)。因此, 除了在三個(gè)角上設(shè)置的位置檢測圖案之外的編碼區(qū),形成了信息區(qū)(圖4中 的陰影區(qū))和時(shí)序圖案,并用于放置26個(gè)數(shù)據(jù)i央(A0—A25),每個(gè)數(shù)據(jù)塊都 由4行2列排列的8個(gè)單元組成。
例如,在圖21B所示的示例中,末端ID碼位于對應(yīng)于數(shù)據(jù)區(qū)頭部的塊 A0。此外,通常放置填充碼的塊Al和隨后的塊用于放置其他編碼。艮P, 秘密ID碼位于塊Al中,數(shù)據(jù)長度位于塊A2中,秘密ID碼a位于塊A3 至A6中,以及秘密數(shù)據(jù)編碼|3位于塊A7至A9中。類似于常規(guī)使用的QR 編碼,糾錯(cuò)碼位于剩余的塊A20至A25中。填充碼放置在這些塊之間的空 閑空間中,即在塊A10至A19中。設(shè)置有所插入的時(shí)序圖案的塊A15和 A18被分別劃分為塊A15和A15',以及塊A18和A18'。
如圖21D所示,可以在步驟S1115中添加解碼密鑰本身,而不是添加 "解碼密鑰檢測數(shù)據(jù)"。因此,例如,在使用QR編碼讀取器對當(dāng)前編碼產(chǎn) 生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),即使當(dāng)例如QR編碼讀取器不具有秘密數(shù)據(jù)編碼a的解碼密鑰時(shí),也能對秘密數(shù)據(jù)編碼a進(jìn)行解碼以獲取 原始明文。
類似的,關(guān)于秘密數(shù)據(jù)編碼卩,添加解碼密鑰本身,而不是添加"解碼 密鑰檢測數(shù)據(jù)"。所添加的解碼密鑰可以與用于對秘密數(shù)據(jù)編碼a進(jìn)行解碼 的解碼密鑰相同。作為替換方案,當(dāng)使用與秘密數(shù)據(jù)編碼a不同的加密密 鑰對秘密數(shù)據(jù)編碼P的秘密數(shù)據(jù)進(jìn)行加密時(shí),可以添加與不同加密密鑰相 對應(yīng)的不同解碼密鑰。因此,例如,在使用QR編碼讀取器對當(dāng)前編碼所產(chǎn) 生處理產(chǎn)生的QR編碼Q進(jìn)行解碼時(shí),即使當(dāng)例如QR編碼讀取器不具有 秘密數(shù)據(jù)編碼p的解碼密鑰時(shí),也能夠?qū)γ孛軘?shù)據(jù)編碼p進(jìn)行解碼以獲取 原始明文。
有時(shí)可能會(huì)在步驟S1113中確定不存在加密密鑰(步驟S1113為"否")。 在該情況下,如圖21E所示,可以在步驟S1113和S1117之間提供附加步 驟。在該附加步驟中,在沒有加密的明文數(shù)據(jù)之前,添加已在步驟S1115 中添加的"開始位置"和"文本長度"。同樣,經(jīng)常會(huì)發(fā)生編碼為碼字之 前的數(shù)據(jù)在數(shù)據(jù)記錄的位置關(guān)系中無序地放置。即使在該情況下,例如, 在使用QR編碼讀取器對當(dāng)前編碼產(chǎn)生處理所產(chǎn)生的QR編碼Q進(jìn)行解碼 時(shí),可以根據(jù)位置信息將解碼數(shù)據(jù)放置在數(shù)據(jù)記錄中以便具有編碼之前的 位置關(guān)系。
如上所述,根據(jù)本發(fā)明第八實(shí)施例的QR編碼打印機(jī)IO通過在MPU 11 的幫助下執(zhí)行編碼產(chǎn)生處理而產(chǎn)生QR編碼Q。在QR編碼Q中,在步驟 Sllll中將末端ID碼放置在編碼區(qū)域的初始部分,并且在步驟Sllll中將 秘密數(shù)據(jù)編碼放置在末端ID碼之后,取代部分或所有的填充碼。即,末端 ID碼位于數(shù)據(jù)編碼的頭部(在編碼區(qū)域的初始部分),由此能夠產(chǎn)生不包含 公開數(shù)據(jù)編碼的數(shù)據(jù)編碼(公開代碼的總數(shù)量為零),秘密數(shù)據(jù)編碼位于末端 ID碼之后,取代部分或所有的填充碼。
因此,在通用讀取器中不讀取位于末端ID碼之后的秘密數(shù)據(jù)編碼。因 此,在該情況下,由于通用讀取器認(rèn)為已經(jīng)讀取到了不存在編碼數(shù)據(jù)的空 閑(空)QR編碼,所以讀取器的用戶不會(huì)認(rèn)知到秘密數(shù)據(jù)的存在。這樣,避 免了通用讀取器的用戶認(rèn)知到秘密數(shù)據(jù)的存在。
因此,在通用讀取器中,即使當(dāng)存在該秘密數(shù)據(jù)編碼時(shí),在屏幕上也不會(huì)顯示與該秘密數(shù)據(jù)編碼相對應(yīng)的數(shù)據(jù)編碼。因此,可以避免用戶認(rèn)知 到秘密數(shù)據(jù)的存在。而且,并且用戶不會(huì)對讀取具有疑問,或者無意地想
要嘗試對QR編碼Q進(jìn)行解密。另外,例如,即使當(dāng)與秘密數(shù)據(jù)編碼的解 碼數(shù)據(jù)相對應(yīng)的數(shù)據(jù)是控制數(shù)據(jù)時(shí),也不會(huì)在屏幕上顯示該數(shù)據(jù)并因此不 會(huì)使屏幕顯示失真。
已描述的第八實(shí)施例舉例說明了由QR編碼打印機(jī)10在標(biāo)簽P上打印 QR編碼Q的情況。本發(fā)明并不限于該實(shí)施例,而是可以包含能夠可視化地 表現(xiàn)QR編碼Q的任何組件。
例如,能如此配置由計(jì)算機(jī)單元2執(zhí)行圖20所示的編碼產(chǎn)生處理, 以在顯示器3上顯示QR編碼Q。在該情況下,構(gòu)成如下技術(shù)構(gòu)思
艮P,技術(shù)構(gòu)思"一種用于產(chǎn)生二維編碼的程序,所述程序使計(jì)算機(jī)用 作二維編碼產(chǎn)生設(shè)備,其中,當(dāng)被編碼為表示公開數(shù)據(jù)的碼字的公開數(shù)據(jù) 編碼的總數(shù)量小于與放置所述碼字的編碼區(qū)域中所能容納的容量相對應(yīng)的 值時(shí),將表示由位于所述編碼區(qū)域中的公開數(shù)據(jù)編碼所組成的碼串的末端 的末端ID碼放置在所述碼串的末端,并且將表示沒有數(shù)據(jù)的填充碼放置在 所述編碼區(qū)域的空閑部分中,其特征在于不存在所述公開數(shù)據(jù)編碼,艮P, 所述公開數(shù)據(jù)編碼的總數(shù)量為零;所述末端ID碼位于所述編碼數(shù)據(jù)的初始 部分;并且將被編碼為表示秘密數(shù)據(jù)的碼字的秘密數(shù)據(jù)編碼放置在所述末 端ID碼之后,取代一部分或所有的所述填充碼"。
因此,使用所述用于產(chǎn)生二維編碼的程序,用作二維編碼產(chǎn)生設(shè)備的 計(jì)算機(jī)可以提供類似于例如上述QR編碼打印機(jī)10的MPU 11等的優(yōu)勢。
描述的第八實(shí)施例舉例說明了計(jì)算機(jī)1連接到QR編碼打印機(jī)10以及 從計(jì)算機(jī)1傳送打印數(shù)據(jù)的配置。然而,可以將例如具有該功能的任何數(shù) 碼相機(jī)、移動(dòng)電話或手持計(jì)算機(jī)以及便攜終端連接到QR編碼打印機(jī)10以 獲取相同的優(yōu)勢,只要這些設(shè)備是能輸出字符數(shù)據(jù)的信息處理器即可,該 字符數(shù)據(jù)諸如為字母數(shù)字字符、日語字符(日本漢字)和符號。
參考圖4、 5、 6和22,現(xiàn)在將描述本發(fā)明的第九實(shí)施例。 根據(jù)第九實(shí)施例,QR編碼讀取器20具有能夠?qū)τ傻诰艑?shí)施例中所述 的QR編碼打印機(jī)10打印的QR編碼Q進(jìn)行解碼的配置。QR編碼讀取器20經(jīng)配置以便也能夠?qū)ζ胀≦R編碼(在該普通QR編碼中,公開數(shù)據(jù)編碼 位于末端ID碼之前)進(jìn)行解碼。應(yīng)該理解,已參考圖21A至21E和圖4, 描述了能夠由QR編碼讀取器20進(jìn)行解碼的QR編碼Q的配置。因此,這 里省略其說明。
本發(fā)明采用已在圖5中說明了其配置的QR編碼讀取器20,因此QR 編碼讀取器20的每個(gè)組件按照與上述方式相同的方式運(yùn)行。 參考圖4、 6和22,下文描述解碼處理。
如圖6所述,主解碼處理由控制電路40和存儲(chǔ)器35啟動(dòng),在打開QR 編碼讀取器20時(shí)觸發(fā)該控制電路40和存儲(chǔ)器35。該主解碼處理與上文所 述的相同。
因此,當(dāng)已正確執(zhí)行了糾錯(cuò)(步驟S223為"是")時(shí),控制進(jìn)行到步驟 S300,在該步驟中執(zhí)行二級解碼處理。
S300的細(xì)節(jié)如圖22所示。下文參考圖22描述二級解碼處理。如圖22 所示,在二級解碼處理中,首先在步驟S1301將"0"(零)設(shè)置給計(jì)數(shù)器n 和Crit。在當(dāng)前二級解碼處理中,計(jì)數(shù)器n用作指示構(gòu)成QR編碼Q的數(shù)據(jù) 編碼的順序的變量。計(jì)數(shù)器Cnt用作指示諸如在普通QR編碼中所包含的公 開數(shù)據(jù)編碼的數(shù)量的變量。
在步驟S1303,獲取由計(jì)數(shù)器n指示的第n個(gè)數(shù)據(jù)編碼。在隨后的步驟 S1305,確定在步驟S1303獲取的第n個(gè)數(shù)據(jù)編碼是否是末端ID碼。如果 確定該數(shù)據(jù)編碼是末端ID碼(步驟S1305為"是"),則讀出的QR編碼是 第九實(shí)施例中所產(chǎn)生的QR編碼Q,或者讀出的QR編碼并不包含任何位于 末端ID碼之前的常規(guī)數(shù)據(jù)編碼。因此,控制進(jìn)行到步驟S1315。
同時(shí),如果確定該數(shù)據(jù)編碼不是末端ID碼(步驟S1305為"否"),則 讀出的QR編碼就不是第八實(shí)施例中所產(chǎn)生的QR編碼Q,而是普通的QR 編碼。這表示QR編碼在所考慮的第n個(gè)數(shù)據(jù)編碼之后仍然具有普通數(shù)據(jù)編 碼。因此,控制進(jìn)行到步驟S1307,在該步驟中獲取隨后的數(shù)據(jù)編碼,艮P, 第(n+l)個(gè)數(shù)據(jù)編碼,或者說是編碼數(shù)量(文本長度)i。如參考圖21C的第八 實(shí)施例所述,這基于如下事實(shí)文本長度存儲(chǔ)在與第二個(gè)數(shù)據(jù)編碼相對應(yīng) 的位置中。在JIS基本規(guī)范(JISx0510: 2004)的"8.4數(shù)據(jù)的編碼"中描述 了該細(xì)節(jié)。在步驟S1307獲取文本長度i之后,在隨后的步驟S1309獲取與文本長 度i相對應(yīng)的多個(gè)數(shù)據(jù)編碼。然后,在步驟S1311,對于這些數(shù)據(jù)編碼,即 公開數(shù)據(jù)編碼(被編碼為表示要公開的數(shù)據(jù)的碼字的數(shù)據(jù)編碼)進(jìn)行解碼。
在完成步驟S1311的解碼處理之后,控制進(jìn)行到步驟S1313,在該步驟 中,將"n+i+l"設(shè)置給計(jì)數(shù)器n,以便計(jì)數(shù)器n能指示隨后的數(shù)據(jù)編碼, 并且將"Cnt+l"設(shè)置給計(jì)數(shù)器Cnt,以便計(jì)數(shù)器Cnt能夠?qū)⒐_數(shù)據(jù)編碼 的數(shù)量遞增l。然后,控制返回到步驟S1303,以獲取第n個(gè)數(shù)據(jù)編碼。
這樣,在步驟S1303到S1313中,獲取并解碼位于末端ID碼之前的、 一開始就應(yīng)該進(jìn)行解碼的常規(guī)數(shù)據(jù)編碼(第一數(shù)據(jù)編碼,或公開數(shù)據(jù)編碼)。
當(dāng)在步驟S1305確定獲取的第n個(gè)數(shù)據(jù)編碼是末端ID碼(步驟S1305 為"是")時(shí),控制進(jìn)行到步驟S1314,在該步驟中確定計(jì)數(shù)器Cnt的值是 否大于"0"(零)。
具體而言,如果用于對公開數(shù)據(jù)編碼進(jìn)行計(jì)數(shù)的計(jì)數(shù)器Cnt的值大于 "O"(零)(步驟S1314為"是"),則表示讀出的QR編碼包含公開數(shù)據(jù)編碼。 因此,控制進(jìn)行到步驟S1343,跳過用于執(zhí)行與秘密數(shù)據(jù)編碼相關(guān)的處理的 歩驟S1315至S1341。這樣,由于能夠確定在末端ID碼之前是否放置了公 開數(shù)據(jù)編碼(第一數(shù)據(jù)編碼),執(zhí)行步驟S1314的處理的控制電路40等對應(yīng) 于權(quán)利要求中所記載的"第一數(shù)據(jù)編碼確定單元"。
另一方面,如果計(jì)數(shù)器Cnt的值不大于"0"(零)(步驟S1314為"否"), 即,當(dāng)計(jì)數(shù)器Cnt的值是"0"(零)時(shí),則表示讀出的QR編碼不包含公開 數(shù)據(jù)編碼。在該情況下,控制進(jìn)行到步驟S1315,在該步驟中,將"n+l" 設(shè)置給計(jì)數(shù)器n。然后,在步驟S1317,獲取第n個(gè)數(shù)據(jù)編碼。
在隨后的步驟S1319,確定在步驟S1317獲取的第n個(gè)數(shù)據(jù)編碼是否是 秘密ID碼。這能夠確定在末端ID碼之后是否存在任何秘密數(shù)據(jù)編碼(第二 數(shù)據(jù)編碼)。因此,執(zhí)行步驟S1319的處理的控制電路40等對應(yīng)于權(quán)利要求 中所記載的"第二數(shù)據(jù)編碼確定單元"。
當(dāng)確定該數(shù)據(jù)編碼是秘密ID碼(步驟S1319為"是")時(shí),這表示緊鄰 秘密ID碼之后存在秘密數(shù)據(jù)編碼。在該情況下,控制進(jìn)行到步驟S1321, 在該步驟中,獲取隨后的數(shù)據(jù)編碼,即第(n+l)個(gè)數(shù)據(jù)編碼,或者說是編碼 數(shù)量(文本長度)j。類似于步驟S1309,這基于如下事實(shí)文本長度存儲(chǔ)在與第二個(gè)數(shù)據(jù)編碼相對應(yīng)的位置中。
當(dāng)在步驟S1319確定存在秘密ID碼時(shí),確保向例如主機(jī)HST通知QR 編碼Q中存在秘密ID碼。因此,主機(jī)能掌握如下事實(shí)末端ID碼之后的 數(shù)據(jù)編碼是秘密數(shù)據(jù)編碼??赡軙?huì)發(fā)生的是位于末端ID碼之后的、原本 應(yīng)該僅放置填充碼的編碼區(qū)域(編碼區(qū)域的空閑部分)中的數(shù)據(jù)編碼既不是 填充碼也不是秘密數(shù)據(jù)編碼(例如,不再是填充碼的錯(cuò)亂填充碼)的數(shù)據(jù)編 碼。在該情況下,作為秘密數(shù)據(jù)編碼的代碼信息將不會(huì)輸出到主機(jī)HST。 因此,可以避免出現(xiàn)誤操作,否則,就可能由于對秘密數(shù)據(jù)編碼之外的數(shù) 據(jù)編碼進(jìn)行解碼而導(dǎo)致該誤操作。
如果確定該數(shù)據(jù)編碼不是秘密ID碼(步驟S1319為"否"),則表示在 QR編碼Q中所考慮的第n個(gè)數(shù)據(jù)編碼之后不存在秘密數(shù)據(jù)編碼。然后,當(dāng) 前的二級解碼處理結(jié)束,或者圖6中的步驟S1300結(jié)束,以結(jié)束主解碼處 理。
在步驟S1321中獲取了文本長度j之后,控制進(jìn)行到步驟S1323,在該 步驟中,獲取與文本長度j相對應(yīng)的多個(gè)數(shù)據(jù)編碼。然后,在步驟S1325, 將"n+j+2"設(shè)置給計(jì)數(shù)器n,以便計(jì)數(shù)器n能指示隨后的數(shù)據(jù)編碼,即秘 密數(shù)據(jù)編碼。此后,在步驟S1327,獲取第n個(gè)解碼密鑰檢測數(shù)據(jù)(密鑰標(biāo) 識信息)。
在隨后的步驟S1329,確定上述預(yù)定標(biāo)記是否已經(jīng)被設(shè)置為"l",即確 定是否要使用解碼密鑰對QR編碼Q的秘密數(shù)據(jù)編碼進(jìn)行解碼。如果該標(biāo) 記未被設(shè)置為"1"(步驟S1329為"否"),則跳過步驟S1331和S1333的 處理,并且控制進(jìn)行到步驟S1335,因?yàn)椴恍枰M(jìn)行解碼。
如果該標(biāo)記已被設(shè)置為"1"(步驟S1329為"是"),則表示需要使用 解碼密鑰進(jìn)行解碼。因此,在步驟S1331,基于之前步驟S1327中所獲取的 解碼密鑰檢測數(shù)據(jù),確定從主機(jī)HST接收的解碼密鑰是否匹配用于對第n 個(gè)秘密數(shù)據(jù)編碼的加密數(shù)據(jù)進(jìn)行解密的密鑰。
如果在步驟S1331確定解碼密鑰匹配(步驟S1331為"是"),則在隨后 的步驟S1333中對加密數(shù)據(jù)進(jìn)行解密。這里所用的密碼技術(shù)是第八實(shí)施例 中提及的公知的綜合可視化密碼技術(shù)(綜合可視化秘密發(fā)布處理)。因此,即 使當(dāng)秘密數(shù)據(jù)編碼的加密數(shù)據(jù)是基于綜合可視化密碼技術(shù)時(shí),能夠?qū)用?br>
64數(shù)據(jù)進(jìn)行解碼并恢復(fù)到原始明文。應(yīng)該理解,執(zhí)行步驟S1333的處理的控 制電路40等對應(yīng)于權(quán)利要求中所記載的"解碼單元"。
如果在步驟S1331確定解碼密鑰不匹配(步驟S1331為"否"),則跳過 步驟S1333的處理而不對第n個(gè)秘密數(shù)據(jù)編碼進(jìn)行解密,并且控制進(jìn)行到 步驟S1335。因此,在由QR編碼讀取器20所處理的解碼密鑰不是能夠?qū)?第n個(gè)秘密數(shù)據(jù)編碼進(jìn)行解密的密鑰的情況下,對第n個(gè)秘密數(shù)據(jù)編碼既 不解密也不解碼。因此,可以避免執(zhí)行不必要的和重復(fù)的處理。應(yīng)該理解, 執(zhí)行步驟S1331的處理的控制電路40等對應(yīng)于權(quán)利要求中所記載的"密鑰 匹配確定單元"。
在步驟S1335,對秘密數(shù)據(jù)編碼進(jìn)行解碼。換而言之,因?yàn)榧涸谥安?驟S1333中對加密數(shù)據(jù)進(jìn)行了解密,或者數(shù)據(jù)最初就未加密,所以對與明 文相對應(yīng)的秘密數(shù)據(jù)編碼進(jìn)行解碼。
在完成步驟S1335的解碼處理之后,控制進(jìn)行到步驟S1337,在該步驟, 將"n+l"設(shè)置給計(jì)數(shù)器n,以便計(jì)數(shù)器n能指示隨后的數(shù)據(jù)編碼。然后, 在隨后的步驟S1339,獲取第n個(gè)數(shù)據(jù)編碼。
在步驟S1341 ,確定在步驟S1339獲取的第n個(gè)數(shù)據(jù)編碼是否是填充碼。 如果第n個(gè)數(shù)據(jù)編碼是填充碼(步驟S1341為"是"),則表示QR編碼Q中 不再存在秘密數(shù)據(jù)編碼,并且控制進(jìn)行到隨后的步驟S1343。
如果在步驟S1341確定第n個(gè)數(shù)據(jù)編碼不是填充碼(步驟S1341為 "否"),則表示第n個(gè)數(shù)據(jù)編碼是秘密數(shù)據(jù)編碼。在該情況下,控制進(jìn)行 到步驟S1321,在該步驟中,再次獲取第(n+l)個(gè)數(shù)據(jù)編碼,或文本長度j, 然后是上述的相同處理。
這樣,能在步驟S1317、 S1321至S1327、 S1333和S1335對不應(yīng)該一 開始就進(jìn)行解碼的數(shù)據(jù)編碼進(jìn)行解碼。具體而言,在這些步驟中,獲取并 處理位于末端ID碼之后的數(shù)據(jù)編碼(第二數(shù)據(jù)編碼或秘密數(shù)據(jù)編碼)。因此 執(zhí)行這些步驟的處理的控制電路40等對應(yīng)于權(quán)利要求中所記載的"解碼單 元"。
在步驟S1343,確定計(jì)數(shù)器Cnt的值是否大于"0"(零)。具體而言, 當(dāng)用于對公開數(shù)據(jù)編碼的數(shù)量進(jìn)行計(jì)數(shù)的計(jì)數(shù)器Cnt的值大于"0"(零)(步 驟S1343為"是")時(shí),就表示讀出的QR編碼包含公開數(shù)據(jù)編碼。因此,在隨后的步驟S1345中,將在步驟S1311中所解碼的公開數(shù)據(jù)輸出到LCD 46。
另一方面,當(dāng)用于對公開數(shù)據(jù)編碼的數(shù)量進(jìn)行計(jì)數(shù)的計(jì)數(shù)器Cnt的值 未大于"0"(零),或者說是等于"0"(零)(步驟S1343為"否")時(shí),則表 示讀出的QR編碼不包含任何公開數(shù)據(jù)編碼。在該情況下,跳過隨后的步驟 S1345的輸出處理,并且控制進(jìn)行到步驟S1347。
在步驟S1347,將公開數(shù)據(jù)和秘密數(shù)據(jù)輸出到主機(jī)HST。具體而言, 當(dāng)讀出的QR編碼中存在公開數(shù)據(jù)編碼時(shí),對該公開數(shù)據(jù)編碼進(jìn)行解碼,并 輸出到主機(jī)HST。當(dāng)讀出的QR編碼中存在秘密數(shù)據(jù)編碼時(shí),對該秘密數(shù) 據(jù)編碼進(jìn)行解碼并輸出到主機(jī)HST。在主機(jī)HST沒有連接到QR編碼讀取 器20的情況下,在步驟S1347中不必執(zhí)行輸出處理,并且控制進(jìn)行到步驟 S1349。
在隨后的步驟S1349,蜂鳴器44發(fā)聲以及LED43被點(diǎn)亮。具體而言, 通知操作QR編碼讀取器20的操作員已經(jīng)對讀出的QR編碼中包含的公開 數(shù)據(jù)編碼和秘密數(shù)據(jù)編碼進(jìn)行了解碼。在當(dāng)前實(shí)施例中,即使當(dāng)在步驟 S1331確定編碼密鑰不匹配(步驟S1331為"否")時(shí),也會(huì)通過蜂鳴器44 和LED 43通知操作員QR編碼已由QR編碼讀取器20解碼。 一旦完成了 步驟S1349的處理,二級解碼處理結(jié)束,或圖6的步驟S1300結(jié)束。因此, 主解碼處理和二級解碼處理的序列結(jié)束。
這樣,即使當(dāng)解碼密鑰不是能解碼的密鑰時(shí),也能通知操作員完成了 讀取。換而言之,確保操作員幾乎不會(huì)注意到QR編碼中包含有不能解碼的 秘密數(shù)據(jù)的事實(shí)。同樣,操作員不需要進(jìn)行重復(fù)讀取由于編碼密鑰不匹配 而不能被解碼的QR編碼的無用操作。因此,不可能無意地促使操作員嘗試 對QR編碼進(jìn)行解密。作為結(jié)果,能提高安全性和操作性。
如上所述,在根據(jù)本發(fā)明的第九實(shí)施例的QR編碼讀取器20中,在步 驟S1314確定在末端ID碼之前是否存在公開數(shù)據(jù)編碼(第一數(shù)據(jù)編碼)。然 后,在步驟S1319確定在秘密ID碼之后是否存在秘密數(shù)據(jù)編碼(第二數(shù)據(jù) 編碼)。當(dāng)在步驟S1314確定不存在公開數(shù)據(jù)編碼(步驟S1314為"否")以 及在步驟S1319確定存在秘密數(shù)據(jù)編碼(步驟S1319為"是")時(shí),在步驟 S1321至S1341對秘密數(shù)據(jù)編碼進(jìn)行解碼。因此,在原本應(yīng)位于數(shù)據(jù)區(qū)域中的公開數(shù)據(jù)編碼不存在并且在末端ID 碼之后、原本應(yīng)該只有填充碼的編碼區(qū)域(編碼區(qū)域的空閑部分)中存在秘密 數(shù)據(jù)編碼的情況下,能夠?qū)@些秘密數(shù)據(jù)編碼進(jìn)行解碼。具體而言,能夠 對應(yīng)該放置碼字的編碼區(qū)域的空閑部分中所存在的數(shù)據(jù)編碼進(jìn)行解碼。換 而言之,能夠?qū)@種QR編碼Q進(jìn)行解碼在該QR編碼Q中,末端ID碼 在編碼區(qū)域中位于初始部分,并且秘密數(shù)據(jù)編碼位于末端ID碼之后。
更具體而言,能夠?qū)τ杀景l(fā)明第八實(shí)施例的QR編碼打印機(jī)IO打印的 QR編碼Q進(jìn)行解碼,在該QR編碼Q中,末端ID碼位于編碼區(qū)域的初始 部分(應(yīng)該放置在編碼區(qū)域中的數(shù)據(jù)編碼的頭部),并且秘密數(shù)據(jù)編碼位于末 端ID碼之后。
在上述解碼處理中,已配置為,在步驟S1327獲取第n個(gè)解碼密鑰檢 測數(shù)據(jù)。作為替換方案,如參考第八實(shí)施例中圖21D所述,當(dāng)將解碼密鑰 本身添加到秘密數(shù)據(jù)編碼中時(shí),在步驟S1327獲取第n個(gè)解碼密鑰。因此, 即使當(dāng)QR編碼讀取器20不具有秘密數(shù)據(jù)編碼的解碼密鑰(能實(shí)現(xiàn)解碼的密
鑰)時(shí),也能夠?qū)γ孛軘?shù)據(jù)編碼進(jìn)行解碼以恢復(fù)原始明文。在該情況下,執(zhí) 行"獲取第n個(gè)解碼密鑰"的處理的控制電路40等對應(yīng)于權(quán)利要求中所記 載的"密鑰分離單元"。
當(dāng)用不同的加密密鑰對秘密數(shù)據(jù)編碼進(jìn)行加密時(shí),能夠確保添加到每 個(gè)秘密數(shù)據(jù)編碼的解碼密鑰,以便在步驟S1327中獲取第n個(gè)解碼密鑰。 因此,即使當(dāng)QR編碼讀取器20不具有秘密數(shù)據(jù)編碼的解碼密鑰時(shí),也能 夠?qū)γ孛軘?shù)據(jù)編碼進(jìn)行解碼并能恢復(fù)原始明文。
而且,在上述解碼處理中,在步驟S1327中獲取第n個(gè)解碼密鑰檢測 數(shù)據(jù)。如參考第八實(shí)施例的圖21D所述,可能存在以下情況例如,將作 為位置信息的"開始位置"添加到秘密數(shù)據(jù)編碼中。在該情況下,可以在 步驟S1329從秘密數(shù)據(jù)編碼中分離出"開始位置",并且可以基于所分離的 "開始位置",在數(shù)據(jù)記錄中放置具有已解碼的秘密數(shù)據(jù)編碼的秘密數(shù)據(jù)以 便具有在編碼之前的位置關(guān)系。因此,即使當(dāng)編碼為碼字之前的數(shù)據(jù)在數(shù) 據(jù)記錄中的位置關(guān)系中無序地放置時(shí),也能夠根據(jù)位置信息將解碼數(shù)據(jù)放 置在數(shù)據(jù)記錄中以便具有編碼之前的位置關(guān)系。
在上述解碼處理中,在步驟S1314確定公開數(shù)據(jù)編碼的存在。如果存在公開數(shù)據(jù)編碼(步驟S1314為"是"),則跳過在步驟S1315至S1341關(guān)于 秘密數(shù)據(jù)編碼的處理,并在步驟S1345顯示經(jīng)過解碼的公開數(shù)據(jù)。作為替 換方案,不執(zhí)行步驟S1314中的確定處理,控制直接從步驟S1305進(jìn)行到 步驟S1315。因此,即使當(dāng)存在公開數(shù)據(jù)時(shí),也執(zhí)行在步驟S1315至S1341 中的關(guān)于秘密數(shù)據(jù)編碼的處理。因此,當(dāng)QR編碼Q包含公開數(shù)據(jù)編碼和 秘密數(shù)據(jù)編碼時(shí),能夠?qū)@兩種數(shù)據(jù)編碼進(jìn)行解碼。
在不背離本發(fā)明的精神的情況下本發(fā)明能體現(xiàn)為許多其他形式。至今 所述的實(shí)施例和修改只用于解釋而不是限制性的,因?yàn)楸景l(fā)明的范圍由附 錄的權(quán)利要求而不是前面的說明書定義。落入權(quán)利要求邊界和范圍內(nèi)的所 有改變或該邊界和范圍的等價(jià)物因此都包括在權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1、一種用于產(chǎn)生二維編碼的方法,所述二維編碼具有編碼區(qū)域,在所述編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼,所述方法包括如下步驟第一,在所述編碼區(qū)域中映射第一類型的數(shù)據(jù)編碼,所述第一類型的數(shù)據(jù)編碼被編碼為所述碼字并表示要公開的數(shù)據(jù);向由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末端添加末端標(biāo)識碼,所述末端標(biāo)識碼表示所述末端;第二,在所述編碼區(qū)域中的所述末端標(biāo)識碼之后,映射第二類型的數(shù)據(jù)編碼,所述第二類型的數(shù)據(jù)編碼被編碼為所述碼字并表示要保密的數(shù)據(jù);以及第三,當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),在所述第二類型的數(shù)據(jù)編碼之后映射表示沒有數(shù)據(jù)的填充碼,以填充所述編碼區(qū)域。
2、 根據(jù)權(quán)利要求1的方法,包括步驟確定是否應(yīng)該在所述編碼區(qū)域 中映射所述第二類型的數(shù)據(jù)編碼。
3、 根據(jù)權(quán)利要求2的方法,包括步驟在所述末端標(biāo)識碼與所述第二 類型的數(shù)據(jù)編碼之間映射秘密標(biāo)識碼,以表示所述秘密標(biāo)識碼后面的數(shù)據(jù) 編碼是所述第二類型的數(shù)據(jù)編碼。
4、 根據(jù)權(quán)利要求3的方法,其中,所述第二映射步驟包括步驟對所 述第二類型的數(shù)據(jù)編碼進(jìn)行加密。
5、 根據(jù)權(quán)利要求4的方法,其中,所述第二類型的數(shù)據(jù)編碼包括指定 用以對所述加密的第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。
6、 根據(jù)權(quán)利要求4的方法,其中,所述第二類型的數(shù)據(jù)編碼包括用以 對所述加密的第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
7、 根據(jù)權(quán)利要求4的方法,其中,所述第二類型的數(shù)據(jù)編碼由以不同 密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編碼 包括指定用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。
8、 根據(jù)權(quán)利要求4的方法,其中,所述第二類型的數(shù)據(jù)編碼由以不同 密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編碼 包括用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
9、 根據(jù)權(quán)利要求l的方法,其中,當(dāng)所述要公開的數(shù)據(jù)和所述要保密的數(shù)據(jù)在被編碼為所述碼字之前在位置上進(jìn)行混合以便在數(shù)據(jù)記錄中交替出現(xiàn)時(shí),所述第二類型的數(shù)據(jù)編碼包括表示所述數(shù)據(jù)記錄中的位置關(guān)系的 傳自1 P 's、 o
10、 一種用于讀取二維編碼的裝置,所述二維編碼具有編碼區(qū)域,在 所述編碼區(qū)域中映射了被編碼為表示數(shù)據(jù)的碼字的數(shù)據(jù)編碼,其中,末端 標(biāo)識碼被添加到由所述映射的數(shù)據(jù)編碼所組成的碼串的末端,所述末端標(biāo) 識碼表示所述碼串的末端,并且當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小 于所述編碼區(qū)域的容量時(shí),在所述碼串之后映射表示沒有數(shù)據(jù)的填充碼,以填充所述編碼區(qū)域,所述裝置包括第一解碼單元,用于對第一類型的數(shù)據(jù)編碼進(jìn)行解碼,所述第一類型的數(shù)據(jù)編碼是在所述末端標(biāo)識碼之前映射的數(shù)據(jù)編碼;數(shù)據(jù)編碼確定單元,用于確定在所述末端標(biāo)識碼之后是否映射了第二 類型的數(shù)據(jù)編碼;以及第二解碼單元,用于當(dāng)所述數(shù)據(jù)編碼確定單元確定映射了所述第二類型的數(shù)據(jù)編碼時(shí),對所述第二類型的數(shù)據(jù)編碼進(jìn)行解碼。
11、 根據(jù)權(quán)利要求10的裝置,其中,所述二維編碼具有在所述編碼區(qū) 域中的所述末端標(biāo)識碼與所述第二類型的數(shù)據(jù)編碼之間映射的秘密標(biāo)識 碼,以表示在所述編碼區(qū)域中,所述第二類型的數(shù)據(jù)編碼是要保密的數(shù)據(jù)編碼并且被編碼為所述碼字, 所述裝置包括標(biāo)識碼確定單元,用于確定是否映射了所述秘密標(biāo)識碼;以及信息輸出單元,用于當(dāng)所述標(biāo)識碼確定單元確定映射了所述秘密標(biāo)識 碼時(shí),輸出表示所述第二類型的數(shù)據(jù)編碼是所述要保密的數(shù)據(jù)編碼的信息。
12、 根據(jù)權(quán)利要求10的裝置,其中,所述第二類型的數(shù)據(jù)編碼被加密, 所述裝置包括解密單元,用于使用用以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰來解密所述第二類型的數(shù)據(jù)編碼。
13、 根據(jù)權(quán)利要求12的裝置,包括所述的用以對所述第二類型的數(shù)據(jù) 編碼進(jìn)行解密的密鑰。
14、 根據(jù)權(quán)利要求12的裝置,其中,用以指定所述密鑰的信息被添加 到所述第二類型的數(shù)據(jù)編碼中,所述裝置包括密鑰確定單元,用于基于所述信息確定所述裝置所擁有的密鑰是否對應(yīng)于用以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰;以及允許單元,用于僅當(dāng)所述密鑰確定單元確定所述裝置所擁有的密鑰對 應(yīng)于用以對所述第二類型的數(shù)據(jù)進(jìn)行解密的密鑰時(shí),才允許所述解密單元 對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密。
15、 根據(jù)權(quán)利要求14的裝置,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括指定用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息,并且所述 密鑰確定單元用于基于所述信息確定所述裝置所擁有的密鑰是否對應(yīng)于用 以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
16、 根據(jù)權(quán)利要求12的裝置,其中,所述密鑰被添加到所述第二類型 的數(shù)據(jù)編碼中,所述裝置包括密鑰分離單元,用于從所述第二類型的數(shù)據(jù)編碼中分離出所述密鑰, 所述分離的密鑰被提供給所述解密單元,以使用所述分離的密鑰對所述第 二類型的數(shù)據(jù)編碼進(jìn)行解密。
17、 根據(jù)權(quán)利要求16的裝置,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰,并且所述密鑰分離單元用于從每個(gè)所述第二類型的數(shù)據(jù)編碼中分離出所述 密鑰。
18、 根據(jù)權(quán)利要求10的裝置,其中,所述第二類型的數(shù)據(jù)編碼包括用 于表示數(shù)據(jù)記錄中位置關(guān)系的信息,在所述數(shù)據(jù)記錄中,所述要公開的數(shù) 據(jù)和所述要保密的數(shù)據(jù)在被編碼為所述碼字之前在位置上進(jìn)行混合以交替 出現(xiàn),所述裝置包括信息分離單元,用于從所述第二類型的數(shù)據(jù)編碼中分離出所述位置信 息;以及數(shù)據(jù)映射單元,用于基于由所述信息分離單元所分離的所述位置信息, 將由所述第二解碼單元所解碼的所述第二類型的數(shù)據(jù)編碼映射到所述數(shù)據(jù) 記錄中。
19、 一種用于產(chǎn)生二維編碼的方法,所述二維編碼具有編碼區(qū)域,在 所述編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼,所述方法包括如下步驟:第一,在所述編碼區(qū)域中映射第一類型的數(shù)據(jù)編碼,所述第一類型的 數(shù)據(jù)編碼被編碼為所述碼字并表示要公開的數(shù)據(jù);當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),i) 添加末端標(biāo)識碼到由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末端,所述 末端標(biāo)識碼表示所述末端,或者ii)添加末端標(biāo)識信息到所述碼串的預(yù)定位 置,所述末端標(biāo)識信息指定所述碼串的末端位置;以及第二, i)在所述編碼區(qū)域中的所述末端標(biāo)識碼之后映射第二類型的數(shù)據(jù) 編碼,或者ii)在由所述末端標(biāo)識信息所指定的所述碼串的末端位置之后映 射所述第二類型的數(shù)據(jù)編碼,其中,所述第二類型的數(shù)據(jù)編碼被編碼為碼 字并表示要保密的數(shù)據(jù)。
20、 根據(jù)權(quán)利要求19所述的方法,其中,所述末端標(biāo)識碼被添加到所 述碼串的末端,所述方法包括步驟在所述末端標(biāo)識碼與所述第二類型的數(shù)據(jù)編碼 之間映射秘密標(biāo)識碼,以表示所述秘密標(biāo)識碼后面的數(shù)據(jù)編碼是所述第二 類型的數(shù)據(jù)編碼。
21、 根據(jù)權(quán)利要求20的方法,其中,所述第二映射步驟包括步驟對所述第二類型的數(shù)據(jù)編碼進(jìn)行加密。
22、 根據(jù)權(quán)利要求21的方法,其中,所述第二類型的數(shù)據(jù)編碼包括指 定用以對所述加密的第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。
23、 根據(jù)權(quán)利要求21的方法,其中,所述第二類型的數(shù)據(jù)編碼包括用 以對所述加密的第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
24、 根據(jù)權(quán)利要求21的方法,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括指定用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。
25、 根據(jù)權(quán)利要求21的方法,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
26、 根據(jù)權(quán)利要求19的方法,其中,當(dāng)所述要公開的數(shù)據(jù)和所述要保 密的數(shù)據(jù)在被編碼為所述碼字之前在位置上進(jìn)行混合以便在數(shù)據(jù)記錄中交替出現(xiàn)時(shí),所述第二類型的數(shù)據(jù)編碼包括表示所述數(shù)據(jù)記錄中的位置關(guān)系 的信息。
27、 一種用于讀取二維編碼的裝置,所述二維編碼具有編碼區(qū)域,在 所述編碼區(qū)域中映射了被編碼為表示數(shù)據(jù)的碼字的數(shù)據(jù)編碼,其中,當(dāng)所 述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),末端標(biāo)識 碼被添加到由所述映射的數(shù)據(jù)編碼所組成的碼串的末端,所述末端標(biāo)識碼 表示所述碼串的末端,或者指定所述碼串的末端位置的末端標(biāo)識信息被添加到所述碼串中的預(yù)定位置,所述裝置包括第一解碼單元,用于對第一類型的數(shù)據(jù)編碼進(jìn)行解碼,所述第一類型 的數(shù)據(jù)編碼是在所述末端標(biāo)識碼之前或所述末端標(biāo)識信息所指定的末端位 置之前映射的數(shù)據(jù)編碼;數(shù)據(jù)編碼確定單元,用于確定在所述末端標(biāo)識碼或所述末端位置之后 是否映射了第二類型的數(shù)據(jù)編碼;以及第二解碼單元,用于當(dāng)所述數(shù)據(jù)編碼確定單元確定映射了所述第二類型的數(shù)據(jù)編碼時(shí),對所述第二類型的數(shù)據(jù)編碼進(jìn)行解碼。
28、 根據(jù)權(quán)利要求27的裝置,其中,在所述末端標(biāo)識碼被添加到所述 碼串的末端的情況下,所述二維編碼具有在所述編碼區(qū)域中的所述末端標(biāo) 識碼與所述第二類型的數(shù)據(jù)編碼之間映射的秘密標(biāo)識碼,以表示所述第二 類型的數(shù)據(jù)編碼是要保密的數(shù)據(jù)編碼并且被編碼為碼字,所述裝置包括標(biāo)識碼確定單元,用于確定是否映射了所述秘密標(biāo)識碼;以及 信息輸出單元,用于當(dāng)所述標(biāo)識碼確定單元確定映射了所述秘密標(biāo)識 碼時(shí),輸出表示所述第二類型的數(shù)據(jù)編碼是要保密的數(shù)據(jù)編碼的信息。
29、 根據(jù)權(quán)利要求27的裝置,其中,所述第二類型的數(shù)據(jù)編碼被加密, 所述裝置包括解密單元,用于使用用以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰來解密所述第二類型的數(shù)據(jù)編碼。
30、 根據(jù)權(quán)利要求29的裝置,包括所述的用以對所述第二類型的數(shù)據(jù) 編碼進(jìn)行解密的密鑰。
31、 根據(jù)權(quán)利要求29的裝置,其中,用以指定所述密鑰的信息被添加 到所述第二類型的數(shù)據(jù)編碼中,所述裝置包括密鑰確定單元,用于基于所述信息確定所述裝置所擁有的密鑰是否對 應(yīng)于用以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰,以及允許單元,用于僅當(dāng)所述密鑰確定單元確定所述裝置所擁有的密鑰對 應(yīng)于用以對所述第二類型的數(shù)據(jù)進(jìn)行解密的密鑰時(shí),才允許所述解密單元 對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密。
32、 根據(jù)權(quán)利要求31的裝置,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括指定用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息,并且所述 密鑰確定單元用于基于所述信息確定所述裝置所擁有的密鑰是否對應(yīng)于用 以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
33、 根據(jù)權(quán)利要求29的裝置,其中,所述密鑰被添加到所述第二類型 的數(shù)據(jù)編碼中,所述裝置包括密鑰分離單元,用于從所述第二類型的數(shù)據(jù)編碼中分離出所述密鑰, 所述分離的密鑰被提供給所述解密單元,以使用所述分離的密鑰對所述第 二類型的數(shù)據(jù)編碼進(jìn)行解密。
34、 根據(jù)權(quán)利要求33的裝置,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰,并且所述密鑰分離單元用于從每個(gè)所述第二類型的數(shù)據(jù)編碼中分離出所述 密鑰。
35、 根據(jù)權(quán)利要求27的裝置,其中,所述第二類型的數(shù)據(jù)編碼包括用 于表示數(shù)據(jù)記錄中位置關(guān)系的信息,在所述數(shù)據(jù)記錄中,所述要公開的數(shù) 據(jù)和所述要保密的數(shù)據(jù)在被編碼為所述碼字之前在位置上進(jìn)行混合以交替 出現(xiàn),所述裝置包括信息分離單元,用于從所述第二類型的數(shù)據(jù)編碼中分離出所述位置信息;以及數(shù)據(jù)映射單元,用于基于由所述信息分離單元所分離的所述位置信息, 將由所述第二解碼單元所解碼的所述第二類型的數(shù)據(jù)編碼映射到所述數(shù)據(jù) 記錄中。
36、 一種用于產(chǎn)生二維編碼的方法,所述二維編碼具有編碼區(qū)域,在 所述編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼,所述方法包括如下步驟第一,在所述編碼區(qū)域中映射第一類型的數(shù)據(jù)編碼,所述第一類型的 數(shù)據(jù)編碼被編碼為所述碼字并表示要公開的數(shù)據(jù);當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),i) 添加末端標(biāo)識碼到由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末端,所述 末端標(biāo)識碼表示所述末端,或者ii)添加末端標(biāo)識信息到所述碼串的預(yù)定位 置,所述末端標(biāo)識信息指定所述碼串的末端位置;以及第二, i)在所述編碼區(qū)域中的所述末端標(biāo)識碼之后映射第二類型的數(shù)據(jù) 編碼,或者ii)在由所述末端標(biāo)識信息所指定的所述碼串的末端位置之后映 射所述第二類型的數(shù)據(jù)編碼,其中,所述第二類型的數(shù)據(jù)編碼被編碼為所 述碼字,受到了預(yù)定的處理,并表示要保密的數(shù)據(jù)。
37、 根據(jù)權(quán)利要求36的方法,其中,將所述末端標(biāo)識碼添加到所述碼 串的末端,所述方法包括步驟在所述末端標(biāo)識碼與所述第二類型的數(shù)據(jù)編碼之 間映射秘密標(biāo)識碼,以表示所述秘密標(biāo)識碼后面的數(shù)據(jù)編碼是所述第二類 型的數(shù)據(jù)編碼。
38、 根據(jù)權(quán)利要求36的方法,其中,所述預(yù)定的處理是以下之中的一 種構(gòu)成所述第二類型的數(shù)據(jù)編碼的比特排列的變化、所述比特的排列的 分配、以及對所述比特所指定的數(shù)據(jù)值的轉(zhuǎn)換。
39、 根據(jù)權(quán)利要求38的方法,其中,所述比特排列的變化或者所述比 特的排列的分配取決于所述第一類型的數(shù)據(jù)編碼的內(nèi)容。
40、 根據(jù)權(quán)利要求39的方法,其中,所述二維編碼包括其內(nèi)在信息,并且所述比特排列的變化或者所述比特的排列的分配取決于所述內(nèi)在信息 的內(nèi)容。
41、 根據(jù)權(quán)利要求38的方法,其中,使用預(yù)定的轉(zhuǎn)換表或預(yù)定的轉(zhuǎn)換 公式來執(zhí)行對所述數(shù)據(jù)值的轉(zhuǎn)換。
42、 根據(jù)權(quán)利要求36的方法,其中,當(dāng)所述要公開的數(shù)據(jù)和所述要保 密的數(shù)據(jù)在被編碼為所述碼字之前在位置上進(jìn)行混合以便在數(shù)據(jù)記錄中交 替出現(xiàn)時(shí),所述第二類型的數(shù)據(jù)編碼包括表示所述數(shù)據(jù)記錄中的位置關(guān)系 的信息。
43、 一種用于讀取二維編碼的裝置,所述二維編碼具有編碼區(qū)域,在 所述編碼區(qū)域中映射了被編碼為表示數(shù)據(jù)的碼字的數(shù)據(jù)編碼,其中,當(dāng)所 述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí),將末端標(biāo) 識碼添加到由所述映射的數(shù)據(jù)編碼所組成的碼串的末端,所述末端標(biāo)識碼 表示所述碼串的末端,或者將指定所述碼串的末端位置的末端標(biāo)識信息添 加到所述碼串中的預(yù)定位置,所述裝置包括第一解碼單元,用于對第一類型的數(shù)據(jù)編碼進(jìn)行解碼,所述第一類型 的數(shù)據(jù)編碼是在所述末端標(biāo)識碼之前或所述末端標(biāo)識信息所指定的末端位 置之前映射的數(shù)據(jù)編碼;數(shù)據(jù)編碼確定單元,用于確定在所述末端標(biāo)識碼或所述末端位置之后是否映射了第二類型的數(shù)據(jù)編碼;提取單元,用于當(dāng)所述數(shù)據(jù)編碼確定單元確定存在所述第二類型的數(shù) 據(jù)編碼時(shí),使用預(yù)定的提取處理提取所述第二類型的數(shù)據(jù)編碼;以及第二解碼單元,用于對由所述提取單元所提取的所述第二類型的數(shù)據(jù)編碼進(jìn)行解碼。
44、 根據(jù)權(quán)利要求43的裝置,其中,在將所述末端標(biāo)識碼添加到所述 碼串的末端的情況下,所述二維編碼具有在所述編碼區(qū)域中的所述末端標(biāo) 識碼與所述第二類型的數(shù)據(jù)編碼之間映射的秘密標(biāo)識碼,以表示所述第二 類型的數(shù)據(jù)編碼是要保密的數(shù)據(jù)編碼并且被編碼為所述碼字,所述裝置包括標(biāo)識碼確定單元,用于確定是否映射了所述秘密標(biāo)識碼;以及 信息輸出單元,用于當(dāng)所述標(biāo)識碼確定單元確定映射了所述秘密標(biāo)識 碼時(shí),輸出表示所述第二類型的數(shù)據(jù)編碼是所述要保密的數(shù)據(jù)編碼的信息。
45、 根據(jù)權(quán)利要求43的裝置,其中,所述第二類型的數(shù)據(jù)編碼受到以 下處理之一構(gòu)成所述第二類型的數(shù)據(jù)編碼的比特排列的變化、或者所述 比特的排列的分配,并且所述預(yù)定的提取處理是基于所述第一類型的數(shù)據(jù)編碼的內(nèi)容的處理, 其使經(jīng)過排列變化的比特或者經(jīng)過排列分配的比特恢復(fù)到其原始的比特位 置。
46、 根據(jù)權(quán)利要求43的裝置,其中,所述第二類型的數(shù)據(jù)編碼受到以 下處理之一構(gòu)成所述第二類型的數(shù)據(jù)編碼的比特排列的變化、或者所述 比特的排列的分配;并且所述預(yù)定的提取處理是使用信息的處理,其使用所述二維編碼內(nèi)在的 信息來使經(jīng)過排列變化的比特或者經(jīng)過排列分配的比特恢復(fù)到其原始的比 特位置。
47、 根據(jù)權(quán)利要求43的裝置,其中,所述第二類型的數(shù)據(jù)編碼受到對 由構(gòu)成所述第二類型的數(shù)據(jù)編碼的比特所指定的數(shù)據(jù)值進(jìn)行轉(zhuǎn)換的處理, 并且所述預(yù)定的提取處理是基于預(yù)定的轉(zhuǎn)換表或預(yù)定的轉(zhuǎn)換公式提取所述 第二類型的數(shù)據(jù)編碼的處理。
48、 根據(jù)權(quán)利要求43的裝置,包括允許單元,用于允許用戶選擇性地 無效所述第一和第二解碼單元。
49、 一種用于產(chǎn)生二維編碼的方法,所述二維編碼具有編碼區(qū)域,在 所述編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼,所述數(shù)據(jù)編碼包括要公 開的第一類型的數(shù)據(jù)編碼和要保密的第二類型的數(shù)據(jù)編碼,所述方法包括 以下步驟在所述編碼區(qū)域的開始位置處放置末端標(biāo)識碼,所述末端標(biāo)識碼表示 由要公開的第一類型的數(shù)據(jù)編碼所組成的碼串的末端;在所述編碼區(qū)域中的所述末端標(biāo)識碼之后映射所述第二類型的數(shù)據(jù)編 碼;以及當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí), 在所述第二類型的數(shù)據(jù)編碼之后映射填充碼以填充所述編碼區(qū)域,所述填 充碼是除了數(shù)據(jù)之外的填充物。
50、 根據(jù)權(quán)利要求49的方法,包括步驟在所述末端標(biāo)識碼與所述第 二類型的數(shù)據(jù)編碼之間映射秘密標(biāo)識碼,以表示所述秘密標(biāo)識碼后面的數(shù) 據(jù)編碼是所述第二類型的數(shù)據(jù)編碼。
51、 根據(jù)權(quán)利要求50的方法,其中,所述數(shù)據(jù)編碼映射步驟包括步驟: 對所述第二類型的數(shù)據(jù)編碼進(jìn)行加密。
52、 根據(jù)權(quán)利要求51的方法,其中,所述第二類型的數(shù)據(jù)編碼包括指 定用以對所述加密的第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。
53、 根據(jù)權(quán)利要求51的方法,其中,所述第二類型的數(shù)據(jù)編碼包括用 以對所述加密的第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
54、 根據(jù)權(quán)利要求51的方法,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括指定用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息。
55、 根據(jù)權(quán)利要求51的方法,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
56、 一種用于讀取二維編碼的裝置,所述二維編碼具有編碼區(qū)域,在 所述編碼區(qū)域中映射了被編碼為表示數(shù)據(jù)的碼字的數(shù)據(jù)編碼,所述數(shù)據(jù)編 碼包括要公開的第一類型的數(shù)據(jù)編碼和要保密的第二類型的數(shù)據(jù)編碼,其 中,當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí), 將表示由所述映射的數(shù)據(jù)編碼所組成的碼串的末端的末端標(biāo)識碼放置在所 述編碼區(qū)域中,并且映射表示沒有數(shù)據(jù)的填充碼以填充所述編碼區(qū)域,所 述裝置包括第一確定單元,用于確定在所述編碼區(qū)域中的所述末端標(biāo)識碼之前是 否存在所述第一類型的數(shù)據(jù)編碼;第二確定單元,.用于確定在所述編碼區(qū)域中的所述末端標(biāo)識碼之后是 否存在所述第二類型的數(shù)據(jù)編碼;解碼單元,用于當(dāng)所述第一確定單元確定在所述編碼區(qū)域中不存在所 述第一類型的數(shù)據(jù)編碼并且所述第二確定單元確定在所述編碼區(qū)域中存在 所述第二類型的數(shù)據(jù)編碼時(shí),對所述第二類型的數(shù)據(jù)編碼進(jìn)行解碼。
57、 根據(jù)權(quán)利要求56的裝置,其中,所述二維編碼具有在所述數(shù)據(jù)區(qū) 域中的所述末端標(biāo)識碼與所述第二類型的數(shù)據(jù)編碼之間映射的秘密標(biāo)識 碼,以表示所述第二類型的數(shù)據(jù)編碼是要保密的數(shù)據(jù)編碼并且被編碼為所述碼字,所述裝置包括標(biāo)識碼確定單元,用于確定是否映射了所述秘密標(biāo)識碼;以及信息輸出單元,用于當(dāng)所述標(biāo)識碼確定單元確定映射了所述秘密標(biāo)識 碼時(shí),輸出表示所述第二類型的數(shù)據(jù)編碼是要保密的數(shù)據(jù)編碼的信息。
58、 根據(jù)權(quán)利要求57的裝置,其中,所述第二類型的數(shù)據(jù)編碼被加密, 所述裝置包括解密單元,用于使用用以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰來解密所述第二類型的數(shù)據(jù)編碼。
59、 根據(jù)權(quán)利要求58的裝置,包括所述的用以對所述第二類型的數(shù)據(jù) 編碼進(jìn)行解密的密鑰。
60、 根據(jù)權(quán)利要求58的裝置,其中,用以指定所述密鑰的信息被添加 到所述第二類型的數(shù)據(jù)編碼中,所述裝置包括密鑰確定單元,用于基于所述信息確定所述裝置所擁有的密鑰是否對 應(yīng)于用以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰;以及允許單元,用于僅當(dāng)所述密鑰確定單元確定所述裝置所擁有的密鑰對 應(yīng)于用以對所述第二類型的數(shù)據(jù)進(jìn)行解密的密鑰時(shí),才允許所述解密單元 對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密。
61、 根據(jù)權(quán)利要求60的裝置,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括指定用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰的信息,并且所述 密鑰確定單元用于基于所述信息確定所述裝置所擁有的密鑰是否對應(yīng)于用 以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰。
62、 根據(jù)權(quán)利要求60的裝置,包括通知單元,用于當(dāng)所述密鑰確定單 元確定所述裝置所擁有的密鑰不對應(yīng)于用以對所述第二類型的數(shù)據(jù)編碼進(jìn)行解密的密鑰時(shí),通知操作者完成了對所述二維編碼的讀取。
63、 根據(jù)權(quán)利要求58的裝置,其中,所述密鑰被添加到所述第二類型 的數(shù)據(jù)編碼中,所述裝置包括密鑰分離單元,用于從所述第二類型的數(shù)據(jù)編碼中分離出所述密鑰, 所述分離的密鑰被提供給所述解密單元,以使用所述分離的密鑰對所述第 二類型的數(shù)據(jù)編碼進(jìn)行解密。
64、 根據(jù)權(quán)利要求63的裝置,其中,所述第二類型的數(shù)據(jù)編碼由以不 同密鑰逐個(gè)編碼地進(jìn)行加密的多個(gè)數(shù)據(jù)編碼組成,并且每個(gè)加密的數(shù)據(jù)編 碼包括用以對每個(gè)加密的數(shù)據(jù)編碼進(jìn)行解密的密鑰,并且所述密鑰分離單元用于從每個(gè)所述第二類型的數(shù)據(jù)編碼中分離出所述 密鑰。
65、 一種具有編碼區(qū)域的二維編碼,在所述編碼區(qū)域中映射了被編碼 為碼字的數(shù)據(jù)編碼,其中在所述編碼區(qū)域中映射了第一類型的數(shù)據(jù)編碼,所述第一類型的數(shù)據(jù) 編碼被編碼為所述碼字并且表示要公開的數(shù)據(jù);將末端標(biāo)識碼添加到由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末 端,所述末端標(biāo)識碼表示所述末端;在所述編碼區(qū)域中的所述末端標(biāo)識碼之后映射了第二類型的數(shù)據(jù)編 碼,所述第二類型的數(shù)據(jù)編碼被編碼為所述碼字并且表示要保密的數(shù)據(jù); 以及當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí), 在所述第二類型的數(shù)據(jù)編碼之后映射表示沒有數(shù)據(jù)的填充碼以填充所述編 碼區(qū)域。
66、 根據(jù)權(quán)利要求65的二維編碼,其中,所述二維編碼被打印,或者 豐皮顯示在顯示單元上。
67、 一種具有編碼區(qū)域的二維編碼,在所述編碼區(qū)域中映射了被編碼 為碼字的數(shù)據(jù)編碼,其中在所述編碼區(qū)域中映射了第一類型的數(shù)據(jù)編碼,所述第一類型的數(shù)據(jù) 編碼被編碼為所述碼字并且表示要公開的數(shù)據(jù);當(dāng)所述編碼區(qū)域中的所述碼字的總數(shù)量小于所述編碼區(qū)域的容量時(shí), 將末端標(biāo)識碼添加到由所述第一類型的數(shù)據(jù)編碼所組成的碼串的末端,所 述末端標(biāo)識碼表示所述末端,或者將末端標(biāo)識信息添加到所述碼串中的預(yù) 定位置,所述末端標(biāo)識信息指定所述碼串的末端位置;并且i)在所述編碼區(qū)域中的所述末端標(biāo)識碼之后映射第二類型的數(shù)據(jù)編碼, 或者ii)在由所述末端標(biāo)識信息所指定的所述碼串的末端位置之后映射所述 第二類型的數(shù)據(jù)編碼,其中,所述第二類型的數(shù)據(jù)編碼被編碼為碼字并且 表示要保密的數(shù)據(jù)。
全文摘要
一種用于產(chǎn)生二維編碼的方法,所述二維編碼具有編碼區(qū)域,在編碼區(qū)域中映射了被編碼為碼字的數(shù)據(jù)編碼。在編碼區(qū)域中映射了第一類型的數(shù)據(jù)編碼。該第一類型的數(shù)據(jù)編碼被編碼為碼字并表示要公開的數(shù)據(jù)。向由第一類型的數(shù)據(jù)編碼所組成的碼串的末端,添加末端標(biāo)識碼,所述末端標(biāo)識碼表示所述末端。在編碼區(qū)域中的所述末端標(biāo)識碼之后,映射第二類型的數(shù)據(jù)編碼,第二類型的數(shù)據(jù)編碼被編碼為所述碼字并表示要保密的數(shù)據(jù)。當(dāng)編碼區(qū)域中碼字的總數(shù)量小于編碼區(qū)域的容量時(shí),在第二類型的數(shù)據(jù)編碼之后映射表示沒有數(shù)據(jù)的填充碼,以填充編碼區(qū)域。
文檔編號G06K7/10GK101320436SQ20081014464
公開日2008年12月10日 申請日期2008年5月29日 優(yōu)先權(quán)日2007年5月29日
發(fā)明者原昌宏 申請人:電裝波動(dòng)株式會(huì)社