1.一种基于汉字加密的商品防伪码生成方法,其特征在于,包括如下几个步骤:
(1)转码
首先,将表征某件商品唯一身份信息的汉字商品标识码A,逐个汉字转换为数值型数据[Pi1,Pi2],得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2},然后,依次将高位数值序列P1中元素Pi1逐个转换成8bits的二进制序列{PB1i1,PB1i2,PB1i3,PB1i4,PB1i5,PB1i6,PB1i7,PB1i8},同时从该二进制序列中抽取后3个元素,得到二进制序列BP1={BP11,BP12,…,BP1i,…,BP13×L-1,BP13×L}={PB116,PB117,PB118,PB126,PB127,PB128,…,PB1i6,PB1i7,PB1i8,…,PB1L6,PB1L7,PB1L8},最后,依次将低位数值序列P2中元素Pi2逐个转换成8bits的二进制序列{PB2i1,PB2i2,PB2i3,PB2i4,PB2i5,PB2i6,PB2i7,PB2i8},同时从该二进制序列中抽取后5个元素,得到二进制序列BP2={BP21,BP22,…,BP2i,…,BP25×L-1,BP25×L}={PB214,PB215,PB216,PB217,PB218,…,PB2i4,PB2i5,PB2i6,PB2i7,PB2i8,…,PB2L4,PB2L5,PB2L6,PB2L7,PB2L8},其中商品标识码A包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字,商品标识码A的长度表示为L,数值序列P1和P2的长度均为L,二进制序列BP1的大小为3×L,二进制序列BP2的大小为5×L;
(2)二进制序列BP1、BP2的置乱
首先,利用数值序列P1、P2及其逐个元素转换而得的二进制序列{PB1i1,PB1i2,...,PB1i8}、{PB2i1,PB2i2,…,PB2i8},以及外部密钥α和β,按照如下(1)-(4)公式分别计算得到Logistic混沌映射的初值x1和参数μ、抽取开始位置m,以及抽取间隔数n,令则
x1=0.000001+mod(α-kp1,0.999999), (1)μ=β+mod(kp1,4-β), (2)其中,
首先,将置乱后的二进制序列 中元素从头到尾依次正向以3个元素为单位进行分组,得到分组后的二进制序列,表示为BF1{1},BF1{2},...,BF1{i},...BF1{L},其中,每一个二进制分组序列同时,将置乱后的二进制序列 中元素从头到尾依次正向以5个元素为单位进行分组,得到分组后的二进制序列,表示为BF2{1},BF2{2},...,BF2{i},...BF2{L},其中,每一个二进制分组序列然后,将每一个二进制分组序列BF1{i}、BF2{i},其中i=1,2,3,...,L,分别依次进行如下重组操作:令tmp1{i}=dec2bin(bin2dec([PB1i1,PB1i2,PB1i3,PB1i4,PB1i5])+2,5),在二进制分组序列BF1{i}前面添上二进制序列tmp1{i},表示为 其中bin2dec(·)函数表示将二进制序列转换为数值型数据,而dec2bin(·)函数表示将数值型数据转换为二进制序列,同时,令tmp2{i}={PB2i1,PB2i2,PB2i3},在二进制分组序列BF2{i}前面添上二进制序列tmp2{i},表示为从而得到重组后的二进制分组序列,表示为 以及
最后,利用bin2dec(·)函数,依次将每一个重组后的二进制分组序列 转换成数值型数据 同时依次将每一个重组后的二进制分组序列 转换成数值型数据其中i=1,2,3,...,L,从而得到数值序列 和
(4)转码
将数值序列 和 对应元素依
次组合并进行数值与汉字的转换,得到汉字序列C,即为商品防伪号,其中汉字序列C的长度为L,并将商品标识码A和商品防伪号进行组合,生成商品防伪码。
2.根据权利要求1所述的一种基于汉字加密的商品防伪码生成方法,其特征在于:步骤(1)中所述的将表征某件商品唯一身份信息的汉字商品标识码A,逐个汉字转换为数值型数据[Pi1,Pi2],是指将商品标识码A中逐个汉字采用unicode2native(·)函数转换为数值型数据,即[Pi1,Pi2]=unicode2native(Ai),从而得到高位数值序列P1={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P12,P22,...,Pi2,....,PL2}。
3.根据权利要求1所述的一种基于汉字加密的商品防伪码生成方法,其特征在于:步骤(4)中所述的将数值序列 和 对应元素依次组合并进行数值与汉字的转换,是指将数值序列 和 中每个对应元素进行组合,即 i=1,2,...,L,并依次进行如下操作,且设汉字序列C=[],如果 则将汉字序列C中添加1个中文空格符号,即C=[C,native2unidoce([161,161])],其中中文空格符号可用native2unidoce([161,161])表示,同时令如果 则将汉字序列C中添加1个中文空格符号,即C=[C,native2unidoce([161,161])],其中中文空格符号可用native2unidoce([161,161])表示,同时令如果 则将汉字序列C中添加1个中文符号‘。’,即C=[C,native2unidoce([161,163])],其中中文符号‘。’可用native2unidoce([161,163])表示,同时令如果 则将汉字序列C中添加1个中文符号‘。’,即C=|C,native2unidoce([161,163])|,其中中文符号‘。’可用native2unidoce([161,163])表示,同时令接着采用native2unicode(·)函数将数值型数据 转换成汉字,即循环以上步骤,直至数值序列 和 中最后1个对应元素,即
从而得到汉字序列C,即为商品防伪号。
4.根据权利要求1所述的一种基于汉字加密的商品防伪码生成方法,其特征在于:步骤(4)中所述的将商品标识码A和商品防伪号进行组合,生成商品防伪码,是指采用商品标识码A和商品防伪号直接顺序连接,或者直接逆序连接,或者间隔插序连接的组合方式。