当前位置: 首页 > 专利查询>南通大学专利>正文

一种中英文字符串的加密和解密方法技术

技术编号:23027444 阅读:26 留言:0更新日期:2020-01-03 17:47
本发明专利技术公开了一种中英文字符串的加密和解密方法,包括:将某段中英文字符串逐个字符转换得到二进制位序列;然后利用倾斜帐篷混沌映射产生的混沌信号,将二进制位序列以8个元素为单位进行分组后进行正向和逆向移位操作,得到双向移位后的二进制位序列;最后将序列正向以6个元素为单位进行分组,并转换为数值型数据,同时进行数值与字符的转换,得到该段中英文字符串的加密密文,通过类似的方法可将密文解密恢复出原始的中英文字符串。本发明专利技术利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列进行双向移位操作的加密/解密,具有良好的抵抗已知/选择明文攻击、唯密文攻击的性能,保证了中英文字符串加密与解密的安全性和可行性。

Encryption and decryption of Chinese and English strings

【技术实现步骤摘要】
一种中英文字符串的加密和解密方法
本专利技术涉及信息安全
,特别涉及一种中英文字符串的加密和解密方法。
技术介绍
随着现代通信技术的飞速发展,计算机网络已成为众多领域进行信息交换的手段。由于计算机网络是一个开放式网络,信息交换时往往面临信息被窃取、篡改和伪造等安全问题,此时信息加密技术的研究与应用势在必行。目前大多数主流信息加密解密技术都只能应用于如字母、数字、英文标点符号等单字节字符构成的信息,而可用于汉字、中文标点符号等双字节字符所构成的信息加密算法却很少。现有的中文字符加密算法,主要包括根据汉字区位码,进行的简单取反、区位码位置交换、异或,以及DES或RAS混合加密,所得的大多数密文可读性及可复制性太差,出现太多不易书写或者辨认的密文字符,也没有综合中文、英文字符的特点,提出一套简单方便、安全可靠的加密算法。在此情况下,结合混沌信号的密码特性,提出一套具有良好抗攻击性能的中英文字符串的加密和解密方法,显得尤为重要。
技术实现思路
本专利技术的目的在于提供一种中英文字符串的加密和解密方法,利用混沌信号的密码特性,对中英文字符串转换而成的二进制位序列进行分组,并对分组后的二进制位序列进行双向移位操作,进而再进行分组并转换为数值型数据,以及数值与字符的转换以生成密文,从而保证了中英文字符串加密与解密的安全性和可行性。本专利技术提供了一种中英文字符串的加密方法,包括如下几个步骤:(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,Pm},再将数值序列P逐个元素转换成8bits的二进制数据,得到二进制位序列B={B1,B2,...,Bi,....,B8×m},其中该段中英文字符串的长度为L,数值序列P的长度为m,二进制位序列B的长度为8×m,且L≤m≤2×L;(2)混沌序列产生:首先利用外部加密密钥(α、β),按照如下公式(1)计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔M,其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,然后利用初值x1和参数μ,对如下公式(2)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数(k=1,2,...),xk+1表示第k次迭代得到的混沌信号,得到混沌序列X={x1,x2,...},从中每隔M个元素取1个,从而形成长度为8×m的混沌序列Y={Y1,Y2,...,Y8×m},(3)二进制位序列B的正向移位:首先将二进制位序列B中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为BF{1},BF{2},...,BF{i},...BF{m},然后令dircshift1=0、numshift1=0,将每一个二进制位分组序列BF{i},其中i=1,2,3,...,m,依次进行如下操作,①利用混沌信号Yi,按照如下公式(3)计算分别得到移位方向direction_shift1、移位个数k_shift1,其中,其中,dircshift1和numshift1与移位后的密文有关,②当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},③利用正向移位后的二进制位分组序列BF1{i},对dircshift1和numshift1按照如下公式(4)进行计算,最后将二进制位分组序列BF1{i}进行组合,得到正向移位后的二进制位序列(4)二进制位序列的逆向移位:首先将二进制位序列中元素从尾到头依次逆向以8个元素为单位进行分组,得到逆向分组后的二进制位序列,表示为BF2{1},BF2{2},...,BF2{i},...BF2{m},然后令dircshift2=0、numshift2=0,将每一个二进制位分组序列BF2{i},其中i=1,2,3,...,m,依次进行如下操作,①利用混沌信号Yi,按照如下公式(5)计算分别得到移位方向direction_shift2、移位个数k_shift2,其中,dircshift2和numshift2与移位后的密文有关,②当direction_shift2=0时,将二进制位分组序列BF2{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},当direction_shift2=1时,将二进制位分组序列BF2{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},③利用逆向移位后的二进制位分组序列BF3{i},对dircshift2和numshift2按照如下公式(6)进行计算,最后将二进制位分组序列BF3{i}进行组合,得到双向移位后的二进制位序列(5)转码:首先将二进制位序列中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,即进行bin2dec(·)操作,得到数值序列再将数值序列DBF进行数值与字符的转换,得到字符序列C,即为该段中英文字符串的加密密文,其中数值序列DBF的长度为字符序列C的长度为且进一步地,步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],从而得到数值序列P={P1,P2,...,Pi,....,Pm};将数值序列P逐个元素转换成8bits的二进制数据,是指采用dec2bin(·,8)函数,用二进制数据[B8l-7,B8l-6,B8l-5,B8l-4,B8l-3,B8l-2,B8l-1,B8l]表示,l=1,2,...,m,,从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m}。进一步地,步骤(5)中所述的将数值序列DBF进行数值与字符的转换,其转换关系表述如下:首先设定一个空字符序列C,将数值序列中两个元素为一组[DBF2t-1,DBF2t],其中,依次利用native2unicode(·)函数将数值型数据[DBF2t-1+180,DBF2t+170]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([DBF2t-1+1本文档来自技高网...

【技术保护点】
1.一种中英文字符串的加密方法,其特征在于,包括如下几个步骤:/n(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P

【技术特征摘要】
1.一种中英文字符串的加密方法,其特征在于,包括如下几个步骤:
(1)转码:将某段中英文字符串逐个字符转换为数值型数据,得到数值序列P={P1,P2,...,Pi,....,Pm},再将数值序列P逐个元素转换成8bits的二进制数据,得到二进制位序列B={B1,B2,...,Bi,....,B8×m},其中该段中英文字符串的长度为L,数值序列P的长度为m,二进制位序列B的长度为8×m,且L≤m≤2×L;
(2)混沌序列产生:
首先利用外部加密密钥(α、β),按照如下公式(1)计算分别得到倾斜帐篷混沌映射的初值x1、参数μ和取样间隔M,



其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,
然后利用初值x1和参数μ,对如下公式(2)所示的倾斜帐篷混沌映射进行迭代,k表示迭代次数,k=1,2,...,xk+1表示第k次迭代得到的混沌信号,



得到混沌序列X={x1,x2,...},从中每隔M个元素取1个,从而形成长度为8×m的混沌序列Y={Y1,Y2,...,Y8×m};
(3)二进制位序列B的正向移位:
首先将二进制位序列B中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为BF{1},BF{2},...,BF{i},...BF{m},
然后令dircshift1=0、numshift1=0,将每一个二进制位分组序列BF{i},其中i=1,2,3,...,m,依次进行如下操作:
①利用混沌信号Yi,按照如下公式(3)计算分别得到移位方向direction_shift1、移位个数k_shift1,



其中,
②当direction_shift1=0时,将二进制位分组序列BF{i}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
当direction_shift1=1时,将二进制位分组序列BF{i}中元素循环右移k_shift1位,得到正向移位后的二进制位分组序列BF1{i},
③利用正向移位后的二进制位分组序列BF1{i},对dircshift1和numshift1按照如下公式(4)进行计算,



最后将二进制位分组序列BF1{i}进行组合,得到正向移位后的二进制位序列
(4)二进制位序列的逆向移位:
首先将二进制位序列中元素从尾到头依次逆向以8个元素为单位进行分组,得到逆向分组后的二进制位序列,表示为BF2{1},BF2{2},...,BF2{i},...BF2{m},
然后令dircshift2=0、numshift2=0,将每一个二进制位分组序列BF2{i},其中i=1,2,3,...,m,依次进行如下操作,
①利用混沌信号Yi,按照如下公式(5)计算分别得到移位方向direction_shift2、移位个数k_shift2,



其中,
②当direction_shift2=0时,将二进制位分组序列BF2{i}中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
当direction_shift2=1时,将二进制位分组序列BF2{i}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列BF3{i},
③利用逆向移位后的二进制位分组序列BF3{i},对dircshift2和numshift2按照如下公式(6)进行计算,



最后将二进制位分组序列BF3{i}进行组合,得到双向移位后的二进制位序列
(5)转码:首先将二进制位序列中元素从头到尾依次正向以6个元素为单位进行分组,如剩多余元素则末尾补二进制‘0’直至补满6个一组为止;然后将分组后的二进制位序列,分别转换为数值型数据,即进行bin2dec(·)操作,得到数值序列再将数值序列DBF进行数值与字符的转换,得到字符序列C,即为该段中英文字符串的加密密文,其中数值序列DBF的长度为字符序列C的长度为且


2.根据权利要求1所述的一种中英文字符串的加密方法,其特征在于:步骤(1)中所述的将某段中英文字符串逐个字符转换为数值型数据,其中某段中英文字符串包括,GB2312字符集中的中文标点符号、GB2312字符集中双字节编码的6763个汉字,以及可显示ASCII码字符;逐个字符转换为数值型数据,是指采用unicode2native(·)函数,将单个中文字符转换为区位码数值数据,表示为[区数值数据,位数值数据],或将可显示ASCII码字符转换为ASCII码数值数据,表示为[ASCII码数值数据],从而得到数值序列P={P1,P2,...,Pi,....,Pm};将数值序列P逐个元素转换成8bits的二进制数据,是指采用dec2bin(·,8)函数,用二进制数据[B8l-7,B8l-6,B8l-5,B8l-4,B8l-3,B8l-2,B8l-1,B8l]表示,l=1,2,...,m,从而得到二进制位序列B={B1,B2,...,Bi,....,B8×m}。


3.根据权利要求1所述的一种中英文字符串的加密方法,其特征在于:步骤(5)中所述的将数值序列DBF进行数值与字符的转换,其转换关系表述如下:
首先设定一个空字符序列C,将数值序列中两个元素为一组[DBF2t-1,DBF2t],其中依次利用native2unicode(·)函数将数值型数据[DBF2t-1+180,DBF2t+170]转换为单个中文字符,并添加到字符序列C中,即C=[C,native2unicode([DBF2t-1+180,DBF2t+170])];
然后判定是否为奇数,如果为奇数,则利用char(·)函数将数值型数据转换为单个英文字符,并添加到字符序列C中,即


4.一种中英文字符串的解密方法,其特征在于,包括如下几个步骤:
(1)转码:首先将某段待解密的中英文字符串密文逐个字符转换成数值型数据,得到数值序列然后将数值序列R逐个元素转换成6bits的二进制数据,得到二进制位序列再将二进制位序列RB中元素从头到尾依次正向以8个元素为单位进行分组,得到分组后的二进制位序列,表示为RBF{1},RBF{2},...,...

【专利技术属性】
技术研发人员:盛苏英张小美吴新华陆国平张振娟朱建红周磊任洁
申请(专利权)人:南通大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1