1.一种汉字转图片的加密方法,其特征在于,包括如下几个步骤:(1)转码:将某段汉字逐个汉字转换成数值型数据[P1i,P2i],得到高位数值序列P1={P11,P12,…,P1i,…,P1L}和低位数值序列P2={P21,P22,…,P2i,…,P2L},其中数值序列P1、P2的长度与该段汉字的长度一致,记为L,其中某段汉字来自于GB2312字符集中双字节编码的
6763个汉字;
(2)产生混沌序列:
首先利用外部加密密钥(α,β),按照如下(1)‑(5)公式分别计算得到混沌系统的初值x1、参数μ、初始迭代步数m、第一抽取间隔n1和第二抽取间隔n2,令
则可得,
x1=mod(KK+α,0.99998)+0.00002, (1)μ=β+mod(KK,4‑β), (2)其中,α∈(0,1),β∈[3.75,4),然后由初值(x1)、参数(μ),对如下公式(6)所示的Logistic混沌系统进行迭代,k表示迭代次数(k=1,2,…),xk+1表示第k次迭代得到的混沌信号,xk+1=μ·xk·(1‑xk) (6)得到混沌序列X,从第m个元素开始每隔n1个元素取1个,从而形成长度为L的混沌序列Y1,并从第m个元素开始每隔n2个元素取1个,从而形成长度为L的混沌序列Y2;
(3)高位、低位数值序列置乱:
将混沌序列Y1按降序排序,根据序列Y1排序前、后的位置变化置乱规则,对高位数值序列P1={P11,P12,…,P1i,…,P1L}进行置乱,得到置乱后的高位数值序列同时将混沌序列Y2按升序排序,根据序列Y2排序前、后的位置变化置乱规则,对低位数值序列P2={P21,P22,…,P2i,…,P2L}进行置乱,得到置乱后的低位数值序列
(4)彩色图片的生成:
首先,将置乱后的高位数值序列 中各元素逐个利用dec2bin(·,8)函数转换成8位二进制,得到高位二进制序列Q1,表示为Q1={Q11,Q12,Q13,...,Q18×L},同时将置乱后的低位数值序列 中各元素逐个利用dec2bin(·,8)函数转换成8位二进制,得到低位二进制序列Q2,表示为Q2={Q21,Q22,Q23,...,Q28×L},并按照自定义的两个二进制序列变换成一个数值序列的转换规则,得到数值序列Q3,表示为Q3={Q31,...,Q3j,...,Q32×L},其中,所述的按照自定义的两个二进制序列变换成一个数值序列的转换规则,是指依次从二进制序列Q1中取4个元素、从二进制序列Q2中取4个元素,组合成一个8位二进制序列,并利用bin2dec(·)函数将其转换成一个数值型数据,表示为Q3j=bin2dec({Q14j‑3,Q14j‑2,Q14j‑1,Q14j,Q24j‑3,Q24j‑2,Q24j‑1,Q24j}),其中j=1,2,...,2×L‑1,2×L,然后,确定彩色图片三基色R、G、B矩阵的大小,令R、G、B矩阵大小相等,且行数均为同时按照如下公式(7)计算R、G、B矩阵的列数W,接着,生成一个长度为3×W×H‑2×L、各元素大小均为128的数值序列Q4={Q41,Q42,Q43,...,Q43×W×H‑2×L}={128,...,128,...,128},并将数值序列Q3和数值序列Q4进行组合,得到数值序列PP={PP1,PP2,PP3,...,PP3×W×H}={Q31,Q32,...,Q32×L,Q41,Q42,...,Q43×W×H‑2×L},
最后,按照自定义的R、G、B矩阵数据填放规则,将数值序列PP中元素分别填放入R、G、B矩阵中,从而生成彩色图片,并利用二维码生成器将彩色图片转换为二维码。
2.根据权利要求1所述的一种汉字转图片的加密方法,其特征在于:步骤(1)中所述的将某段汉字逐个汉字转换成数值型数据[P1i,P2i],是指采用unicode2native(·)函数,将单个汉字转换为区位码数值数据,表示为[P1i,P2i]=[区数值序列,位数值序列]。
3.根据权利要求1所述的一种汉字转图片的加密方法,其特征在于步骤(4)中所述的按照自定义的R、G、B矩阵数据填放规则,将数值序列PP中元素分别填放入R、G、B矩阵中,是指:R、G、B矩阵数据填放的初始位置参数和方向参数分别由如下所示公式(8)计算,其中R_position、G_position和B_position分别表示R、G、B矩阵数据填放的初始位置参数,R_direction、G_direction和B_direction分别表示R、G、B矩阵数据填放的方向参数,当R_position=0、R_direction=0时,R矩阵从最左上角位置开始从左往右逐行填放数据,当R_position=0、R_direction=1时,R矩阵从最左上角位置开始从上往下逐列填放数据,当R_position=1、R_direction=0时,R矩阵从最右上角位置开始从右往左逐行填放数据,当R_position=1、R_direction=1时,R矩阵从最右上角位置开始从上往下逐列填放数据,当R_position=2、R_direction=0时,R矩阵从最左下角位置开始从左往右逐行填放数据,当R_position=2、R_direction=1时,R矩阵从最左下角位置开始从下往上逐列填放数据,当R_position=3、R_direction=0时,R矩阵从最右下角位置开始从右往左逐行填放数据,当R_position=3、R_direction=1时,R矩阵从最右下角位置开始从下往上逐列填放数据,其中填放的数据抽取自数值序列PP中相关元素,表示为{PP1,PP4,...,PP3t‑2,...,PP3×W×H‑2},其中t=1,2,3,...,W×H‑1,W×H,当G_position=0、G_direction=0时,G矩阵从最左上角位置开始从左往右逐行填放数据,当G_position=0、G_direction=1时,G矩阵从最左上角位置开始从上往下逐列填放数据,当G_position=1、G_direction=0时,G矩阵从最右上角位置开始从右往左逐行填放数据,当G_position=1、G_direction=1时,G矩阵从最右上角位置开始从上往下逐列填放数据,当G_position=2、G_direction=0时,G矩阵从最左下角位置开始从左往右逐行填放数据,当G_position=2、G_direction=1时,G矩阵从最左下角位置开始从下往上逐列填放数据,当G_position=3、G_direction=0时,G矩阵从最右下角位置开始从右往左逐行填放数据,当G_position=3、G_direction=1时,G矩阵从最右下角位置开始从下往上逐列填放数据,其中填放的数据抽取自数值序列PP中相关元素,表示为{PP2,PP5,...,PP3t‑1,...,PP3×W×H‑1},其中t=1,2,3,...,W×H‑1,W×H,当B_position=0、B_direction=0时,B矩阵从最左上角位置开始从左往右逐行填放数据,当B_position=0、B_direction=1时,B矩阵从最左上角位置开始从上往下逐列填放数据,当B_position=1、B_direction=0时,B矩阵从最右上角位置开始从右往左逐行填放数据,当B_position=1、B_direction=1时,B矩阵从最右上角位置开始从上往下逐列填放数据,当B_position=2、B_direction=0时,B矩阵从最左下角位置开始从左往右逐行填放数据,当B_position=2、B_direction=1时,B矩阵从最左下角位置开始从下往上逐列填放数据,当B_position=3、B_direction=0时,B矩阵从最右下角位置开始从右往左逐行填放数据,当B_position=3、B_direction=1时,B矩阵从最右下角位置开始从下往上逐列填放数据,其中填放的数据抽取自数值序列PP中相关元素,表示为{PP3,PP6,...,PP3t,...,PP3×W×H},其中t=1,2,3,...,W×H‑1,W×H。