一种基于分层加密的商品防伪二维码生成方法与流程

专利2022-05-09  28


本发明涉及数码防伪技术领域,特别涉及一种基于分层加密的商品防伪二维码生成方法。



背景技术:

数码防伪技术是基于日益猖獗的假冒伪劣产品所应运而生的,现代的数码防伪是一种综合利用数字编码技术、加密技术、数据库技术、计算机网络,交互式语音处理(irv)等技术的新型高科技防伪技术。由于传统防伪技术的种种缺点,综观其数码防伪技术的发展过程,并根据防伪码生成方式的不同数码防伪技术主要经历了随机条码防伪模型、加密有序流水号防伪模型以及综合防伪模型三个阶段。在各方人士的不懈努力之下,数码防伪技术已经成为了防伪行业中运用最为广泛的技术之一,在产品防伪领域起着举足轻重的作用。

随着社会不断进步,市场日益发展。对于企业来说,数码防伪能保持品牌好的口碑。同时,“一物一码”的防伪方式,大大增加了造假者的造假成本,可以记录产品的定位信息,统计产品查询次数和查询方式,根据企业要求设置查询警戒线。目前智能终端已成为人们日常生活中重要的组成部分,而数码防伪技术也逐渐融入互联网,用户通过智能终端扫描商品防伪二维码进行“一键式”真伪查询,互联网的发展和普及为数码防伪系统的落地奠定了良好的基础。

数码防伪中最根本的部分就是利用加密算法生成商品防伪码,其中加密算法的选择就变得尤为重要。由于混沌系统具有高随机性和参数敏感性,产生的混沌信号对加密信号的扩散性和置乱性有很大的影响,混沌信号作为一种天然的密码而被引入数码防伪的加密中,用混沌密码技术进行商品信息的加密是一个很好的选择。在此情况下,利用混沌密码技术,提出一种基于分层加密的商品防伪二维码生成方法,以生成具有“唯一性和不可伪造性”的商品防伪二维码,具有很好的实际应用推广价值。



技术实现要素:

发明目的:本发明的目的是为了解决现有技术中的不足,提供一种基于分层加密的商品防伪二维码生成方法,由混沌迭代产生混沌序列,对商品标识码进行数值型数据以及二进制转换而成的组合二进制矩阵b,利用抽取而得的混沌信号,依次分层进行循环移位,同时混沌信号的抽取位置随着移位后分层数据进行实时调整,生成一幅灰度图像,进而组合生成商品防伪二维码,以此保证所提基于分层加密的商品防伪二维码生成方法简单可行,具有很强的安全性、不易破解,生成的商品防伪二维码具有“唯一性和不可伪造性”。

技术方案:一种基于分层加密的商品防伪二维码生成方法,包括如下几个步骤:

(1)转码

首先,将表征某件商品唯一身份信息的商品标识码a,逐个字符转换为数值型数据,得到数值序列

然后,依次将数值序列p中元素pi逐个转换成8bits的二进制序列{pbi1,pbi2,pbi3,pbi4,pbi5,pbi6,pbi7,pbi8},并将个二进制序列{pbi1,pbi2,pbi3,pbi4,pbi5,pbi6,pbi7,pbi8}从左往右逐列填入矩阵b中,其中i=1,2,...,矩阵某行对应于各二进制序列的某位,从而得到组合二进制矩阵b,

其中商品标识码a为gbk编码的字符,商品标识码a的长度表示为数值序列p的长度为组合二进制矩阵b的大小为

(2)混沌序列的产生

首先,利用数值序列p及其转换的组合二进制矩阵b,以及外部密钥α和β,按照如下公式(1)-(3)分别计算得到bernoulli混沌映射的初值x1和参数λ以及初次抽取位置n,

x1=0.01 mod(α-kp,0.99),(1)

λ=0.1 mod(β kp,0.9),(2)

其中,<b>表示组合二进制矩阵b中二进制位‘1’的个数,外部密钥满足α∈(0,1),β∈(0,1),表示对某数取整且取整后的值不大于该数,

然后,由混沌映射的初值x1和参数λ,对如下公式(4)所示bernoulli混沌映射进行迭代,式中k表示迭代次数(k=1,2,...)、xk 1表示第k次迭代得到的混沌信号,

得到混沌序列x={x1,x2,...},

(3)组合二进制矩阵b的分层移位加密

首先,将组合二进制矩阵b中元素分为8层,其中组合二进制矩阵b的第k层表示为k=1,2,...,7,8,

然后,利用混沌序列x={x1,x2,...},对组合二进制矩阵b,逐层进行如下操作:

s10.令二进制矩阵为空矩阵,且i=1,

s11.从混沌序列x中抽取第n个元素xn,按照如下公式(5)、(6)分别计算得到移位方向f_direction和移位个数f_number,

s12.取组合二进制矩阵b的第i层,得到二进制序列接着判断移位方向f_direction的数值,

如果f_direction=0,则将二进制序列循环左移,移位f_number个二进制,得到移位后的二进制序列

如果f_direction=1,则将二进制序列循环右移,移位f_number个二进制,得到移位后的二进制序列

随后,将二进制序列从左往右按序存入二进制矩阵的第i行,

s13.比较i与的大小,

若i<8,则对二进制序列进行分组,将二进制序列中元素从左到右依次正向以32个元素为单位进行分组,得到分组后的二进制序列,表示为bf{1},bf{2},...,其中表示对取整且取整后的值不小于再对抽取位置n按照如下公式(7)进行调整,且令i=i 1,随后转向步骤s11,

若i=8,则停止操作,从而得到二进制矩阵表示如下,

最后,利用bin2dec(·)函数,依次将二进制矩阵的每列元素转换成数值型数据其中表示为从而得到数值序列

(4)二维码的生成

首先,确定灰度图片的大小,令行数为h,列数为l,其中列数行数h满足如下,

其中,表示对某数取整且取整后的值不小于该数,

然后,按照自定义的矩阵数据填放规则,将数值序列中元素依次填放入表征灰度图片的矩阵m中,从而生成灰度图片c,其中矩阵m的大小为h×l,灰度图片c的大小为30h×30l,

最后,将商品标识码a和生成的灰度图片c进行组合,并利用二维码生成器将组合的商品标识码和灰度图片转换为二维码,从而得到商品防伪二维码。

进一步地,一种基于分层加密的商品防伪二维码生成方法里步骤(1)中所述的将表征某件商品唯一身份信息的商品标识码a,逐个字符转换为数值型数据,是指将商品标识码a中逐个字符采用unicode2native(·)函数转换为数值型数据,即对于双字节字符的转换表示为对于单字节字符的转换表示为从而得到数值序列

进一步地,一种基于分层加密的商品防伪二维码生成方法里步骤(1)中所述的依次将数值序列p中元素pi逐个转换成8bits的二进制序列{pbi1,pbi2,pbi3,pbi4,pbi5,pbi6,pbi7,pbi8},是指是指采用dec2bin(pi,8)函数,即[pbi1,pbi2,pbi3,pbi4,pbi5,pbi6,pbi7,pbi8]=dec2bin(pi,8)。

进一步地,一种基于分层加密的商品防伪二维码生成方法里步骤(4)中所述的按照自定义的矩阵数据填放规则,将数值序列中元素依次填放入表征灰度图片的矩阵m中,是指按如下三个步骤进行:

步骤1.判断数值序列的长度是否小于数值h×l,

如果是,则在数值序列的尾端增补上个元素,数值大小为0且最后一个元素大小为得到增补后的数值序列

如果不是,则令增补后的数值序列等于数值序列

步骤2.从表征灰度图片的矩阵m的左上角位置开始,按行且每行从左往右,依次将增补后的数值序列中元素填放入矩阵m中,表示如下,

步骤3.将矩阵m中各元素分别用小矩阵块代替,小矩阵块的矩阵大小为30×30、元素数值均与m中该元素数值一致,表示如下,

将矩阵mc转换为灰度图片,从而生成灰度图片c,其中灰度图片c的大小为30h×30l。

进一步地,一种基于分层加密的商品防伪二维码生成方法里步骤(4)中所述的将商品标识码a和生成的灰度图片c进行组合,是指将生成的灰度图片c与商品标识码a上下连接的组合方式,即将商品标识码a放在生成的灰度图片c正下方。

有益效果:本发明由混沌迭代产生混沌序列,对商品标识码进行数值型数据以及二进制转换而成的组合二进制矩阵b,利用抽取而得的混沌信号,依次分层进行循环移位,同时混沌信号的抽取位置随着移位后分层数据进行实时调整,随后利用灰度图像像素值与数值型数据范围的匹配性,生成一幅灰度图像,进而组合生成商品防伪二维码,以此保证所提基于分层加密的商品防伪二维码生成方法简单可行,具有很强的安全性、不易破解,生成的商品防伪二维码具有“唯一性和不可伪造性”。

附图说明

图1为本发明的一种基于分层移位加密的商品防伪二维码生成流程示意图;

图2为本发明的实施例1中的灰度图片c;

图3为本发明的实施例1中的商品防伪二维码;

图4为本发明的实施例2中的灰度图片c;

图5为本发明的实施例2中的商品防伪二维码;

图6为本发明的实施例3中的灰度图片c;

图7为本发明的实施例3中的商品防伪二维码。

具体实施方式

如图1所示的一种基于分层加密的商品防伪二维码生成方法,包括如下几个步骤:

(1)转码

首先,将表征某件商品唯一身份信息的商品标识码a,逐个字符采用unicode2native(·)函数转换为数值型数据,即对于双字节字符的转换表示为对于单字节字符的转换表示为从而得到数值序列...,unicode2native(ai),...,unicode2native(al)},

然后,采用dec2bin(pi,8)函数,依次将数值序列p中元素pi逐个转换成8bits的二进制序列{pbi1,pbi2,pbi3,pbi4,pbi5,pbi6,pbi7,pbi8},并将个二进制序列{pbi1,pbi2,pbi3,pbi4,pbi5,pbi6,pbi7,pbi8}从左往右逐列填入矩阵b中,其中i=1,2,...,矩阵某行对应于各二进制序列的某位,从而得到组合二进制矩阵b,

其中商品标识码a为gbk编码的字符,商品标识码a的长度表示为数值序列p的长度为组合二进制矩阵b的大小为

(2)混沌序列的产生

首先,利用数值序列p及其转换的组合二进制矩阵b,以及外部密钥α和β,按照如下所示公式分别计算得到bernoulli混沌映射的初值x1和参数λ以及初次抽取位置n,

x1=0.01 mod(α-kp,0.99),

λ=0.1 mod(β kp,0.9),

其中,<b>表示组合二进制矩阵b中二进制位‘1’的个数,外部密钥满足α∈(0,1),β∈(0,1),表示对某数取整且取整后的值不大于该数,

然后,由混沌映射的初值x1和参数λ,对如下公式所示的bernoulli混沌映射进行迭代,式中k表示迭代次数(k=1,2,...)、xk 1表示第k次迭代得到的混沌信号,

得到混沌序列x={x1,x2,...},

(3)组合二进制矩阵b的分层移位加密

首先,将组合二进制矩阵b中元素分为8层,其中组合二进制矩阵b的第k层表示为k=1,2,...,7,8,

然后,利用混沌序列x={x1,x2,...},对组合二进制矩阵b,逐层进行如下操作:

s10.令二进制矩阵为空矩阵,且i=1,

s11.从混沌序列x中抽取第n个元素xn,按照如下所示公式分别计算得到移位方向f_direction和移位个数f_number,

s12.取组合二进制矩阵b的第i层,得到二进制序列接着判断移位方向f_direction的数值,

如果f_direction=0,则将二进制序列循环左移,移位f_number个二进制,得到移位后的二进制序列

如果f_direction=1,则将二进制序列循环右移,移位f_number个二进制,得到移位后的二进制序列

随后,将二进制序列从左往右按序存入二进制矩阵的第i行,

s13.比较i与的大小,

若i<8,则对二进制序列进行分组,将二进制序列中元素从左到右依次正向以32个元素为单位进行分组,得到分组后的二进制序列,表示为bf{1},bf{2},...,其中表示对取整且取整后的值不小于再对抽取位置n按照如下所示公式进行调整,且令i=i 1,随后转向步骤s11,

若i=8,则停止操作,从而得到二进制矩阵表示如下,

最后,利用bin2dec(·)函数,依次将二进制矩阵的每列元素转换成数值型数据其中表示为从而得到数值序列

(4)二维码的生成

首先,确定灰度图片的大小,令行数为h,列数为l,其中列数行数h满足如下,

其中,表示对某数取整且取整后的值不小于该数,

然后,依次按如下步骤进行:

步骤①.判断数值序列的长度是否小于数值h×l,

如果是,则在数值序列的尾端增补上个元素,数值大小为0且最后一个元素大小为得到增补后的数值序列

如果不是,则令增补后的数值序列等于数值序列

步骤②.从表征灰度图片的矩阵m的左上角位置开始,按行且每行从左往右,依次将增补后的数值序列中元素填放入矩阵m中,表示如下,

步骤③.将矩阵m中各元素分别用小矩阵块代替,小矩阵块的矩阵大小为30×30、元素数值均与m中该元素数值一致,表示如下,

将矩阵mc转换为灰度图片,从而生成灰度图片c,其中灰度图片c的大小为30h×30l,

最后,将生成的灰度图片c与商品标识码a上下连接的组合方式,即将商品标识码a放在生成的灰度图片c正下方,并利用二维码生成器将组合的商品标识码和灰度图片转换为二维码,从而得到商品防伪二维码。

下面结合具体的实施例对本发明作进一步说明:

实施例1

按照上述一种基于分层加密的商品防伪二维码生成方法,步骤如下:

(1)首先,将表征某件商品唯一身份信息的商品标识码a=“江苏省##集团××公司☆****商品生产日期2021-01-01生产线ⅱ01生产序号123456”,逐个字符转换为数值型数据,得到数值序列p={189,173,203,213,202,161,163,163,163,163,188,175,205,197,161,193,161,193,185,171,203,190,161,238,42,42,42,42,201,204,198,183,32,201,250,178,250,200,213,198,218,50,48,50,49,45,48,49,45,48,49,32,201,250,178,250,207,223,162,242,163,176,163,177,32,201,250,178,250,208,242,186,197,163,177,163,178,163,179,163,180,163,181,163,182},其中商品标识码a为gbk编码的字符,商品标识码a的长度表示为数值序列p的长度为

然后,依次将数值序列p中元素pi逐个转换成8bits的二进制序列,并从左往右逐列填入矩阵b中,从而得到组合二进制矩阵b,

(2)混沌序列的产生

首先,利用数值序列p及其转换的组合二进制矩阵b,以及外部密钥α=0.12345和β=0.54321,按照如下所示公式分别计算得到bernoulli混沌映射的初值x1和参数λ以及初次抽取位置n,

x1=0.01 mod(0.12345-0.321196970964773,0.99)=0.802253029035227,

λ=0.1 mod(0.54321 0.321196970964773,0.9)=0.964406970964773,

然后,由混沌映射的初值x1和参数λ,对如下公式所示的bernoulli混沌映射进行迭代,式中k表示迭代次数(k=1,2,...)、xk 1表示第k次迭代得到的混沌信号,得到混沌序列x={x1,x2,...},

(3)组合二进制矩阵b的分层移位加密

首先,将组合二进制矩阵b中元素分为8层,其中组合二进制矩阵b的第k层表示为k=1,2,...,7,8,

然后,利用混沌序列x={x1,x2,...},对组合二进制矩阵b,逐层进行如下操作:

s10.令二进制矩阵为空矩阵,且i=1,

s11.从混沌序列x中抽取第n个元素xn,按照如下所示公式分别计算得到移位方向f_direction和移位个数f_number,

s12.取组合二进制矩阵b的第i层,得到二进制序列接着判断移位方向f_direction的数值,

如果f_direction=0,则将二进制序列循环左移,移位f_number个二进制,得到移位后的二进制序列

如果f_direction=1,则将二进制序列循环右移,移位f_number个二进制,得到移位后的二进制序列

随后,将二进制序列从左往右按序存入二进制矩阵的第i行,

s13.比较i与的大小,

若i<8,则对二进制序列进行分组,将二进制序列中元素从左到右依次正向以32个元素为单位进行分组,得到分组后的二进制序列,表示为bf{1},bf{2},...,其中再对抽取位置n按照如下所示公式进行调整,且令i=i 1,随后转向步骤s11,

若i=8,则停止操作,从而得到二进制矩阵表示如下,

最后,依次将二进制矩阵的每列元素转换成数值型数据从而得到数值序列

(4)二维码的生成

首先,确定灰度图片的大小,得到行数为h=9,列数为l=10

然后,依次按如下步骤进行:

步骤①.在数值序列的尾端增补上5个元素,数值大小为0且最后一个元素大小为85,得到增补后的数值序列

步骤②.从表征灰度图片的矩阵m的左上角位置开始,按行且每行从左往右,依次将增补后的数值序列中元素填放入矩阵m中,表示如下,

步骤③.将矩阵m中各元素分别用小矩阵块代替,小矩阵块的矩阵大小为30×30、元素数值均与m中该元素数值一致,表示如下,

随后将矩阵mc转换为灰度图片,从而生成灰度图片c,如图2所示,其中灰度图片c的大小为270×300,

最后,将生成的灰度图片c与商品标识码a上下连接的组合方式,即将商品标识码a放在生成的灰度图片c正下方,并利用二维码生成器将组合的商品标识码和灰度图片转换为二维码,从而得到商品防伪二维码,如图3所示。

实施例2

按照上述一种基于分层加密的商品防伪二维码生成方法,某件商品的商品标识码字符串a及其商品防伪二维码生成步骤与具体实施例1相似,仅某个外部密钥发生细微变化:α=0.12345000000001;或β=0.54321000000001,商品防伪二维码的生成结果如表1所示。由下表可见:一旦外部密钥即使发生细微变化,生成的商品防伪二维码会发生极大的变化,由此可见本专利所提一种基于分层加密的商品防伪二维码生成方法具有密钥敏感性。

表1外部密钥发生微变时,商品防伪二维码的生成结果

实施例3

按照上述一种基于分层加密的商品防伪二维码生成方法,外部密钥及其商品防伪二维码生成步骤与具体实施例1相似,仅某件商品的商品标识码字符串a发生细微变化“冮苏省##集团××公司☆****商品生产日期2021-01-01生产线ⅱ01生产序号123456”;或者“江苏省##集团××公司☆****商品生产日期2021-11-01生产线ⅱ01生产序号123456”;或者“江苏省##集团××公司☆****商品生产日期2021-01-01生产线ⅱ02生产序号123465”,商品防伪二维码的生成结果如表2所示。由下表可见:一旦表征某件商品唯一身份信息的商品标识码字符串即使发生细微变化,生成的商品防伪二维码会发生极大的变化,由此可见本专利所提一种基于分层加密的商品防伪二维码生成方法对商品身份信息(即商品标识码)具有敏感性。

表2商品标识码发生微变时,商品防伪二维码的生成结果

由上述具体实施例2和例3分析可知,本专利所提一种基于分层加密的商品防伪二维码生成方法所生成商品防伪二维码不仅与外部密钥密切相关,而且依赖于表征某件商品唯一身份信息的商品标识码,因此本专利所提的一种基于分层加密的商品防伪二维码生成方法具有很强的安全性,可以较好地抵抗已知/选择明文攻击,不易破解,以保证生成的商品防伪二维码具有“唯一性和不可伪造性”。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

转载请注明原文地址:https://doc.8miu.com/read-250078.html

最新回复(0)