农产品追溯防伪标识方法

文档序号:6378068阅读:601来源:国知局
专利名称:农产品追溯防伪标识方法
技术领域
本发明涉及农产品追溯系统技术领域,特别是涉及一种农产品追溯防伪标识方法。
背景技术
近年来农产品质量安全问题日益突出,国内农产品安全质量时间时有发生。农产品质量安全是一个世界性的热点问题,我国近几年不断发生的“瘦肉精”、“毒豆芽”、“染色馒头”、“激素黄瓜”等事件充分说明了当前农产品安全问题不容乐观,对人们身体健康和农产品出口造成了极大危害。消费者一方面寄望政府职能部门加强农产品质量监管力度、保障农产品食用安全,另一方面也希望能够及时了解农产品生产、流通及加工全过程的信息。建立农产品质量安全追溯制度、实现农产品质量安全的可追溯性,提升消费者对农产品食用质量的信任度,已经显示出日益重要的意义。建立农产品追溯的关键在于提供农产品标签的标识方法。现阶段的农产品追溯标签绝大多数采用一维条码标签,这种标签采用文字信息加一维条码技术相结合来实现,文字信息可以让客户很清晰的看到产品的名称及相关内容,条码技术的使用,可以让企业准确快速的完成信息的读取。这种一维条码产品标签,虽然读取简单,但是具有一定的缺陷,具体体现在以下几个方面I、依赖数据库,无法离线追溯。一维条码标签中的内容只能包含英文、数字以及个别几个符号,而要想知道它们所代表的真正含义,要通过扫描设备将其传入电脑,通过数据库搜索出其代表的原始含义。2、依赖网络。如果产品面向全国或较大范围销售,那么追溯产品必然要采用网络平台,远程读取数据,如果本地不具备网络环境,就只能追溯本地数据库中有的产品相关信
肩、O3、信息量小。目前使用的一维条码标签,一般采用的是较流行的条码标准,如39码、EAN码、UPC码、128码。所包含的字符位数最多不到30位字符或数字。4、安全性较弱。相对二维条码而言,一维条码在安全性上来说,一般采用的是打乱字符顺序,或直接选取几个具有代表特定含义的字符,查询时要通过数据库转换。不仅条码安全性较弱,而且标签本身没有采取防伪措施,容易实施复制操作。5、稍有受损,无法识别。由于一维条码没有纠错码校验,一旦稍有污迹、划横等轻微受损,将无法识读,导致追溯失败。6、无法实现个体和批次的关联追溯。目前的一维条码主要以批次进行追溯,无法同时进行个体和批次的关联追溯。

发明内容
(一)要解决的技术问题
为解决上述问题,本发明提供一种农产品追溯防伪标识方法。(二)技术方案为了解决上述技术问题,本发明提供一种农产品追溯防伪标识方法,包括获取农产品追溯监管码并进行压缩,得到压缩农产品追溯监管码,所述农产品追溯监管码包括行政区划代码、企业代码elD、产品分类代码、源实体参考代码、生产日期和校验码;通过加密算法对所述压缩农产品追溯监管码进行加密,生成一维追溯码;将所述一维追溯码及所述一维追溯码的加密初始密钥Key作为二维条码内容的一部分生成二维条码。
如上所述的农产品追溯防伪标识方法,优选的是,还包括通过AES分组加密算法对所述二维条码进行加密。如上所述的农产品追溯防伪标识方法,优选的是,对所述一维压缩农产品追溯监管码进行加密的具体过程为SI、获取一维压缩农产品追溯监管码并将所述一维压缩农产品追溯监管码矩阵化,生成追溯码状态矩阵,按列存储记为State [i],其中,i为自然数;S2、读取初始密钥Key,由初始密钥Key按照动态密钥规则生成Nr个动态密钥Dkey [j],所述Nr个动态密钥Dkey [j]组成轮密钥表Len,其中,j、Nr为自然数;S3、对追溯码状态矩阵State [i]进行Nr_l次轮变换,第k次所述轮变换依次包括S盒替换、行移位、列混合、与所述轮密钥表Len中第k个动态密钥Dkey[j]按照预设算法运算,所述预设算法为可逆运算,其中,k为自然数,Nr-I ;S4、依次对追溯码状态矩阵State[i]进行S盒替换、行移位、与所述轮密钥表中的第Nr个动态密钥按照预设算法运算,所述预设算法为可逆运算;S5、输出一维追溯码;其中,所述S盒替换的Sbox置换表为十进制置换表;所述列混合具体为所述追溯码状态矩阵State[i]左乘一可逆正整数矩阵,然后对10进行取模运算。如上所述的农产品追溯防伪标识方法,优选的是,由初始密钥Key生成Nr个动态密钥DKey [j]的具体过程为100、读取初始密钥Key、轮变换次数k和企业代码elD,并将所述初始密钥Key和企业代码elD分别矩阵化,记为Key [j]、eID[j],其中,j=0 ;101、轮变换次数k对4取模,记为K ;102、当 K=O 时,DKey [j]= (Key [j]+ (eID[j]+k) modlO) modlO,并存储,或当K=I 时,DKey [j] = (Key [j] +Sbox[ (eID[j]+k) modlO] ) modlO,并存储,或当K=2 时,DKey [i] = (Key [j] -Sbox [ (eID[j]_k) modlO] ) modlO,并存储,或当K=3 时,DKey [i] = (Key [j]- (eID[j]_k) modlO) modlO,并存储;103、(K+l) mod4, j+1 ;104、当j〈m时,重复步骤102、103,其中,m为动态密钥Dkey的长度;105、当j = m时,输出动态密钥DKey [m]。如上所述的农产品追溯防伪标识方法,优选的是,所述追溯码状态矩阵State[i]与所述轮密钥表Len中第k个动态密钥DKey [j]按照预设算法运算,其中,I彡k彡Nr,具体为200、获取第k次轮变换的第k个动态密钥Dkey [j],其中,i=0, j = 0 ;201、将动态密钥Dkey [j]的所有位按位相加然后对4进行取模运算,记为K ;202、当 K=O 时,State [i] = (State [i]+Dkey [j] ) modlO,并存储,或当K=I 时,State[i]= (State[i]+Sbox[Dkey [j]modl0] ) modlO,并存储,或当K=2 时,State [i] = (State [i]-Sbox[Dkey [j]modlO] ) modlO,并存储,或当K=3 时,State [i] = (State [i]-Dkey [j] ) modlO ; 203、i+1,j+1;204、当i〈n时,重复步骤202,其中,n为追溯码状态矩阵State [i]的长度;205、当i=n时,输出追溯码状态矩阵State [n],所述追溯码状态矩阵State [n]即为农产品追溯监管码的一维追溯码。如上所述的农产品追溯防伪标识方法,优选的是,采用分组压缩算法对农产品追溯监管码进行压缩。(三)有益效果本发明所提供的农产品追溯防伪标识方法通过对农产品进行基于监管模式的编码,形成农产品追溯监管码;然后压缩该农产品追溯监管码并加密生成一维追溯码,根据加密算法得到的结果具有唯一性,实现了一品一码,可以达到实现个体的标识与追溯,防伪功能强。并将一维追溯码及一维追溯码的加密初始密钥存入二维条码中,因为二维条码具有很好的纠错能力,当一维追溯码受损而无法识读时,可以识读二维条码获取一维追溯码进行追溯,当没有网络的情况下,可以直接通过二维条码进行基本信息的离线追溯。同时,将一维条码与二维条码进行关联,能够实现个体与批次的灵活追溯,当追溯个体时,只需扫描一维条码进行追溯;当需要追溯批次时,扫描二维条码获取一维追溯码及一维追溯码的加密初始密钥,然后解密一维追溯码获取农产品追溯监管码,进行批次追溯。


图I为本发明实施例中农产品追溯防伪标识方法的流程图;图2为本发明实施例中水产品追溯监管码的分组压缩流程图;图3为本发明实施例中压缩农产品追溯监管码的加密流程图;图4为本发明实施例中一维追溯码的解密流程图;图5为本发明实施例中生成动态密钥的算法流程图;图6为本发明实施例中轮密钥控制算法流程图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。图I为本发明实施例中农产品追溯防伪标识方法的流程图。本发明实施例中将以水产品为例来具体说明农产品追溯防伪标识方法的原理及过程。如图I所示,本发明实施例中农产品追溯防伪标识方法包括
a、获取农产品追溯监管码并进行压缩,得到压缩农产品追溯监管码,该农产品追溯监管码包括行政区划代码、企业顺序号elD、产品分类代码、源实体参考代码、生产日期和校验码;水产品追溯监管码的编码是从政府监管的角度出发,以批次作为追溯单元,对于水产品则以同一养殖主体在同一池塘内的同一时间出池的同一品种的产品作为编码单兀,即一维水产品追溯监管码由行政区划代码、企业代码elD、产品分类代码(水产品品种)、源实体参考代码(池塘代码)、生产日期和校验码组成,具体结构如表I。表I水产品一维追溯监管码27位结构 _ 水产品一维追溯监管码__
厂商识别代码产品批号代码校验码 行政区划企业代码产品分类代码源实体参生产日期代码校验码 代码____考代码___
N1N2N3N4N5N6 N7N8N9N10 N11N12N13N14N15N16 N17N18N19N20 N21N22N23N24N25N26 N27_其中,厂商识别代码10位数字,行政区划代码可具体到县级,具体可参考GB/T2260-1999的编码;企业代码由I位企业类型识别代码和3位企业顺序流水号组成;产品批号代码16位数字,由6位产品分类代码、4位源实体参考代码和6位生产日期组成,产品分类代码按照层次码的设计,详见GB11782-89水产品名称分类。校验码的计算方法按奇偶校研算法执行,具体可参考GB 12904-2003附录B的计算方法。采用上述按水产品辖区生成的水产品追溯监管码共27位,对于消费者来说,只能进行批次追溯,无法对个体进行追溯;同时存在长度过长,不便于产品追溯等缺点。为了实现个体和批次关联追溯,首先需要对水产品追溯监管码进行压缩。本实施例中采用分组压缩算法对水产品追溯监管码进行压缩,具体为如图2所示,根据水产品追溯监管码的编码规则,采用分组的方法对每一码段进行编码压缩。编码压缩的基本思想是采用穷举法对每一码段按照最大取值范围进行重新编码设计。其中,校验码由厂商识别代码、产品批号代码计算得到,在压缩时可忽略;县级行政区划数量有2800个左右,因此,采用4个十进制位表示,企业代码elD保持不变,水产品分类代码采用3个十进制位表示1000个主流养殖品种完全可满足水产品应用需求。源实体参考代码即企业池塘代码保持不变,生产日期按照100年计算,大约36500天,采用5个十进制位即可表示。因此,经分组压缩后的压缩水产品追溯监管码共20位。b、通过加密算法对所述压缩农产品追溯监管码进行加密,生成一维追溯码;采用分组压缩算法压缩后的压缩水产品追溯监管码,实现了编码长度的减少,但其安全性和防伪性能较差,需要对其进行加密,而且加密前后需要保持长度不变,一品一码,以实现个体追溯。现有技术中的加密算法有很多种,如DES、IDEA、RSA、AES等,其中,AES算法作为DES加密算法的替代品,包括S盒替换(ByteSub)、行移位(ShiftRows)、列混合(MixColumn)、轮密钥加(AddRounds)四种加密运算,具有安全、高效,以及在不同软、硬件运行环境下均具有良好性能等优点。因此,本实施例中优选通过AES算法对压缩水产品监管码进行加密。但AES算法只适用于二进制编码的加密,本实施例中通过对AES算法进行改进,重新设计AES算法中的四种加密运算S盒替换、行移位、列混合、轮密钥加,以适应十进制数直接加密的要求。同时为增强加密强度,保证生成一维追溯码的唯一性,使同一明文生成无规律的密文,实现“一次一密”防伪效果,采用动态密钥Dkey[j]对压缩水产品监管码进行混沌随机加密,其中,j为自然数。具体的加密流程如图3所示,包括SI、获取压缩农产品追溯监管码并将该压缩农产品追溯监管码矩阵化,生成追溯码状态矩阵,按列存储记为State [i],其中,i为自然数;S2、读取初始密钥Key,由初始密钥Key按照动态密钥规则生成Nr个动态密钥Dkey [j],Nr个动态密钥Dkey [j]组成轮密钥表Len,其中,Nr为自然数;其中,初始密钥可以独立指定。在该步骤中主要实现对初始密钥Key的扩展,为实现与AES算法中128位扩展密钥对应(经过大量的实验证明,其具有足够高的安全性能),本实施例中将初始密钥Key扩展为长度m=32位的十进制动态密钥Dkey [j]。如图5所示,本实施例中由初始密钥Key生成Nr个32位十进制动态密钥Dkey [j]的具体过程为100、读取初始密钥Key、轮变换次数k和企业代码elD,并将初始密钥Key和企业顺序号610分别矩阵化,记为1^[]_]、610[]_],其中,j = 0 ;将动态密钥与企业代码关联,可以适用于不同企业的加密运算,提高加密算法的头用性。101、轮变换次数k对4取模,记为K ;轮变换次数k并不局限于对4取模,2、的自然数均可,并将不同的K值对应一个如步骤102中的求值算法。102、当 K=O 时,DKey [j] = (Key [j] + (eID[j]+k) modlO) modlO,并存储,或当K=I 时,DKey [j] = (Key [j] +Sbox[ (eID[j]+k) modlO] ) modlO,并存储,或当K=2 时,DKey [j] = (Key [j] -Sbox [ (eID[j]_k) modlO] ) modlO,并存储,或当K=3 时,DKey [j] = (Keyj]- (eID[j]_k) modlO) modlO,并存储;其中,Sbox为运行S盒替换算法的置换表,为适用于十进制的直接加密要求,Sbox置换表为十进制置换表,具体的置换过程将在以下内容中具体介绍。当然,这些算法并不是唯一的,只要加密、解密过程中对初始密钥Key的扩展算法相同,即可实现正确的加密、解密。103、(K+l) mod4,i+1 ;104、当 j〈32 时,重复步骤 102、103;105、当j = 32时,输出动态密钥 DKey [32]。S3、对追溯码状态矩阵State [i]进行Nr_l次轮变换,第k次轮变换依次包括S盒替换、行移位、列混合、与轮密钥表Len中的第k个动态密钥Dkey按照预设算法运算,该预设算法为可逆运算,其中,k为自然数,I≤k≤Nr-I ;
S4、依次对追溯码状态矩阵State [i]进行S盒替换、行移位、与轮密钥表Len中的第Nr个动态密钥按照预设算法运算,该预设算法为可逆运算;S5、输出一维追溯码。其中,轮变换主要包括以下几个关键步骤(i)本实施例中的S盒替换的Sbox置换表采用的是十进制数字位置换表,可以如表2所示,即O、的十进制数均替换为与其对应的其它数字,如十进制数4替换为7。每一轮的数字位置换中,能够达到一半的十进制位发生变化。与表2对应的反置换表如表3所示,用于图4所示解密过程中的反置换。表2Sbox数字位置换表
~~0 I 2 3 4 5 6 7 8 9 ~~6 8 4 9 7 2 I 0 5 3表3Sbox数字位逆置换表
~~0 I 2 3 4 5 6 7 8 9 ~7 6 5 9 2 8 0 4 I 3(ii)行移位算法与AES算法中的行移位规则相同第一行不移动,第二行循环左移I位,第三行循环左移2位,第四行循环左移3位,例如表4为20位追溯码状态矩阵State[i],表5为20位追溯码状态矩阵State[i]行移位操作。表420位追溯码状态矩阵
~~2I 7 7 0 I
~~6r~~0 2
~ ~I0~~1 0
~| I 0 3 3表520位追溯码状态矩阵行移位操作
~~2I 7 7 0 I ~~~~2 6 ~ ~I0~~3 I
~~3I 3 4 I 0(iii)追溯码状态矩阵State [i]列混合操作是用一个可逆正整数矩阵M左乘追溯码状态位矩阵State [i],然后对10进行取模运算,将得到的结果放回追溯码状态矩阵State [i]中。式(I)为加密过程中列混合操作的追溯码状态矩阵State[i]表示,式(2)为解密过程中列混合逆操作追溯码状态矩阵State[i]表示。
"5 3 2 Il[5943_
15 3 2, 3 5 9 4M=,M =
21 5 34 3 5 9
3215」[9 435「5 3 2 I ITs1c'
s’ r 1 5 3 2 s r=(mod 10) (I)
S3c 2 15 3 Sic
_s\c_ -3 2 1 5 - _^4C_
Slc 5 9 4 3
35 9 4 s;=(mod 10) (2)
he 4 3 5 9 53c
/4c _ _9 4 3 5 - S4c(iv)本实施例中追溯码状态矩阵State [i]与轮密钥表Len中的动态密钥Dkey [j]按照预设算法运算,该预设算法为可逆运算,如图6所示具体可以为200、获取第k次轮变换的第k个动态密钥Dkey [j],其中,i=0, j = 0 ;201、将动态密钥Dkey [j]的所有位按位相加然后对4进行取模运算,记为K ;202、当 K=O 时,State [i] = (State [i]+Dkey [j] ) modlO,并存储,或当K=I 时,State[i]= (State[i]+Sbox[Dkey [j]modl0] ) modlO,并存储,或当K=2 时,State [i] = (State [i]-Sbox[Dkey [j]modlO] ) modlO,并存储,或当K=3 时,State [i] = (State [i]-Dkey [j] ) modlO ;其中,Sbox为运行S盒替换算法的十进制置换表。在AES加密算法中,轮密钥加算法是利用二进制密钥与追溯码状态矩阵State[i]对应的字节做异或运算,但是对于十进制数来说异或运算没有可逆性。为了使追溯码状态位State [i]与动态密钥Dkey [j]混淆运算后具有可逆性,将AES算法中的二进制异或,改成十进制的轮密钥控制运算。轮密钥控制运算是根据每一轮的动态密钥Dkey[j]不同,进行不同的可逆运算,且运算入口由每一轮动态密钥Dkey [j]所有位按位相加的和对4取模来确定。 但每一轮动态密钥Dkey [j]所有位按位相加的和并不局限于对4取模,2、的自然数均可,并将不同的K值对应一个如步骤202中的可逆求值算法。当然,每一个可逆求值算法并不是唯一的,只要满足AES算法中轮密钥加算法中的可逆性即可。203、i+1,j+1;204、当i〈20时,重复步骤202,其中,n为追溯码状态矩阵State [i]的长度,本实施例中为20 ;205、当i=20时,输出追溯码状态矩阵State [20],追溯码状态矩阵State [20]即为一维水产品监管码的一维追溯码。因为追溯码状态矩阵State [i]和动态密钥Dkey [j]的所有位均为十进制数,对10进行取模运算,具有可逆性,能够实现解密过程。以实际企业水产品说明一维水产品追溯监管码加密过程,具体编码格式为企业的行政区划代码为440902企业类型养殖企业(I)企业顺序流水号001
水产品大类鲜、活品类水产品种类淡水鱼水产品名称绿卡牌中华鳖出池日期2010年11月20日根据水产品追溯监管码编码规则,计算得到6位行政区划代码为440902 ;4位企业顺序号为1001 ;6位产品分类代码为010122 ;4位源实体参考代码,即水产养殖企业产品出池的池塘编号,这里池塘编号位定为0001 ;6位生成日期代码为101120 ;校验码为0,综合以上信息,该企业该批次产品的27位追溯编码为440902100101012200011011200。当出池日 期为2010年11月21日时,该批次产品的27位追溯码为:440902100101012200011011211 o其中,一维条码采用EAN-128码制,由水产品追溯监管码经本文的加密算法生成,如图6所示。经过本文的算法加密后,2010年11月20日出池的中华鳖的一维追溯码为77888427347123231562,过程为
441 me HM) ICMtH 22(.)0(H l 1 I200 -—^2223 Hit) 1221OtW y767 sg 42 347423231 S6.22010年11月21日出池的中华鳖一维追溯码为09404382050494370518,过程为
#i P 密 441)^021(IOlf)101220001 I()II2CSI -_,2223100122 I(SfK)Ifl;3977-^(mm3g2()5(W437i)51 8经过压缩后,在保证实用和扩展的条件下缩短了码长,满足了编码导则的要求之一,而且做到了一维追溯码的唯一性,从而可以实现个体追溯,从一维追溯码数字表面看不出它所包含的任何含义,而且即使在得知一维追溯码的编码规则后,也无法获取里面的信息,安全性得到了很大的提高。C、将一维追溯码及一维追溯码的加密初始密钥Key转换成二维条码。将一维追溯码和一维追溯码的加密初始密钥Key存储于二维条码中,如果消费者需要追溯个体,那么只需扫描一维条码,连接数据库实现个体追溯;若要追溯批次,消费者首先需要扫描二维条码,通过二维加密的逆过程解密二维条码取出其中的一维密钥信息,通过一维条码加密算法的逆过程,解密一维条码获取批次编码实现批次追溯。从而实现个体和批次的关联追溯。由于二维条码可以存储文字信息,当没有网络或者网络不通的情况下,消费者可以识读二维条码中的信息,获取基本的追溯信息,无需通过网络查询数据实现产品的离线追溯;另一方面由于二维条码自身具有纠错能力,抗污损、模糊能力,所以当一维条码无法识别时,消费者可以读取二维条码中的一维条码信息从而实现追溯。为了防止二维条码中的信息被复制篡改,本发明实施例中优选利用AES短分组加密算法对汉信码加密,具体过程在此不再赘述。由以上实施例可以看出,本发明所提供的农产品追溯防伪标识方法通过压缩对农产品进行基于监管模式的编码,形成农产品追溯监管码;然后该农产品追溯监管码并加密生成一维追溯码,根据加密算法得到的结果具有唯一性,实现了一品一码,可以达到个体的标识与追溯,防伪功能强。并将一维追溯码及一维追溯码的加密初始密钥存入二维条码中,因为二维条码具有很好的纠错能力,当一维追溯码受损而无法识读时,可以从二维条码中获取一维追溯码及一维追溯码的加密初始密钥进行追溯。当没有网络的情况下,可以直接通过二维条码进行基本信息的离线追溯。同时,将一维条码与二维条码进行关联,能够实现个体与批次的灵活追溯,当追溯个体时,只需扫描一维条码进行追溯;当需要追溯批次时,扫描二维条码获取一维追溯码及一维追溯码的加密初始密钥,然后解密一维追溯码获取农产品追溯监管码,进行批次追溯。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
权利要求
1.一种农产品追溯防伪标识方法,其特征在于,包括 获取农产品追溯监管码并进行压缩,得到压缩农产品追溯监管码,所述农产品追溯监管码包括行政区划代码、企业代码elD、产品分类代码、源实体参考代码、生产日期和校验码; 通过加密算法对所述压缩农产品追溯监管码进行加密,生成一维追溯码; 将所述一维追溯码及所述一维追溯码的加密初始密钥Key作为二维条码内容的一部分生成二维条码。
2.根据权利要求I所述的农产品追溯防伪标识方法,其特征在于,还包括 通过AES分组加密算法对所述二维条码内容进行加密。
3.根据权利要求I所述的农产品追溯防伪标识方法,其特征在于,对所述压缩农产品追溯监管码进行加密的具体过程为 51、获取压缩农产品追溯监管码并将所述压缩农产品追溯监管码矩阵化,生成追溯码状态矩阵,按列存储记为State [i],其中,i为自然数; 52、读取初始密钥Key,由初始密钥Key按照动态密钥规则生成Nr个动态密钥Dkey [j],所述Nr个动态密钥Dkey [j]组成轮密钥表Len,其中,j、Nr为自然数; 53、对追溯码状态矩阵State[i]进行Nr-I次轮变换,第k次所述轮变换依次包括S盒替换、行移位、列混合、与所述轮密钥表Len中第k个动态密钥Dkey [j]按照预设算法运算,所述预设算法为可逆运算,其中,k为自然数,I彡k彡Nr-I ; 54、依次对追溯码状态矩阵State[i]进行S盒替换、行移位、与所述轮密钥表中的第Nr个动态密钥按照预设算法运算,所述预设算法为可逆运算; 55、输出一维追溯码; 其中,所述S盒替换的Sbox置换表为十进制置换表; 所述列混合具体为 所述追溯码状态矩阵State[i]左乘一可逆正整数矩阵,然后对10进行取模运算。
4.根据权利要求3所述的农产品追溯防伪标识方法,其特征在于,由初始密钥Key生成Nr个动态密钥DKey [j]的具体过程为 100、读取初始密钥Key、轮变换次数k和企业代码elD,并将所述初始密钥Key和企业代码610分别矩阵化,记为1(#[]_]、610[]_],其中,j = 0 ; 101、轮变换次数k对4取模,记为K;102、当K=O 时,DKey [j]= (Key [j]+ (eID[j]+k) modlO) modlO,并存储,或当 K=I 时,DKey [j]= (Key [j]+Sbox[ (eID[j]+k) modlO] ) modlO,并存储,或当 K=2 时,DKey [i]= (Key [j]-Sbox [ (eID[j]_k) modlO] ) modlO,并存储,或当 K=3 时,DKey [i] = (Key [j]- (eID[j]_k) modlO) modlO,并存储;103、(K+l)mod4,j+1 ; 104、当j〈m时,重复步骤102、103,其中,m为动态密钥Dkey的长度; 105、当j= m时,输出动态密钥DKey [m]。
5.根据权利要求3所述的农产品追溯防伪标识方法,其特征在于,所述追溯码状态矩阵State[i]与所述轮密钥表Len中第k个动态密钥DKey[j]按照预设算法运算,其中,I ^ k ^ Nr,具体为. 200、获取第k次轮变换的第k个动态密钥Dkey[j],其中,i=0, j = 0 ; .201、将动态密钥Dkey[j]的所有位按位相加然后对4进行取模运算,记为K ;.202、当K=O 时,State [i] = (State [i] +Dkey [j] ) modlO,并存储,或当 K=I 时,State [i] = (State [i] +Sbox[Dkey [j]modlO] ) modlO,并存储,或当 K=2 时,State [i] = (State [i]-Sbox[Dkey [j]modlO] ) modlO,并存储,或当 K=3 时,State [i] = (State [i] -Dkey [ j] ) modlO ;.203、i+1,j+1 ; .204、当i〈n时,重复步骤202,其中,n为追溯码状态矩阵State[i]的长度; .205、当i=n时,输出追溯码状态矩阵State[n],所述追溯码状态矩阵State [n]即为农产品追溯监管码的一维追溯码。
6.根据权利要求I所述的农产品追溯防伪标识方法,其特征在于,采用分组压缩算法对农产品追溯监管码进行压缩。
全文摘要
本发明属于农产品追溯系统技术领域,公开了一种农产品追溯防伪标识方法。该农产品追溯防伪标识方法通过对农产品进行基于监管模式的编码,形成农产品追溯监管码;然后压缩该农产品追溯监管码并加密生成一维追溯码,根据加密算法得到的结果具有唯一性,实现了一品一码,可以达到个体的标识与追溯,防伪功能强。并将一维追溯码及一维追溯码的加密初始密钥存入二维条码中,因为二维条码具有很好的纠错能力,当一维追溯码受损而无法识读时,可以从二维条码中获取一维追溯码进行追溯,当没有网络的情况下,可以直接通过二维条码进行基本信息的离线追溯。同时,将一维条码与二维条码进行关联,能够实现个体与批次的灵活追溯。
文档编号G06Q30/00GK102968725SQ201210371398
公开日2013年3月13日 申请日期2012年9月28日 优先权日2012年9月28日
发明者赵春江, 李文勇, 孙传恒, 周超, 解菁 申请人:北京农业信息技术研究中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1