[发明专利]一种基于分组加密的垃圾分类二维码生成方法在审
申请号: | 202210596457.8 | 申请日: | 2022-05-30 |
公开(公告)号: | CN114997353A | 公开(公告)日: | 2022-09-02 |
发明(设计)人: | 吴新华;徐明强 | 申请(专利权)人: | 江苏工程职业技术学院 |
主分类号: | G06K19/06 | 分类号: | G06K19/06;G06F21/60 |
代理公司: | 南通物格知识产权代理事务所(普通合伙) 32395 | 代理人: | 胡燕 |
地址: | 226000 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分组 加密 垃圾 分类 二维码 生成 方法 | ||
1.一种基于分组加密的垃圾分类二维码生成方法,其特征在于,包括如下几个步骤:
(1)转码
首先,将某件垃圾袋的身份信息编码生成唯一的字符型垃圾袋身份码,表示为S1S2...Sk Sk+1Sk+2...Sk+L Sk+L+1Sk+L+2...Sk+L+p Sk+L+p+1Sk+L+p+2...Sk+L+p+n Sk+L+p+n+1Sk+L+p+n+2,其中S1S2...Sk为省市区,Sk+1Sk+2...Sk+L为具体居住地址,Sk+L+1Sk+L+2...Sk+L+p为联系人和联系电话,Sk+L+p+1Sk+L+p+2...Sk+L+p+n为制码日期,Sk+L+p+n+1Sk+L+p+n+2为垃圾分类颜色信息,相互之间用英文空格字符隔开,
然后,从垃圾袋身份码中提取出身份显示码S1S2...Sk Sk+L+p+1Sk+L+p+2...Sk+L+p+nSk+L+p+n+1Sk+L+p+n+2和身份隐藏码Sk+1Sk+2…Sk+L Sk+L+1Sk+L+2...Sk+L+p,并将身份显示码逐个字符转换成数值型数据,得到对应的数值序列同时将身份隐藏码逐个字符转换成数值型数据,得到对应的数值序列
最后,将数值序列P2中元素P2i逐个转换成二进制序列PB{i},并将二进制序列PB{i}进行组合,从而得到组合二进制序列其中
其中垃圾袋身份码由GB2312字符集中双字节编码的汉字和ASCLL码值∈[32,126]的可见字符组合而得,垃圾袋身份码长度为k+L+p+n+6,数值序列P1的长度为且数值序列P2的长度为且组合二进制序列B的长度为且
(2)二进制序列B的分组、重组
首先,利用数值序列P1,数值序列P2转换而成的二进制序列B,以及外部密钥α和β,按照如下(1)-(3)公式分别计算得到Logistic混沌映射的初值x1、参数μ和迭代次数n,
令则
x1=α+mod(α-kp,1-α), (1)
μ=β+mod(β+kp,4-β), (2)
其中,表示组合二进制序列B中含二进制位‘1’的个数,表示组合二进制序列B中含二进制位‘0’的个数,外部密钥满足α∈(0,1),β∈(3.57,4),
由混沌映射的初值x1和参数μ,对如下公式(4)所示Logistic混沌映射进行n次迭代,式中k表示迭代次数、xk+1表示第k次迭代得到的混沌信号,k=1,2,...,n
xk+1=μ·xk·(1-xk) (4)
从而得到混沌信号序列X={x1,x2,...,xn,xn+1},
然后,将组合二进制序列中元素,依次进行如下分组、重组操作:
S0:令j=1,y1=xn+1,分组初始位置t=0,分组规则参数
S1:判断参数k_switch的数值,
如果k_switch=0,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制“001”,表示为且t=t+5,
如果k_switch=1,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制“010”,表示为且t=t+5,
如果k_switch=2,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制“01”、第1位后添上二进制位‘0’,表示为且t=t+5,
如果k_switch=3,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制“01”、第2位后添上二进制位‘0’,表示为且t=t+5,
如果k_switch=4,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制“01”、第3位后添上二进制位‘0’,表示为且t=t+5,
如果k_switch=5,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制“01”、第4位后添上二进制位‘0’,表示为且t=t+5,
如果k_switch=6,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制“01”、末尾添上二进制位‘0’,表示为且t=t+5,
如果k_switch=7,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取5个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4,Bt+5},同时将二进制分组序列BF{j}的前面添上二进制位‘0’、第1位后添上二进制位‘1’、末尾添上二进制位‘0’,表示为且t=t+5,
如果k_switch=8,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“0010”,表示为且t=t+4,
如果k_switch=9,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“0011”,表示为且t=t+4,
如果k_switch=10,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“0100”,表示为且t=t+4,
如果k_switch=11,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“0101”,表示为且t=t+4,
如果k_switch=12,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“0110”,表示为且t=t+4,
如果k_switch=13,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“01”、末尾添上二进制“00”,表示为且t=t+4,
如果k_switch=14,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“01”、末尾添上二进制“01”,表示为且t=t+4,
如果k_switch=15,则首先继续判断是否成立,
如果不成立,则将组合二进制序列的末尾补充上个二进制位‘1’,
随后从组合二进制序列B的第t+1个元素开始连续取4个,得到二进制分组序列BF{j}={Bt+1,Bt+2,Bt+3,Bt+4},同时将二进制分组序列BF{j}的前面添上二进制“01”、末尾添上二进制“10”,表示为且t=t+4,
S2:采用bin2dec()函数,将二进制序列转换成数值型数据即并更新混沌信号同时根据公式(4)所示Logistic混沌映射进行单次迭代,得到yj+1,计算且令j=j+1,接着判断t的大小,如果则转入步骤S1,否则转入步骤S3,
S3:记m=j-1,结束组合二进制序列的分组、重组操作,从而得到分组加密后的二进制序列,表示为以及数值序列
(3)转码
采用char(·)函数,将数值序列中元素逐个转换为ASCII码值属于[32,126]的可见字符,得到字符序列C={C1,C2,...,Cm-1,Cm},即为垃圾分类号,其中字符序列C的长度为m,并将垃圾袋身份显示码(S1S2...Sk Sk+L+p+1Sk+L+p+2...Sk+L+p+n Sk+L+p+n+1Sk+L+p+n+2)和垃圾分类号进行组合,生成垃圾分类码,接着生成QR Code,即垃圾分类二维码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏工程职业技术学院,未经江苏工程职业技术学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210596457.8/1.html,转载请声明来源钻瓜专利网。