DNA数据隐藏技术在QR二维码中的应用方法与流程

文档序号:11775168阅读:606来源:国知局

本发明涉及dna数据隐藏技术在qr二维码中的应用方法,属于图像处理技术领域。



背景技术:

随着信息及网络技术的出现及迅速发展,智能手机在人们的日常生活中越来越普及,二维码作为一种全新的信息存储及传递方式融入到了社会生活当中,qr码应用逐步广泛,在电子票务领域如电子优惠券、电影票以及电子会员卡等方面,都给人们的生活带来了无限的便利。但是,随着二维码广泛的应用,随之而来的安全问题也逐渐引起人们的关注。近几年,用户私人信息被二维码泄密问题及病毒通过二维码传播的消息不胫而走。目前,国内针对qr二维码的加密技术的研究并不多见,而讨论数字加密的只针对一般的图像加密,未能很好的结合qr二维码自身的编码规则,所能负载的加密信息量也是极少。

针对现有典型qr码的加密方法不能保证速度与安全性兼顾,同时会使加密后的图像随着隐藏信息量的增多而降低图像的质量,从而在视觉上造成噪声误差。



技术实现要素:

针对以上存在的信息安全性及实效性缺陷,本发明提出了一种既能保持qr码原有优势与特征,又能保证加密的安全性和实效性的算法变得尤为重要。

本发明采取的技术方案如下:

dna数据隐藏技术在qr二维码中的应用方法,包括如下步骤:

第一步:采用dna编码技术将明文信息进行编码,编码方法如下:

一个dna序列包含四个核苷酸,它们分别是a﹑c﹑g及t,所述a﹑c﹑t及g称之为互补对;正如我们所熟知的二进制一样,0和1就是互补对,那么0(00)和3(11),1(01)和2(10)也是互补对;对于任何核苷酸x,c(x)代表x的互补核苷酸,则x,c(x),c(c(x)),c(c(c(x)))不能相等;互补规则可以定义为:(at),(gc),(ca),(tg),表示c(a)=t,c(g)=c,c(c)=a,c(t)=g,利用上述互补规则将明文信息进行编码;

第二步:然后使用切比雪夫映射将编码后的信息进行加密,编码方法如下:

由xn+1=cos(acos-1xn),-1≤xn≤1,2≤a≤6,公式多次迭代产生迭代序列,式中,xn+1表示xn迭代一次后产生的值,xn表示初始值迭代第n次后产生的值,a表示控制参数,为固定值,取值范围为[2,6],将产生的迭代值xn进行量化处理:

式中,yn表示量化处理后产生的混沌序列,将dna编码后转换成二进制的信息与产生的混沌序列进行异或处理,得到异或后的结果即为加密后的消息;

第三步:信息的嵌入,其方法如下:

将加密后的信息嵌入到矩阵式二维码中,即qr二维码,也就是说,qr二维码只是一个掩饰载体,加密后的信息得依靠掩饰载体而传输;进一步,设加密后的信息为s,具体的嵌入步骤如下:

步骤1.计算s的总容量tc;

式中:tc表示s的总容量,ecc表示qr码中纠错码的数量,其中tc的值由qr码的版本及纠错等级决定;

步骤2.统计qr码中数据模块的个数,将其进行分组,一组为黑色数据模块,另一组为白色模块,其中黑色模块的值为1,白色模块的值为0;

步骤3.设置一个秘钥k,用它来随机选择2个不同颜色的数据模块,设为dx和dy,x和y表示任意两个模块的编号,这里的x和y是不相等的;

步骤4.假设需要将n位秘密数据(s1s2s3……sn)嵌入数据模块中,其中n≤tc,嵌入公式如下:

di=s1,

dj=s2,

dm=sn-1,

dn=sn,

其中i,j,m,n为数据模块的编号,模块的数量由qr码储存信息量决定,储存信息量越大,模块的数量越多;

步骤5.嵌入秘密数据后,根据di,dj,dm的值相应的改变qr码中数据模块的颜色;如果值为1,数据模块的颜色为黑色,反之,数据模块颜色为白色;

步骤6.累加颜色改变的数据模块的个数,如果,没有数据模块颜色改变,则tc的值不变,如果有模块的颜色从白色变为黑色或者从黑色变为白色,则tc=tc-1,数据模块改变的数量即为tc值减少的量;

步骤7.重复步骤3-6,直到tc的值等于0,此时已完成秘密数据的嵌入;

第四步:信息的提取:合法的接收者能够使用秘钥k将秘密信息从载有秘密信息的qr码中提取出来,具体的提取步骤如下:

步骤1.再一次操作信息嵌入步骤1-2;

步骤2.输入一个秘钥k,用它来选择dx和dy,x和y表示任意两个模块的编号,这里的x和y是不相等的;

步骤3.秘密信息提取公式如下:

s1=di,

s2=dj,

sn-1=dm,

sn=dn,

其中i,j,m,n为数据模块的编号,模块的数量由qr码储存信息量决定,储存信息量越大,模块的数量越多;

步骤4.找到di,dj,……dn所对应的数据模块,使用纠错码复原相应的qr码,纠错编码后,如果一个模块由黑色变为白色或者由白色变为黑色,则tc=tc-1。

步骤5.重复操作步骤2-4,直到tc等于0;到此为止,秘密信息的提取已经完成;

第五步:秘密信息解密:信息加密与解密互为逆过程,具体的解密过程如下:

步骤1.使用切比雪夫映射将提取出的信息进行解密;

由xn+1=cos(acos-1xn),-1≤x≤1,2≤a≤6,公式多次迭代产生迭代序列,式中,xn+1表示xn迭代一次后产生的值,xn表示初始值迭代第n次后产生的值,a表示控制参数,为固定值,取值范围为[2,6],将产生的迭代值xn进行量化处理:

式中,yn表示量化处理后产生的混沌序列,将提取出来的秘密信息与产生的混沌序列进行异或处理,得到异或后的结果即为解密后的消息;

步骤2.将解密后的消息进行dna解码,得到最终的秘密消息,解码与编码互为逆过程。

本发明的有益效果:对于一个普通用户而言,使用qr二维码扫描器只能扫描出公开的信息,而授权的用户能从公开信息中提取出秘密信息。此用途可用在商业、军事领域中。

具体实施方式

dna数据隐藏技术在qr二维码中的应用方法,包括如下步骤:

第一步:采用dna编码技术将明文信息进行编码,编码方法如下:一个dna序列包含四个核苷酸,它们分别是a﹑c﹑g及t;所述a﹑c﹑t及g称之为互补对;正如我们所熟知的二进制一样,0和1就是互补对,那么0(00)和3(11),1(01)和2(10)也是互补对;对于任何核苷酸x,c(x)代表x的互补核苷酸,则x,c(x),c(c(x)),c(c(c(x)))不能相等;互补规则可以定义为:(at),(gc),(ca),(tg),表示c(a)=t,c(g)=c,c(c)=a,c(t)=g,利用上述互补规则将明文信息进行编码;

第二步:然后使用切比雪夫映射将编码后的信息进行加密,编码方法如下:

由xn+1=cos(acos-1xn),-1≤xn≤1,2≤a≤6,公式多次迭代产生迭代序列,式中,xn+1表示xn迭代一次后产生的值,xn表示初始值迭代第n次后产生的值,a表示控制参数,为固定值,取值范围为[2,6],将产生的迭代值xn进行量化处理:

式中,yn表示量化处理后产生的混沌序列,将dna编码后转换成二进制的信息与产生的混沌序列进行异或处理,得到异或后的结果即为加密后的消息;

第三步:信息的嵌入,其方法如下:

将加密后的信息嵌入到矩阵式二维码中,即qr二维码,也就是说,qr二维码只是一个掩饰载体,加密后的信息得依靠掩饰载体而传输;进一步,设加密后的信息为s,具体的嵌入步骤如下:

步骤1.计算s的总容量tc;

式中:tc表示s的总容量,ecc表示qr码中纠错码的数量,其中tc的值由qr码的版本及纠错等级决定;

步骤2.统计qr码中数据模块的个数,将其进行分组,一组为黑色数据模块,另一组为白色模块,其中黑色模块的值为1,白色模块的值为0;

步骤3.设置一个秘钥k,用它来随机选择2个不同颜色的数据模块,设为dx和dy,x和y表示任意两个模块的编号,这里的x和y是不相等的;

步骤4.假设需要将n位秘密数据(s1s2s3……sn)嵌入数据模块中,其中n≤tc,嵌入公式如下:

di=s1,

dj=s2,

dm=sn-1,

dn=sn,

其中i,j,m,n为数据模块的编号,模块的数量由qr码储存信息量决定,储存信息量越大,模块的数量越多;

步骤5.嵌入秘密数据后,根据di,dj,dm的值相应的改变qr码中数据模块的颜色;如果值为1,数据模块的颜色为黑色,反之,数据模块颜色为白色;

步骤6.累加颜色改变的数据模块的个数,如果,没有数据模块颜色改变,则tc的值不变,如果有模块的颜色从白色变为黑色或者从黑色变为白色,则tc=tc-1,数据模块改变的数量即为tc值减少的量;

步骤7.重复步骤3-6,直到tc的值等于0,此时已完成秘密数据的嵌入;

第四步:信息的提取:合法的接收者能够使用秘钥k将秘密信息从载有秘密信息的qr码中提取出来,具体的提取步骤如下:

步骤1.再一次操作信息嵌入步骤1-2;

步骤2.输入一个秘钥k,用它来选择dx和dy,x和y表示任意两个模块的编号,这里的x和y是不相等的;

步骤3.秘密信息提取公式如下:

s1=di,

s2=dj,

sn-1=dm,

sn=dn,

其中i,j,m,n为数据模块的编号,模块的数量由qr码储存信息量决定,储存信息量越大,模块的数量越多;

步骤4.找到di,dj,……dn所对应的数据模块,使用纠错复原相应的qr码,纠错后,如果一个模块由黑色变为白色或者由白色变为黑色,则tc=tc-1。

步骤5.重复操作步骤2-4,直到tc等于0;到此为止,秘密信息的提取已经完成;

第五步:秘密信息解密:信息加密与解密互为逆过程,具体的解密过程如下:

步骤1.使用切比雪夫映射将提取出的信息进行解密;

由xn+1=cos(acos-1xn),-1≤x≤1,2≤a≤6,公式多次迭代产生迭代序列,式中,xn+1表示xn迭代一次后产生的值,xn表示初始值迭代第n次后产生的值,a表示控制参数,为固定值,取值范围为[2,6],将产生的迭代值xn进行量化处理:

式中,yn表示量化处理后产生的混沌序列,将提取出来的秘密信息与产生的混沌序列进行异或处理,得到异或后的结果即为解密后的消息;

步骤2.将解密后的消息进行dna解码,得到最终的秘密消息,解码与编码互为逆过程。

具体实施例:

某公司想通过qr码来宣传自己公司,但是又想对一般的普通用户有所保留,这时就可以将不愿对一般用户公开的消息隐藏到qr码中,隐藏的消息对一般用户是不可见的,但是也不会影响一般用户对公开信息的可见度。然而由公司授权的用户不仅可以看到公开信息,而且可以成功获取隐藏信息的具体内容的。

加密过程:

采用dna编码技术将需要嵌入的明文信息进行编码,利用编码规则对明文进行编码,假设需要嵌入的信息为:warship6,dna编码后的结果为:ccgcgatcaacgcgcatgggaataggg,总长度为27。将上述dna编码转成二进制,转换规则为:a=10,c=00,g=11,t=01.

最终得到一串待嵌入信息为:000011001110010010100011001100100111111110100110111111。

利用切比雪夫映射产生混沌序列,固定值a=4.301,初始值x0=0.2001,迭代次数27,迭代次数的选取取决于信息编码后的长度。迭代值进行量化处理后的结果,即为所需的混沌序列,产生的混沌序列为:110111010000111011010000111101101100110000001110111011.

dna编码后转为二进制的信息与产生的混沌序列进行异或处理,异或后的结果即为加密后待嵌入的消息,结果为:110100011110101001110011110001001011001110101000000100。

嵌入过程:

在嵌入数据前,先计算嵌入信息量的多少,而后在根据嵌入的信息量,选择qr码的版本及纠错等级。原则上只要qr码容量大于嵌入信息量即可,实际使用中可根据需要选择相应版本及纠错等级。选好版本及等级之后,输入一个数据模块选择秘钥,这时会随机选择出两个颜色不同的模块,按照嵌入规则将信息嵌入进去,信息嵌入之后,数据模块的值会有相应的变化,此时的秘密数据容量也会有相应减少,重复上述过程,直到秘密数据容量减少至0为止,此时已完成秘密信息嵌入。

提取过程与嵌入过程互逆;解密过程与加密过程互逆。具体实现过程可参照上文所述。

对于本领域的普通技术人员而言,具体实施例只是对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1