发明内容
有鉴于此,本发明的目的是为了解决现有技术中的不足,提供一种四宫格纯色商品防伪码生成方法,将商品标识码采用自定义规则以及混沌***所产生混沌序列排序前、后的位置变化规则,生成四宫格纯色商品防伪码,以此保证所提方法简单可行,具有很强的安全性、不易破解,生成的四宫格纯色商品防伪码具有“唯一性和不可伪造性”。
本发明提供了一种四宫格纯色商品防伪码生成方法,包括下面几个步骤:
(1)将表示商品唯一身份信息的商品标识码P根据自定义的字符与数值型数据对应转换关系进行转换,得到高位数值序列A={A1,A2,...,Ai,...,AL}和低位数值序列B={B1,B2,...,Bi,...,BL},其中数值序列A和B的长度均与商品标识码P的长度相等,记为L,其中,商品标识码P由ASCII码值∈[32,126]的可见字符组成,即数字字符‘0’~‘9’、大写字母‘A’~‘Z’、小写字母‘a’~‘z’以及标点符号字符。
(2)首先利用外部加密密钥(α、β),按照如下所示公式分别计算得到混沌***的初值x1、参数μ、初始迭代步数m、第一抽取间隔n1和第二抽取间隔n2,
x1=mod(sd+α,0.99996)+0.00004,
μ=β+mod(sd,4-β),
其中,α∈(0,1),β∈[3.75,4),从而保证x1∈(0,1),μ∈[3,75,4),m∈[389,461]的整数,n1=[1,15]的整数,n2∈[1,17]的整数,可见混沌***的初值(x1)、参数(μ)、初始迭代步数(m)和抽取间隔(n1、n2)不仅与外部密钥α、β有关,而且会随着待加密的该商品标识码变化;
然后由初值x1和参数μ,对如下公式所示的Logistic混沌***进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
xk+1=μ×xk×(1-xk)
得到混沌序列X,从第m个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,并从第m个元素开始每隔n2个元素取1个,从而形成长度为L的混沌序列Z;
(3)将混沌序列Y按降序排序,根据序列Y排序前、后的位置化置乱规则,对高位数值序列A={A1,A2,...,Ai,...,AL}进行置乱,得到置乱后的高位数值序列A1={A11,A12,...,A1i,...,A1L},同时将混沌序列Z按降序排序,根据序列Z排序前、后的位置变化置乱规则,对低位数值序列B={B1,B2,...,Bi,...,BL}进行置乱,得到置乱后的低位数值序列B1={B11,B12,...,B1i,...,B1L},
接着将置乱后的高位数值序列A1、低位数值序列B1中元素,利用dec2bin(·,4)函数逐个元素进行数值与二进制位转换,得到高位二进制序列
和低位二进制序列
(4)首先将高位二进制序列
中元素从头到尾依次正向以3个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满3个一组为止,得到分组后的高位二进制分组序列,表示为
同时将低位二进制序列
中元素从尾到头依次逆向以3个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满3个一组为止,得到分组后的低位二进制分组序列,表示为
其中每一个二进制位分组序列
或
均包含3个二进制位,且分组的数量为
然后将每一个高位二进制分组序列
和低位二进制分组序列
其中i=1,2,3,...,M,依次按照如下所示公式进行二进制转换为数值型数据的运算,
从而得到高位数值序列AP={AP1,...,APi,...,APM}和低位数值序列BP={BP1,...,BPi,...,BPM};
(5)首先定义四宫格商品防伪号的位置分布以及各位置的数值表示如下,
四宫格商品防伪号各位置的数值D1、D2、D3、D4分别由如下所示公式计算而得,
式中,sum(AP(1:K1-1))、sum(AP(1:K2-1))、sum(AP(1:K3-1))、sum(AP(1:K4-1))分别表示从高位数值序列{AP1,...,APi,...,APM}中取第1个元素到第K1-1个、第K2-1个、第K3-1个、第K4-1个元素之和,sum(AP(K1:M))、sum(AP(K2:M))、sum(AP(K3:M))、sum(AP(K4:M))分别表示从高位数值序列{AP1,...,APi,...,APM}中取第K1个、第K2个、第K3个、第K4个元素到第M个元素之和,sum(BP(1:K1-1))、sum(BP(1:K2-1))、sum(BP(1:K3-1))、sum(BP(1:K4-1))分别表示从低位数值序列{BP1,...,BPi,...,BPM}中取第1个元素到第K1-1个、第K2-1个、第K3-1个、第K4-1个元素之和,sum(BP(K1:M))、sum(BP(K2:M))、sum(BP(K3:M))、sum(BP(K4:M))表示从低位数值序列{BP1,...,BPi,...,BPM}中分别取第K1个、第K2个、第K3个、第K4个元素到第M个元素的数值之和,
其中K1、K2、K3、K4的取值,可由如下所示公式计算而得:
(6)根据自定义数值与颜色对应关系,找到四宫格商品防伪号各位置的数值D1、D2、D3、D4对应的颜色,并将四格位置中分别填涂上相应颜色,即为此商品的四宫格纯色商品防伪号,再将商品标识码P与四宫格纯色商品防伪号组合,从而得到四宫格纯色商品防伪码。
作为优选,步骤(1)中所述自定义的字符与数值型数据对应转换关系,是指将商品标识码P表示的字符串P1P2,...,Pi,...,PL,逐个字符Pi进行如下操作,其中i=1,2,...,L,
首先将字符P
i转换为其对应的ASCII码值PP
i,并得到高位数值型数据
以及低位数值型数据B
i=mod(PP
i,16),
然后判断字符P
i序号i的奇偶性,如果i为偶数,则高位数值型数据
低位数值型数据
如果i为奇数,则高位数值型数据A
i=A
i,低位数值型数据B
i=B
i,
从而得到高位数值序列A={A1,A2,...,Ai,...,AL}和低位数值序列B={B1,B2,...,Bi,...,BL}。
作为优选,步骤(6)中所述根据自定义数值与颜色对应关系,其中颜色取自国标色卡GSB05-1426-2001,具体数值与颜色对应关系表示为:0→gy09冰灰;1→b01深灰;2→b02中灰;3→b03淡灰;4→b05海灰;5→b06淡天(酞)蓝;6→b07蛋青;7→b08稚蓝;8→b09宝石蓝;9→b10鲜蓝;10→b13深海(铁)蓝;11→b14景蓝;12→b15艳蓝;13→bg01中绿灰;14→bg02湖绿;15→bg03宝绿;16→bg04鲜绿;17→bg05淡湖绿;18→g01苹果绿;19→g02淡绿;20→g04中绿;21→g07蛋壳绿;22→g09深豆绿;23→gy01豆绿;24→gy02纺绿;25→gy05褐绿;26→gy06军车绿;27→gy07豆蔻绿;28→gy08果(酞)绿;29→gy10机床灰;30→p01淡紫;31→p02紫;32→pb02深(酞)蓝;33→pb03中(铁)蓝;34→pb04中(酞)蓝;35→pb05海蓝;36→pb06淡(酞)蓝;37→pb07淡(铁)蓝;38→pb08蓝灰;39→pb09天(酞)蓝;40→pb10天(铁)蓝;41→pb11孔雀蓝;42→r01铁红;43→r02朱红;44→rp01粉红;45→rp02淡粉红;46→rp03玫瑰红;47→rp04淡玫瑰;48→tr01淡棕;49→y01驼灰;50→y02珍珠;51→y04象牙;52→y05柠黄;53→y07中黄;54→y09铁黄;55→y10军黄;56→y11乳白;57→y12米黄;58→y13淡黄灰;59→yr02赭黄;60→yr04桔黄;61→yr05棕;62→yr06棕黄;63→yr07深棕黄。
作为优选,步骤(6)中所述再将商品标识码P与四宫格纯色商品防伪号组合,是指将商品标识码P与四宫格纯色商品防伪号上下排放,从而得到四宫格纯色商品防伪码。
有益效果:
本发明采用自定义对应关系(商品标识码与数值型数据、数值与颜色),以及混沌***所产生混沌序列排序前、后的位置变化规则,生成四宫格纯色商品防伪码,以此保证所提方法简单可行,具有很强的安全性、不易破解,生成的四宫格纯色商品防伪码具有“唯一性和不可伪造性”。
具体实施方式
如图1所示的一种四宫格纯色商品防伪码生成方法,包括如下几个步骤:
(1)将表示商品唯一身份信息的商品标识码P根据自定义的字符与数值型数据对应转换关系进行转换,得到高位数值序列A={A1,A2,...,Ai,...,AL}和低位数值序列B={B1,B2,...,Bi,...,BL},其中商品标识码P由ASCII码值∈[32,126]的可见字符组成,即数字字符‘0’~‘9’、大写字母‘A’~‘Z’、小写字母‘a’~‘z’以及标点符号字符,数值序列A和B的长度与商品标识码P的长度均为L,
其中,自定义的字符与数值型数据对应转换关系,是指将商品标识码P表示的字符串P1P2,...,Pi,...,PL,逐个字符Pi进行如下操作,其中i=1,2,...,L,
首先将字符P
i转换为其对应的ASCII码值PP
i,并得到高位数值型数据
以及低位数值型数据B
i=mod(PP
i,16),
然后判断字符P
i序号i的奇偶性,如果i为偶数,则高位数值型数据
低位数值型数据
如果i为奇数,则高位数值型数据A
i=A
i,低位数值型数据B
i=B
i,
从而得到高位数值序列A={A1,A2,...,Ai,...,AL}和低位数值序列B={B1,B2,...,Bi,...,BL};
(2)首先利用外部加密密钥(α、β),按照如下所示公式分别计算得到混沌***的初值(x1)、参数(μ)、初始迭代步数(m)和抽取间隔(n1、n2),
x1=mod(sd+α,0.99996)+0.00004,
μ=β+mod(sd,4-β),
其中,α∈(0,1),β∈[3.75,4),从而保证x1∈(0,1),μ∈[3,75,4),m∈[389,461]的整数,n1=[1,15]的整数,n2∈[1,17]的整数,可见混沌***的初值(x1)、参数(μ)、初始迭代步数(m)和抽取间隔(n1、n2)不仅与外部密钥α、β有关,而且会随着待加密的该商品标识码变化,
然后由初值x1和参数μ,对如下公式所示的Logistic混沌***进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,
xk+1=μ×xk×(1-xk)
得到混沌序列X,从第m个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y,并从第m个元素开始每隔n2个元素取1个,从而形成长度为L的混沌序列Z;
(3)将混沌序列Y按降序排序,根据序列Y排序前、后的位置化置乱规则,对高位数值序列A={A1,A2,...,Ai,...,AL}进行置乱,得到置乱后的高位数值序列A1={A11,A12,...,A1i,...,A1L},同时将混沌序列Z按降序排序,根据序列Z排序前、后的位置变化置乱规则,对低位数值序列B={B1,B2,...,Bi,...,BL}进行置乱,得到置乱后的低位数值序列B1={B11,B12,...,B1i,...,B1L},
接着将置乱后的高位数值序列A1、低位数值序列B1中元素,利用dec2bin(·,4)函数逐个元素进行数值与二进制位转换,得到高位二进制序列
和低位二进制序列
(4)首先将高位二进制序列
中元素从头到尾依次正向以3个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满3个一组为止,得到分组后的高位二进制分组序列,表示为
同时将低位二进制序列
中元素从尾到头依次逆向以3个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满3个一组为止,得到分组后的低位二进制分组序列,表示为
其中每一个二进制位分组序列
或
均包含3个二进制位,且分组的数量为
然后将每一个高位二进制分组序列
和低位二进制分组序列
其中i=1,2,3,...,M,依次按照如下所示公式进行二进制转换为数值型数据的运算,
从而得到高位数值序列AP={AP1,...,APi,...,APM}和低位数值序列BP={BP1,...,BPi,...,BPM};
(5)首先定义四宫格商品防伪号的位置分布以及各位置的数值表示如下,
四宫格商品防伪号各位置的数值D1、D2、D3、D4分别由如下所示公式计算而得,
式中,sum(AP(1:K1-1))、sum(AP(1:K2-1))、sum(AP(1:K3-1))、sum(AP(1:K4-1))分别表示从高位数值序列{AP1,...,APi,...,APM}中取第1个元素到第K1-1个、第K2-1个、第K3-1个、第K4-1个元素之和,sum(AP(K1:M))、sum(AP(K2:M))、sum(AP(K3:M))、sum(AP(K4:M))分别表示从高位数值序列{AP1,...,APi,...,APM}中取第K1个、第K2个、第K3个、第K4个元素到第M个元素之和,sum(BP(1:K1-1))、sum(BP(1:K2-1))、sum(BP(1:K3-1))、sum(BP(1:K4-1))分别表示从低位数值序列{BP1,...,BPi,...,BPM}中取第1个元素到第K1-1个、第K2-1个、第K3-1个、第K4-1个元素之和,sum(BP(K1:M))、sum(BP(K2:M))、sum(BP(K3:M))、sum(BP(K4:M))表示从低位数值序列{BP1,...,BPi,...,BPM}中分别取第K1个、第K2个、第K3个、第K4个元素到第M个元素的数值之和,
其中K1、K2、K3、K4的取值,可由如下所示公式计算而得:
(6)根据自定义数值与颜色对应关系(如表1),其中表中颜色取自国标色卡GSB05-1426-2001,找到四宫格商品防伪号各位置的数值D1、D2、D3、D4对应的颜色,并将四格位置中分别填涂上相应颜色,即为此商品的四宫格纯色商品防伪号,再将商品标识码P与四宫格纯色商品防伪号上下排放,从而得到四宫格纯色商品防伪码。
表1自定义数值与颜色对应关系表
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述具体实施方式中一种四宫格纯色商品防伪码生成方法,步骤如下:
(1)将商品标识码“123-abcdef-20191011-12345678-12?>3”据自定义的字符与数值型数据对应转换关系进行转换,得到高位数值序列A={3,12,3,13,6,9,6,9,6,9,2,12,3,12,3,12,3,12,3,13,3,12,3,12,3,12,3,12,2,12,3,12,3,12}和低位数值序列B={1,13,3,2,1,13,3,11,5,9,13,13,0,14,9,14,0,14,1,2,1,13,3,11,5,9,7,7,13,14,2,0,14,12},其中数值序列A和B的长度均与商品标识码P的长度相等,记为L=34。
(2)首先利用外部加密密钥(α=0.12345、β=3.75),按照如下所示公式分别计算得到混沌***的初值(x1)、参数(μ)、初始迭代步数(m)和抽取间隔(n1、n2),
x1=mod(0.0268609550561798+0.12345,0.99996)+0.00004=0.0966290449438202,
μ=3.75+mod(0.0268609550561798,4-3.75)=3.77686095505618,
m=389+mod(41095505617,73)=443,
n1=mod(341095505618,15)+1=9,
n2=mod(341095505618,17)+1=17,
然后由初值x1和参数μ,对如下公式所示的Logistic混沌***进行迭代,得到混沌序列X,从第443个元素开始每隔9个元素取1个,从而形成长度为34的混沌序列Y={0.825235934274942,0.616452237481290,0.765552562910773,0.943565003802933,0.601911774718669,0.428636428114327,0.572710962967395,0.716146953441589,0.396459319673601,0.368189502157621,0.738042634828511,0.251317203339114,0.887370861858642,0.383511064583701,0.768275737775234,0.890775470709322,0.296369562208636,0.923735284745589,0.596452066240713,0.793831091605962,0.634127075833674,0.887196182572219,0.411863490027642,0.743452634071818,0.710096559595801,0.403426160027048,0.785272382001596,0.541580986379887,0.852054385656683,0.914508974769020,0.648911032014924,0.199964814625770,0.896260328563558,0.944016872758753},并从第443个元素开始每隔17个元素取1个,从而形成长度为34的混沌序列Z={0.825235934274942,0.717496072417948,0.944211953144826,0.761500326508492,0.940498107305887,0.313729257218443,0.655183257568126,0.360988298889462,0.367467917132271,0.923735284745589,0.699542555722573,0.887488240826459,0.424490852024680,0.940158304958555,0.918442214402926,0.206157917728980,0.453468061280980,0.351164041243004,0.620781541175756,0.207685533409552,0.793013766342020,0.822492641499945,0.202945095515978,0.797666531591948,0.742689924672860,0.903213411764277,0.199419393388057,0.692939870465124,0.556544644036482,0.660838968492661,0.938879054021177,0.695192072417127,0.596851608536495,0.497949430024520};
(3)将混沌序列Y按降序排序,根据序列Y排序前、后的位置化置乱规则,对高位数值序列A进行置乱,得到置乱后的高位数值序列A1={12,13,12,12,3,12,3,12,2,3,13,3,3,3,12,2,9,3,3,3,12,6,3,6,12,9,3,12,6,12,9,3,12,12},同时将混沌序列Z按降序排序,根据序列Z排序前、后的位置变化置乱规则,对低位数值序列B进行置乱,得到置乱后的低位数值序列B1={3,1,14,2,9,9,9,13,1,13,11,1,2,5,13,13,0,7,14,3,1,14,13,12,0,0,5,11,14,13,2,14,3,7},
接着将置乱后的高位数值序列A1、低位数值序列B1中元素,利用dec2bin(·,4)函数逐个元素进行数值与二进制位转换,得到高位二进制序列
和低位二进制序列
(4)计算得到分组数量为
将高位二进制序列
分别进行分组计算,得到高位数值序列AP={AP
1,...,AP
i,...,AP
M}={12,6,6,8,12,0,14,8,2,14,0,4,2,14,4,6,2,8,14,8,2,4,4,6,2,8,14,8,6,0,12,12,12,4,4,6,12,2,10,8,8,8,14,8,12,16}和低位数值序列BP={BP
1,...,BP
i,...,BP
M}={14,6,0,14,4,4,12,14,12,12,8,0,0,0,14,6,6,12,2,8,6,14,8,0,10,12,14,4,4,4,2,10,10,12,2,6,8,12,6,2,4,2,14,0,12,16}。
(5)K1、K2、K3、K4的取值,可由如下所示公式计算而得:
四宫格商品防伪号各位置的数值D1、D2、D3、D4分别由如下计算而得,
(6)根据自定义数值与颜色对应关系表,找到四宫格商品防伪号各位置的数值D1、D2、D3、D4对应的颜色分别为tr01淡棕、pb06淡(酞)蓝、b09宝石蓝、pb10天(铁)蓝,将四格位置中分别填涂上相应颜色,即为此商品的四宫格纯色商品防伪号,再将商品标识码“123-abcdef-20191011-12345678-12?>3”与四宫格纯色商品防伪号上下排放,从而得到四宫格纯色商品防伪码,如图2所示,图2中,左图中四宫格纯色商品防伪号用颜色表示,右图中四宫格纯色商品防伪号用颜色名称表示。
实施例2
按照上述四宫格纯色商品防伪码生成方法,某件商品的标识码及其四宫格纯色商品防伪码生成步骤与具体实施例1相似,仅某个外部密钥发生细微变化:α=0.123450000001或β=3.7500000001,四宫格纯色商品防伪码的生成结果如表2所示。由下表可见:一旦外部密钥即使发生细微变化,生成的四宫格纯色商品防伪码会发生极大的变化,由此可见本专利所提一种四宫格纯色商品防伪码生成方法具有密钥敏感性。
表2外部密钥发生微变时,四宫格纯色商品防伪码的生成结果
实施例3
按照上述四宫格纯色商品防伪码生成方法,外部密钥及其四宫格纯色商品防伪码生成步骤与具体实施例1相似,微变的商品标识码(如“023-abcdef-20191011-12345678-12?>3”、“123-abcdef-20191012-12345678-12?>3”和“923-abcdef-20191011-12345678-12?<3”)生成的四宫格纯色商品防伪码结果如表3所示。由下表可见:商品标识码的细微变化会引起四宫格纯色商品防伪码发生很大的变化,由此可见本专利所提一种四宫格纯色商品防伪码生成方法对商品身份信息(即商品标识码)具有敏感性。
表3商品标识码发生微变时,四宫格纯色商品防伪码的生成结果
由上述具体实施例2和例3分析可知,本专利所提一种四宫格纯色商品防伪码生成方法生成的商品防伪码不仅与商品标识码有关,而且依赖于外部密钥,因此本专利所提的一种四宫格纯色商品防伪码生成方法简单可行,具有很强的安全性,以生成的四宫格纯色商品防伪码具有“唯一性和不可伪造性”。