CN114553393A - 一种基于分层移位的汉字加密方法 - Google Patents

一种基于分层移位的汉字加密方法 Download PDF

Info

Publication number
CN114553393A
CN114553393A CN202210272237.XA CN202210272237A CN114553393A CN 114553393 A CN114553393 A CN 114553393A CN 202210272237 A CN202210272237 A CN 202210272237A CN 114553393 A CN114553393 A CN 114553393A
Authority
CN
China
Prior art keywords
sequence
binary
chinese character
hierarchical
shift
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202210272237.XA
Other languages
English (en)
Inventor
盛苏英
吴新华
陆国平
张小美
刘焰森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong University
Original Assignee
Nantong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nantong University filed Critical Nantong University
Priority to CN202210272237.XA priority Critical patent/CN114553393A/zh
Publication of CN114553393A publication Critical patent/CN114553393A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/001Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于信息加密技术领域,公开了一种基于分层移位的汉字加密方法,包括:将某段待加密汉字进行数值型数据以及12bits二进制转换,得到二进制矩阵B1和B2;分别对二进制矩阵B1和B2按行进行分层,并将二进制分层序列进行错层拼接,得到12个错层拼接后的二进制分层序列;将每个二进制分层序列依次进行循环移位操作,且实时更新混沌系统的初值和迭代次数,利用混沌迭代信号计算循环移位的方向与个数,得到循环移位后的二进制分层序列;最后进行数值型数据转换,以及数值与汉字的转换,从而得到汉字序列C,即为该段待加密汉字的加密密文。本发明的一种基于分层移位的汉字加密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。

Description

一种基于分层移位的汉字加密方法
技术领域
本发明属于信息加密技术领域,特别涉及一种基于分层移位的汉字加密方法。
背景技术
随着社会的发展,信息资源逐渐成为人们生活的重要组成部分,信息安全也随之成为人们研究的热门 课题,同时随着网络通讯技术的发展,对于字符串特别是汉字通讯的安全性、便捷性需求逐渐增加。
在现有技术中,主要对数据进行简单取反、位置交换、异或,以及DES或RAS混合加密,加密性能 有待提高。现有的中文字符加密算法,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者 辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。同时由 于混沌系统和密码学之间存在着一些自然联系,混沌系统作为一种天然的密码系统,被引入到密码学领域。 在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的基于分层移位的汉字加密方法, 显得尤为重要。
发明内容
发明目的:本发明的目的是为了解决现有技术中的不足,提供一种基于分层移位的汉字加密方法,将 某段待加密汉字进行数值型数据、12bits二进制转换,以及二进制矩阵的分层与错层拼接,将错层拼接后 的二进制分层序列依次进行循环移位操作,且实时更新混沌系统的初值和迭代次数,利用混沌迭代信号决 定循环移位的方向与个数,从而得到该段待加密汉字的加密密文。本发明所提一种基于分层移位的汉字加 密方法简单可行,可抵抗已知/选择明文攻击,具有很强的安全性。
技术方案:一种基于分层移位的汉字加密方法,包括如下几个步骤:
(1)转码
首先,将某段待加密汉字A逐字转换为数值型数据[Pi1,Pi2],得到高位数值序列P1={P11,P12,...,P1i,....,P1L}={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P21,P22,...,P2i,....,P2L} ={P12,P22,...,Pi2,....,PL2},
然后,利用dec2bin(·,12),将高位数值序列P1中元素P1i逐个转换成12bits的二进制序列{PB1i1, PB1i2,PB1i3,PB1i4,PB1i5,PB1i6,PB1i7,PB1i8,PB1i9,PB1i10,PB1i11,PB1i12},得到二进制矩阵B1,
Figure BDA0003554028140000021
最后,利用dec2bin(·,12),将低位数值序列P2中元素P2i逐个转换成12bits的二进制序列{PB2i1, PB2i2,PB2i3,PB2i4,PB2i5,PB2i6,PB2i7,PB2i8,PB2i9,PB2i10,PB2i11,PB2i12},得到二进制矩 阵B2,
Figure BDA0003554028140000022
其中,某段待加密汉字包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字, 某段待加密汉字的长度表示为L,数值序列P1和P2的长度均为L,二进制矩阵B1和B2的大小为12×L;
(2)错层拼接
首先,对二进制矩阵B1按行进行分层,得到相应12个二进制分层序列,表示为
Figure BDA0003554028140000023
同样对二进制矩阵B2按行进行分层,得到相应12个二 进制分层序列,表示为
Figure BDA0003554028140000024
其中j=1,2,...,11,12,
然后,依次将二进制矩阵B1的第j个二进制分层序列
Figure BDA0003554028140000025
与二进制矩阵B2的第13-j个二进制分 层序列
Figure BDA0003554028140000026
顺序拼接,即
Figure BDA0003554028140000027
Figure BDA0003554028140000028
其中j=1,2,...,11,12,从而得到12个错层拼接后的二进制分层序列
Figure BDA0003554028140000029
Figure BDA00035540281400000210
Figure BDA00035540281400000211
(3)分层循环移位
将每一个二进制分层序列
Figure BDA00035540281400000212
依次进行如下循环移位操作:
S0:令j=1,利用外部加密密钥α和β,按照如下公式(1)-(3)分别计算得到混沌系统的初值x1、 参数μ和迭代次数n,
Figure BDA0003554028140000031
x1=mod(kp+α,0.999)+0.001, (1)
μ=β+mod(kp,4-β), (2)
Figure BDA0003554028140000032
其中,
Figure BDA0003554028140000033
表示错层拼接后的二进制分层序列
Figure BDA0003554028140000034
中含二进制‘1’的个数,函数
Figure BDA0003554028140000035
表示为不大于(kp+x1-μ)×1015的最大整数,外部密钥满足α∈(0,1), β∈(3.57,4),
S1:首先由混沌系统的初值x1和参数μ,对如下公式(4)所示Logistic混沌映射进行n次迭代,式中 k表示迭代次数、xk+1表示第k次迭代得到的混沌信号,k=1,2,...,n
xk+1=μ×xk×(1-xk) (4)
得到混沌信号序列X={x1,x2,...,xn+1},
接着计算循环移位方向参数
Figure BDA0003554028140000036
循环移位个数参数
Figure BDA0003554028140000037
并判断Dirc_shift的数值,
如果Dirc_shift=0,则将二进制分层序列
Figure BDA0003554028140000038
循环右移Num_shift个元素,
如果Dirc_shift=1,则将二进制分层序列
Figure BDA0003554028140000039
循环左移Num_shift个元素,
得到循环移位后的二进制分层序列
Figure BDA00035540281400000310
S2:首先将循环移位后的二进制分层序列
Figure BDA00035540281400000311
中元素从头到尾依次正向以10个元素为单位进行分 组,得到
Figure BDA00035540281400000312
个分组序列并利用bin2dec()函数依次将各分组序列转换为数值型数据,将转换后的数 值型数据之和记为DYj,其中函数
Figure BDA00035540281400000313
表示为不小于2L/10的最小整数,
然后更新混沌系统的初值
Figure BDA0003554028140000041
更新混沌系统的迭代次数
Figure BDA0003554028140000042
且令j=j+1,接着判断j的大小,如果j≤12,则转入步骤 S1,否则转入步骤S3,
S3:结束二进制分层序列的循环移位操作,从而得到循环移位后的二进制分层序列,表示为
Figure RE-GDA0003615276020000043
并将其按行依次填入二进制矩阵BB中,表示如下,
Figure BDA0003554028140000044
然后按列依次将二进制矩阵BB的列序列BB(:,m)转换成数值型数据D1m和D2m,其中m=1,2,3,...L,,从而得到数值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L};
(4)转码
将数值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L},对应元素依次组合并进行数值与 汉字的转换,得到汉字序列C,即为该段待加密汉字的加密密文,其中汉字序列C的长度为2L。
进一步地,一种基于分层移位的汉字加密方法里步骤(1)中所述的将某段待加密汉字A逐字转换为 数值型数据[Pi1,Pi2],是指将某段待加密汉字A中逐个汉字采用unicode2native(·)函数转换为数值型数 据,即[Pi1,Pi2]=unicode2native(Ai),从而得到高位数值序列P1={P11,P12,...,P1i,....,P1L}= {P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P21,P22,...,P2i,....,P2L}={P12,P22,...,Pi2,....,PL2}。
进一步地,一种基于分层移位的汉字加密方法里步骤(3)中所述的按列依次将二进制矩阵BB的列序 列BB(:,m)转换成数值型数据D1m和D2m,是指取列序列BB(:,m)的前6位且在其首端加上二进制 “11”,并采用bin2dec()函数转换成数值型数据后减去数值16,得到数值型数据D1m,即 D1m=bin 2 dec(['11',(BB(1:6,m))T])-16;同时取列序列BB(:,m)的后6位且在其首端加上二进制“11”, 并采用bin2dec()函数转换成数值型数据后减去数值31,得到数值型数据D2m,即D2m=bin 2 dec(['11',(BB(7:12,m))T])-31。
进一步地,一种基于分层移位的汉字加密方法里步骤(4)中所述的将数值序列 D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L},对应元素依次组合并进行数值与汉字的转换,是 指利用native 2 unicode(·)函数将数值序列D1和D2中对应元素依次组合的数据[D1m,D2m]转换为单 个汉字,并添加到字符序列C中,即C=[C,native 2 unicode([D1m,D2m])],其中m=1,2,3,...,2L。
有益效果:本发明利用混沌映射产生混沌信号,对某段待加密汉字进行数值型数据、12bits二进制转 换,以及二进制矩阵的分层与错层拼接所生成的错层拼接后二进制分层序列依次进行循环移位操作,且实 时更新混沌系统的初值和迭代次数,利用混沌信号决定循环移位的方向与个数,从而得到该段待加密汉字 的加密密文。本发明所提一种基于分层移位的汉字加密方法简单可行,可抵抗已知/选择明文攻击,具有很 强的安全性。
附图说明
图1为本发明的一种基于分层移位的汉字加密流程示意图;
具体实施方式
如图1所示的一种基于分层移位的汉字加密方法,包括如下几个步骤:
(1)转码
首先,将某段待加密汉字A逐字转换为数值型数据[Pi1,Pi2],指采用unicode2native(函数,即 [Pi1,Pi2]=unicode2native(Ai),从而得到高位数值序列P1={P11,P12,...,P1i,....,P1L}= {P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P21,P22,...,P2i,....,P2L}={P12,P22,...,Pi2,....,PL2},
然后,利用dec2bin(·,12),将高位数值序列P1中元素P1i逐个转换成12bits的二进制序列{PB1i1, PB1i2,PB1i3,PB1i4,PB1i5,PB1i6,PB1i7,PB1i8,PB1i9,PB1i10,PB1i11,PB1i12},得到二进制矩阵B1,
Figure BDA0003554028140000051
最后,利用dec2bin(·,12),将低位数值序列P2中元素P2i逐个转换成12bits的二进制序列{PB2i1, PB2i2,PB2i3,PB2i4,PB2i5,PB2i6,PB2i7,PB2i8,PB2i9,PB2i10,PB2i11,PB2i12},得到二进制矩 阵B2,
Figure BDA0003554028140000061
其中,某段待加密汉字包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字, 某段待加密汉字的长度表示为L,数值序列P1和P2的长度均为L,二进制矩阵B1和B2的大小为12×L;
(2)错层拼接
首先,对二进制矩阵B1按行进行分层,得到相应12个二进制分层序列,表示为
Figure BDA0003554028140000062
同样对二进制矩阵B2按行进行分层,得到相应12个二 进制分层序列,表示为
Figure BDA0003554028140000063
其中j=1,2,...,11,12,
然后,依次将二进制矩阵B1的第j个二进制分层序列
Figure BDA0003554028140000064
与二进制矩阵B2的第13-j个二进制分 层序列
Figure BDA0003554028140000065
顺序拼接,即
Figure BDA0003554028140000066
Figure BDA0003554028140000067
其中j=1,2,...,11,12,从而得到12个错层拼接后的二进制分层序列
Figure BDA0003554028140000068
Figure BDA0003554028140000069
Figure BDA00035540281400000610
(3)分层循环移位
将每一个二进制分层序列
Figure BDA00035540281400000611
依次进行如下循环移位操作:
S0:令j=1,利用外部加密密钥α和β,按照如下公式分别计算得到混沌系统的初值x1、参数μ和 迭代次数n,
Figure BDA00035540281400000612
x1=mod(kp+α,0.999)+0.001,
μ=β+mod(kp,4-β),
Figure BDA0003554028140000071
其中,
Figure BDA0003554028140000072
表示错层拼接后的二进制分层序列
Figure BDA0003554028140000073
中含二进制‘1’的个数,函数
Figure BDA0003554028140000074
表示为不大于(kp+x1-μ)×1015的最大整数,外部密钥满足α∈(0,1), β∈(3.57,4),
S1:首先由混沌系统的初值x1和参数μ,对如下公式所示的Logistic混沌映射进行n次迭代,式中k表 示迭代次数、xk+1表示第k次迭代得到的混沌信号,k=1,2,...,n
xk+1=μ×xk×(1-xk)
得到混沌信号序列X={x1,x2,...,xn+1},
接着计算循环移位方向参数
Figure BDA0003554028140000075
循环移位个数参数
Figure BDA0003554028140000076
并判断Dirc_shift的数值,
如果Dirc_shift=0,则将二进制分层序列
Figure BDA0003554028140000077
循环右移Num_shift个元素,
如果Dirc_shift=1,则将二进制分层序列
Figure BDA0003554028140000078
循环左移Num_shift个元素,
得到循环移位后的二进制分层序列
Figure BDA0003554028140000079
S2:首先将循环移位后的二进制分层序列
Figure BDA00035540281400000710
中元素从头到尾依次正向以10个元素为单位进行分 组,得到
Figure BDA00035540281400000711
个分组序列并利用bin2dec()函数依次将各分组序列转换为数值型数据,将转换后的数 值型数据之和记为DYj,其中函数
Figure BDA00035540281400000712
表示为不小于2L/10的最小整数,
然后更新混沌系统的初值
Figure BDA00035540281400000713
更新混沌系统的迭代次数
Figure BDA00035540281400000714
且令j=j+1,接着判断j的大小,如果j≤12,则转入步骤 S1,否则转入步骤S3,
S3:结束二进制分层序列的循环移位操作,从而得到循环移位后的二进制分层序列,表示为
Figure RE-GDA00036152760200000715
并将其按行依次填入二进制矩阵BB中,表示如下,
Figure BDA0003554028140000081
然后按列依次将二进制矩阵BB的列序列BB(:,m)转换成数值型数据D1m和D2m,指取列序列 BB(:,m)的前6位且在其首端加上二进制“11”,并采用bin2dec()函数转换成数值型数据后减去数值16, 得到数值型数据D1m,即D1m=bin 2 dec(['11',(BB(1:6,m))T])-16;同时取列序列BB(:,m)的后6位且 在其首端加上二进制“11”,并采用bin2dec()函数转换成数值型数据后减去数值31,得到数值型数据D2m, 即D2m=bin 2 dec(['11',(BB(7:12,m))T])-31,其中m=1,2,3,L,从而得到数值序列 D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L};
(4)转码
将数值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L},利用native2unicode(·)函数 将数值序列D1和D2中对应元素依次组合的数据[D1m,D2m]转换为单个汉字,并添加到字符序列C中, 即C=[C,native 2 unicode([D1m,D2m])],得到汉字序列C,即为该段待加密汉字的加密密文,其中 m=1,2,3,...,2L,汉字序列C的长度为2L。
下面结合具体的实施例对本发明作进一步说明:
实施例1
按照上述一种基于分层移位的汉字加密方法,步骤如下:
(1)转码
首先,将某段待加密汉字A=“数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行 处理,使其成为不可读的一段代码为“密文”,以达到保护数据不被非法人窃取、阅读的目的。”,逐字转 换为数值型数据,得到高位数值序列P1={202,190,188,195,181,187,177,185,179,190,202,182,212,192, 206,195,206,181,206,188,187,202,190,176,196,214,203,183,189,208,180,192,163,202,198,179,206, 178,191,182,181,210,182,180,194,206,161,195,206,161,163,210,180,181,177,187,202,190,178,177,183,183,200,199,200,161,212,182,181,196,181,161}和低位数值序列P2={253,221,211,220,196,249, 190,253,204,205,199,212,173,180,170,247,196,196,196,254,242,253,221,180,179,214,227,168,248, 208,166,237,172,185,228,201,170,187,201,193,196,187,206,250,235,170,176,220,196,177,172,212, 239,189,163,164,253,221,187,187,199,168,203,212,161,162,196,193,196,191,196,163},
然后,将高位数值序列P1逐个元素P1i转换成12bits的二进制序列{PB1i1,PB1i2,PB1i3,PB1i4, PB1i5,PB1i6,PB1i7,PB1i8,PB1i9,PB1i10,PB1i11,PB1i12},得到二进制矩阵B1,
Figure BDA0003554028140000091
最后,将低位数值序列P2逐个元素P2i转换成12bits的二进制序列{PB2i1,PB2i2,PB2i3,PB2i4, PB2i5,PB2i6,PB2i7,PB2i8,PB2i9,PB2i10,PB2i11,PB2i12},得到二进制矩阵B2,
Figure BDA0003554028140000092
Figure BDA0003554028140000101
其中,某段待加密汉字的长度表示为L=72,数值序列P1和P2的长度均为72,二进制矩阵B1和B2 的大小为12×72;
(2)错层拼接
首先,对二进制矩阵B1按行进行分层,得到相应12个二进制分层序列,表示为
Figure BDA0003554028140000102
同样对二进制矩阵B2按行进行分层,得到相应12个二 进制分层序列,表示为
Figure BDA0003554028140000103
其中j=1,2,...,11,12,
然后,依次将二进制矩阵B1的第j个二进制分层序列
Figure BDA0003554028140000104
与二进制矩阵B2的第13-j个二进制分 层序列
Figure BDA0003554028140000105
顺序拼接,从而得到12个错层拼接后的二进制分层序列
Figure BDA0003554028140000106
Figure BDA0003554028140000107
Figure BDA0003554028140000111
Figure BDA0003554028140000112
Figure BDA0003554028140000113
(3)分层循环移位
将每一个二进制分层序列
Figure BDA0003554028140000114
依次进行循环移位操作,得到二进制矩阵BB,
Figure BDA0003554028140000115
Figure BDA0003554028140000121
得到数值序列D1={214,226,231,183,183,214,194,226,182,215,215,199,231,194,182,210,179, 199,179,182,183,211,210,207,239,183,222,187,199,207,203,235,202,219,187,218,190,210,219,234, 187,235,187,179,218,202,201,195,186,227,177,177,225,219,216,187,225,218,225,208,208,179,211, 186,210,186,179,210,177,209,186,218,177,184,184,186,184,176,184,187,184,177,177,187,177,179, 184,177,178,186,177,186,184,187,177,179,176,176,179,178,179,178,177,177,176,179,176,176,176, 176,177,182,180,177,183,178,183,183,182,182,183,178,178,182,178,183,178,178,178,178,182,179, 183,199,178,179,178,194,183,182,178,195,182,182}和D2={211,220,212,219,217,185,187,187,211, 209,211,217,211,219,211,209,181,183,219,215,177,217,209,185,215,179,183,215,211,183,187,215, 213,223,183,209,211,215,177,183,223,217,191,183,209,213,177,187,179,223,211,181,179,215,181, 215,209,181,181,211,213,209,177,213,177,177,209,213,181,193,209,209,197,209,209,181,213,177, 182,162,178,182,198,166,197,197,177,193,209,177,162,177,210,193,177,194,177,209,177,177,193, 162,194,194,209,193,177,210,209,177,178,209,177,162,193,194,161,193,193,193,209,178,210,209, 210,194,209,177,178,186,218,169,193,193,170,210,220,211,202,219,194,211,209,186};
(4)转码
将数值序列D1和D2,对应元素依次组合并进行数值与汉字的转换,得到汉字序列C=“钟廛缭粉焚 止禄饣队籽子琴缬论队已车欠驰蹲繁淤已瞎镒烦薹蛔怯戏嘶胱收圻环谘居易郾攴贿胭豢撤谘收杀没撼氵 庇钡岢圩氐蛔嵫诘岬杏姓逞颖赫冶罕逞艺钡蚜貉谘迸秆秆旱刚氨付虎覆倍逼沪迸撑副绷惭罕雹罕敢涣北 陈氨把潮脖沉并甭甭把沉氨耙把氨辈堆幢雹妨猜贰妨读读费膊惨堆惨仿惭脖膊埠囤畅妨橇勃骋曹掠肥钝 猜糜堆逗”,即为该段待加密汉字的加密密文,其中汉字序列C的长度为2L=144。
实施例2
按照上述一种基于分层移位的汉字加密方法,某段待加密汉字为“数据加密的基本过程就是对原来为 明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,以达到保护数据不被非 法人窃取、阅读的目的。”,一种基于分层移位的汉字加密步骤与具体实施例1相似,仅外部加密密钥发 生细微变化:α=0.123450000001;或β=3.750000000001,汉字加密结果如表1所示。由表1可知, 外部加密密钥的细微变化会引起汉字加密密文发生很大的变化,由此可见本专利所提一种基于分层移位的 汉字加密方法对外部加密密钥具有敏感性。
表1外部加密密钥发生微变时,汉字加密结果
Figure BDA0003554028140000131
Figure BDA0003554028140000141
实施例3
按上述一种基于分层移位的汉字加密方法,其加密步骤与具体实施例1相似,仅某段待加密汉字(“数 据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”, 以达到保护数据不被非法人窃取、阅读的目的。”)发生细微变化:“数居加密的基本过程就是对原来为明文 的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,以达到保护数据不被非法人 窃取、阅读的目的。”;或“数据加密的基本过程就是对源来为明文的文件或数据按某种算法进行处理,使 其成为不可读的一段代码为“密文”,以达到保护数据不被非法人窃取、阅读的目的。”;或“数据加密的基 本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为‘密文’,以 达到保护数据不被非法人窃取、阅读的目的。”;或“数据加密的基本过程就是对原来为明文的文件或数据 按某种算法进行处理,使其成为不可读的一段代码为“密文”,以达到保护数据不被非法人窃听、阅读的 目的。”;或“数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读 的一段代码为“密文”,以达到保护数据不被非法人窃取、阅读的目的!”,汉字加密结果如表2所示。由表2可见:待加密汉字平文信息的细微变化会引起加密密文的“面目全非”,由此可见本专利所提一种基 于分层移位的汉字加密方法对待加密汉字的平文信息具有敏感性。
表2待加密汉字发生微变时,汉字加密结果
Figure BDA0003554028140000151
Figure BDA0003554028140000161
Figure BDA0003554028140000171
由上述具体实施例2、3分析可知,本专利所提一种基于分层移位的汉字加密方法所生成的汉字加密 密文不仅与外部加密密钥密切相关,而且依赖于待加密汉字平文信息,因此本专利所提一种基于分层移位 的汉字加密方法可抵抗已知/选择明文攻击,具有很强的安全性。

Claims (4)

1.一种基于分层移位的汉字加密方法,其特征在于,包括如下几个步骤:
(1)转码
首先,将某段待加密汉字A逐字转换为数值型数据[Pi1,Pi2],得到高位数值序列P1={P11,P12,...,P1i,....,P1L}={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P21,P22,...,P2i,....,P2L}={P12,P22,...,Pi2,....,PL2},
然后,利用dec2bin(·,12),将高位数值序列P1中元素P1i逐个转换成12bits的二进制序列{PB1i1,PB1i2,PB1i3,PB1i4,PB1i5,PB1i6,PB1i7,PB1i8,PB1i9,PB1i10,PB1i11,PB1i12},得到二进制矩阵B1,
Figure FDA0003554028130000011
最后,利用dec2bin(·,12),将低位数值序列P2中元素P2i逐个转换成12bits的二进制序列{PB2i1,PB2i2,PB2i3,PB2i4,PB2i5,PB2i6,PB2i7,PB2i8,PB2i9,PB2i10,PB2i11,PB2i12},得到二进制矩阵B2,
Figure FDA0003554028130000012
其中,某段待加密汉字包括GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的汉字,某段待加密汉字的长度表示为L,数值序列P1和P2的长度均为L,二进制矩阵B1和B2的大小为12×L;
(2)错层拼接
首先,对二进制矩阵B1按行进行分层,得到相应12个二进制分层序列,表示为
Figure FDA0003554028130000013
同样对二进制矩阵B2按行进行分层,得到相应12个二进制分层序列,表示为
Figure FDA0003554028130000021
其中j=1,2,...,11,12,
然后,依次将二进制矩阵B1的第j个二进制分层序列
Figure FDA0003554028130000022
与二进制矩阵B2的第13-j个二进制分层序列
Figure FDA0003554028130000023
顺序拼接,即
Figure FDA0003554028130000024
Figure FDA0003554028130000025
其中j=1,2,...,11,12,从而得到12个错层拼接后的二进制分层序列
Figure FDA0003554028130000026
Figure FDA0003554028130000027
Figure FDA0003554028130000028
(3)分层循环移位
将每一个二进制分层序列
Figure FDA0003554028130000029
依次进行如下循环移位操作:
S0:令j=1,利用外部加密密钥α和β,按照如下公式(1)-(3)分别计算得到混沌系统的初值x1、参数μ和迭代次数n,
Figure FDA00035540281300000210
x1=mod(kp+α,0.999)+0.001, (1)
μ=β+mod(kp,4-β), (2)
Figure FDA00035540281300000211
其中,
Figure FDA00035540281300000212
表示错层拼接后的二进制分层序列
Figure FDA00035540281300000213
中含二进制‘1’的个数,函数
Figure FDA00035540281300000214
表示为不大于(kp+x1-μ)×1015的最大整数,外部密钥满足α∈(0,1),β∈(3.57,4),
S1:首先由混沌系统的初值x1和参数μ,对如下公式(4)所示Logistic混沌映射进行n次迭代,式中k表示迭代次数、xk+1表示第k次迭代得到的混沌信号,k=1,2,...,n
xk+1=μ×xk×(1-xk) (4)
得到混沌信号序列X={x1,x2,...,xn+1},
接着计算循环移位方向参数
Figure FDA00035540281300000215
循环移位个数参数
Figure FDA00035540281300000216
并判断Dirc_shift的数值,
如果Dirc_shift=0,则将二进制分层序列
Figure FDA00035540281300000217
循环右移Num_shift个元素,
如果Dirc_shift=1,则将二进制分层序列
Figure FDA0003554028130000031
循环左移Num_shift个元素,
得到循环移位后的二进制分层序列
Figure FDA0003554028130000032
S2:首先将循环移位后的二进制分层序列
Figure FDA0003554028130000033
中元素从头到尾依次正向以10个元素为单位进行分组,得到
Figure FDA0003554028130000034
个分组序列并利用bin2dec()函数依次将各分组序列转换为数值型数据,将转换后的数值型数据之和记为DYj,其中函数
Figure FDA0003554028130000035
表示为不小于2L/10的最小整数,
然后更新混沌系统的初值
Figure FDA0003554028130000036
更新混沌系统的迭代次数
Figure FDA0003554028130000037
且令j=j+1,接着判断j的大小,如果j≤12,则转入步骤S1,否则转入步骤S3,
S3:结束二进制分层序列的循环移位操作,从而得到循环移位后的二进制分层序列,表示为
Figure FDA0003554028130000038
并将其按行依次填入二进制矩阵BB中,表示如下,
Figure FDA0003554028130000039
然后按列依次将二进制矩阵BB的列序列BB(:,m)转换成数值型数据D1m和D2m,其中m=1,2,3,...,2L,从而得到数值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L};
(4)转码
将数值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L},对应元素依次组合并进行数值与汉字的转换,得到汉字序列C,即为该段待加密汉字的加密密文,其中汉字序列C的长度为2L。
2.根据权利要求1所述的一种基于分层移位的汉字加密方法,其特征在于:步骤(1)中所述的将某段待加密汉字A逐字转换为数值型数据[Pi1,Pi2],是指将某段待加密汉字A中逐个汉字采用unicode2native(·)函数转换为数值型数据,即[Pi1,Pi2]=unicode2native(Ai),从而得到高位数值序列P1={P11,P12,...,P1i,....,P1L}={P11,P21,...,Pi1,....,PL1}和低位数值序列P2={P21,P22,...,P2i,....,P2L}={P12,P22,...,Pi2,....,PL2}。
3.根据权利要求1所述的一种基于分层移位的汉字加密方法,其特征在于:步骤(3)中所述的按列依次将二进制矩阵BB的列序列BB(:,m)转换成数值型数据D1m和D2m,是指取列序列BB(:,m)的前6位且在其首端加上二进制“11”,并采用bin2dec()函数转换成数值型数据后减去数值16,得到数值型数据D1m,即D1m=bin2dec(['11',(BB(1:6,m))T])-16;同时取列序列BB(:,m)的后6位且在其首端加上二进制“11”,并采用bin2dec()函数转换成数值型数据后减去数值31,得到数值型数据D2m,即D2m=bin2dec(['11',(BB(7:12,m))T])-31。
4.根据权利要求1所述的一种基于分层移位的汉字加密方法,其特征在于:步骤(4)中所述的将数值序列D1={D11,D12,...,D12L}和D2={D21,D22,...,D22L},对应元素依次组合并进行数值与汉字的转换,是指利用native2unicode(·)函数将数值序列D1和D2中对应元素依次组合的数据[D1m,D2m]转换为单个汉字,并添加到字符序列C中,即C=[C,native2unicode([D1m,D2m])],其中m=1,2,3,...,2L。
CN202210272237.XA 2022-03-18 2022-03-18 一种基于分层移位的汉字加密方法 Withdrawn CN114553393A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210272237.XA CN114553393A (zh) 2022-03-18 2022-03-18 一种基于分层移位的汉字加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210272237.XA CN114553393A (zh) 2022-03-18 2022-03-18 一种基于分层移位的汉字加密方法

Publications (1)

Publication Number Publication Date
CN114553393A true CN114553393A (zh) 2022-05-27

Family

ID=81665018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210272237.XA Withdrawn CN114553393A (zh) 2022-03-18 2022-03-18 一种基于分层移位的汉字加密方法

Country Status (1)

Country Link
CN (1) CN114553393A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117176316A (zh) * 2023-06-13 2023-12-05 江苏工程职业技术学院 一种基于混沌密码的mqtt消息体加密方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117176316A (zh) * 2023-06-13 2023-12-05 江苏工程职业技术学院 一种基于混沌密码的mqtt消息体加密方法

Similar Documents

Publication Publication Date Title
CN108667595B (zh) 一种大数据文件的压缩加密方法
CN112597480B (zh) 一种可扩展的格式保留加密方法的实现方式
CN114553391A (zh) 一种基于分层移位的字符串加密方法
CN111259414A (zh) 一种文件存储为音频实现加密的方法、装置和设备
CN116894273B (zh) 基于异或和求余的文件加密方法、解密方法、设备及介质
CN114553393A (zh) 一种基于分层移位的汉字加密方法
CN115567320A (zh) 基于微服务架构的物联网平台数据管理方法
CN114465709A (zh) 一种基于分层移位的字符串解密方法
US6128386A (en) Multiple number base encoder/decoder using a corresponding exclusive or function
JP2008099243A (ja) 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
CN110650006B (zh) 一种中英文字符串的加密和解密方法
Torvi et al. An unique data security using text steganography
Gaur et al. A new PDAC (parallel encryption with digit arithmetic of cover text) based text steganography approach for cloud data security
CN114741712A (zh) 一种基于分层置乱的汉字加密方法
CN114707165A (zh) 一种基于分层置乱的字符串加密方法
CN114745096A (zh) 一种基于分层双向扩散的字符串加密方法
CN110278066B (zh) 一种中文字符串的加密、解密方法
KR102401229B1 (ko) 텍스트를 암호화 하는 방법 및 이를 구현하는 장치
CN110287713B (zh) 一种中文字符串的加密方法和解密方法
CN100359494C (zh) 电子文件字符内码变换加密方法
CN111523885A (zh) 区块链钱包的加密多账户构造方法、计算机可读存储介质和区块链加密多账户钱包
Biswas et al. Cipher constrained encoding for constraint optimization in extended nucleic acid memory
CN114553392A (zh) 一种基于分层移位的汉字解密方法
CN117057804B (zh) 基于哈希序列的金融交易数据安全存储方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20220527