一种基于s盒和混沌映射的测试数据加密方法

文档序号:7743026阅读:166来源:国知局

专利名称::一种基于s盒和混沌映射的测试数据加密方法
技术领域
:本发明涉及一种基于s盒和混沌映射的测试数据加密方法,属于信息安全领域中的密码技术,是一种利用电子计算机技术、s盒、混沌映射实现的加密方法。
背景技术
:现代科技日新月异,极大地推动了Internet的繁荣。随着国际互联网的迅猛发展,网络安全问题日益严峻,信息安全状况不容乐观。近些年,各种新型病毒层出不穷,网络攻击事件频发,让人防不胜防,对全世界的网络用户造成了巨大的损失。因此,信息安全问题正逐渐成为备受关注的焦点。密码术被认为是信息安全技术中最经济也最重要的数据保护手段。混沌学是一门新兴的学科,将混沌学这一新兴学科与密码学有机地结合起来便催生出了崭新的混沌密码学。混沌密码学正得到广泛的重视,已成为近年来研究的热点。远程测试技术能实现多系统和多专家协同测试与诊断,并能够解决测试任务与故障检测的一体化实现问题。在故障预测、提高测试效率、降低测试成本、提高测试过程自动化程度与测试设备利用率、测试资源与结果共享、减轻测试人员劳动强度等方面起到重要作用。为了实现上述目的,必须首先解决测试数据与故障信息的远程获取和网络共享。基于Internet和Intranet的远程测试系统已实现跨地域的数据共享,推动着测试系统向网络化和分布式的方向发展,但是它所面临的安全问题也远比传统测试系统要复杂的多。保障远程测试系统中各种数据的安全、完整是建立远程测试系统所必须考虑的关键问题。一个好的通信安全保障机制是衡量一个远程测试系统是否优秀的重要指标。远程测试系统应该以现场的测控信息和远程的操作信息和各种测试数据在网络上传输时受到的机密性、完整性和真实性的保护为目的,以网络安全和应用安全为主,建立一种易于部署、便于使用的新型安全传输机制。该机制中,加密方法又是核心内容。
发明内容要解决的技术问题为了避免现有技术的不足之处,本发明提出一种基于S盒和混沌映射的测试数据加密方法。本发明的思想在于首先使用S盒对目标数据做预处理,本方法所用S盒的公式如下S(x)=(x),f2(x),...,f迈(x)):Fn2_>Fm2然后采用Chebyshev和Hybrid映射协同产生的混沌序列(由混沌系统所产生的具有伪随机性同时又是确定的可预测的序列)做加密处理。本方法使用两个混沌映射Chebyshev映射(K>2):<formula>formulaseeoriginaldocumentpage4</formula>密钥(用于密码变换的只有发送者和接受者拥有的秘密消息)为128位,由用户输入四个无符号整形数字key0key3确定。技术方案—种基于S盒和混沌映射的测试数据加密方法,其特征在于步骤如下步骤1:产生三个密钥初始值cheKeyl、cheKey2、cheKey3:(1)产生初值cheKeyl:设定中间变量xO=(key0/0xffffffff+keyl/0xffffffff)/2xl=(key2/0xffffffff+key3/0xffffffff)/2其中keyOkey3由用户设定;然后以x0、xl为初值,参数k=4.000,用chebyshev映射分别迭代100次生成x01、xll,再由x01,xll生成x:x=(x01+xl1)/2再以x为初值,参数k=3.000,用chebyshev映射迭代100次生成cheKeyl;(2)产生初值cheKey2:设定中间变量y0=(key0/0xffffffff+keyl/0xffffffff)/2yl=key2/0xffffffff+key3/0xffffffff以y0、yl为初值,参数k=4.000,用chebyshev映射分别迭代200次生成y01、yll,再由yO、yl生成y:y=(y01+yl1)/2再以y为初值,参数k=3.000,用chebyshev映射迭代200次生成cheKey2;(3)产生初值cheKey3:设定中间变量z0=keyO/Oxffffffff+keyl/Oxffffffffzl=key2/0xffffffff+key30xffffffff以y0、yl为初值,(u丄=1.8,u2=1.8,b=0.85),用Hybrid映射分别迭代100次生成z01、zll,再由z01、zl1生成z:z=(z01+zl1)/2再以z为初值,用Hybrid映射迭代100次生成cheKey3,得到cheKey3;步骤2:用Chebyshev映射,以初值为cheKeyl,参数为k=4.000进行迭代生成长度为m*256/8的混沌序列,再将混沌序列按照256Bytes分成m/8块,对每块进行排序,得到m/8种排序结果;所述的排序为从大到小或从小到大;步骤3:用Chebyshev映射,以初值为cheKey2,参数为k=4.000迭代生成长度为m的混沌序列,将混沌序列分成8组,在每组内对其进行排序;步骤4:将需要加密的明文按照256Bytes分成m块,再将m块明文均分为8组,然后与步骤3得到的8组混沌序列按照序号进行对应;按照每组混沌序列排序前与排序后的调整关系,对对应明文组进行置乱;4步骤5:使用Hybrid映射初值为cheKey3,参数为=1.8,u2=1.8,b=0.85生成明文长度的序列,以序列中每一个数值乘以10000对256取余的结果与步骤4中的置乱结果进行异或;步骤6:循环执行步骤26,达到加密轮数为止;所述的加密轮数为用户进行定义。解密过程为加密的逆过程。有益效果本发明提出的基于S盒和混沌映射的测试数据加密方法,通过一个混沌映射生成m个置乱方法,然后通过另一个混沌序列选择使用哪种置乱方法。把明文块分成8组,在一组中随机的选取置乱方法。在两轮置乱过程中会产生(m*m)/(8*8)种置乱。并且每轮置乱过程选取的排序方法都是由第一轮生成的,只不过每次的选取方式不同,这样增加轮数引起的时间增长很少。不仅提高效率而且提高了置乱的安全性。1、密钥空间大,有效抵抗穷举攻击预处理过程用S盒对明文置换,一个0255的置换有256!种,约8.5782X105°6,找到置换方法几乎不可能。另外,一个0255的置换相当于是有限域GF(28)到GF(28)的一个置换。该预处理方法相当于1套分组达到32个字节(共256位)的分组密码,具有相当的安全性[1]。预处理后的混沌密码算法采用128位二进制数作为初始密钥,进而生成各加密模块子密钥,即使公开加密轮数,加密算法的密钥空间也为2128,足以抵抗对密钥的穷举攻击。本发明方法的忧越性在于1、密钥空间大,有效抵抗穷举攻击预处理过程用S盒对明文置换,一个0255的置换有256!种,约8.5782X105°6,找到置换方法几乎不可能。另外,一个0255的置换相当于是有限域GF(28)到GF(28)的一个置换。该预处理方法相当于1套分组达到32个字节(共256位)的分组密码,具有相当的安全性[1]。预处理后的混沌密码算法采用128位二进制数作为初始密钥,进而生成各加密模块子密钥,即使公开加密轮数,加密算法的密钥空间也为2128,足以抵抗对密钥的穷举攻击。n、加解密效果良好对大小为10.4MB的目标数据(图2为部分数据截图),进行了加密实验,实验环境为配有1.6GHzIntelPenti皿m双核处理器、1GB内存、120GB硬盘的笔记本电脑。采用7a8b9cl534fe0261df579033c62da874(十六进制表示)共计128位作为加密密钥,加密3轮。加密算法部分(不计I/0)总共耗时2.469秒,用错误密钥解密后数据无法识别。用正确密钥解密后便可以分毫不差的回复原数据。III、明密文自/互相关特性优秀密文的自相关函数曲线如图3所示。图4为用密钥7a8b9c1534fe0261df579033c62da874加密5轮后密文与对应明文间的互相关曲线。可以看出密文与明文的互相关曲线间相关性很小,说明明文与密文间的相关性丧失殆尽。图5为用密钥7a8b9c1534fe0261df579033c62da874加密5轮后的密文与将密钥改变一位(7a8b9cl534fe0261df579033c62da874)加密所得密文之间的互相关性。可以看出,两个密文之间相关性很小,说明算法的密钥敏感度高。IV、S盒预处理后的雪崩效应优良经本方法S盒预处理后的数据满足雪崩效应,雪崩效应指改变输入的1个比特,每个输出比特改变的概率为1/2。测试结果见表l。由于表l中任何一列数值不全为O.5,所以S盒每一个输出位均不满足严格雪崩准则。但是这些数值都很接近1/2,说明当某一输入比特取反时,它的每一个输出比特均不会以过高或过低的概率取反,所以本方法所用S盒仍然具有良好的严格雪崩效应。V、密钥敏感度好将上述实验中采用的加密密钥随意改变一位进行解密,得到的数据与明文数据相比,不同的位数占原数据位总数的百分比接近50%,如表2所示,共进行了3次测试。这证实了算法具有很好的密钥敏感度。VI、密文统计特性优1)单比特测试表3中第一组密钥为"-",表示对明文进行单比特测试,其他九组测试均是对使用相应密钥对明文加密后得到的密文进行单比特测试,"O的个数"、"1的个数"指明文/密文中0或1的个数,共进行了十次测试(表中列出三次),第二组的密钥为笔者预置,其余均为随机生成。从表3可以看到,明文二进制流中0和1的个数相差悬殊,在同样的阈值(所有测试取同一个值3.8415)下未通过单比特测试,其他九组密文二进制流中0和1的个数基本相等,都能顺利通过该项测试。测试结果表明,本章算法在密文单比特统计特性测试结果良好。2)双比特测试本次试验共对十组数据进行了测试结果见表4(表中列出三次),第一组密钥为"-",表示对明文进行双比特测试,其他九组测试均是对使用相应密钥对明文加密后得到的密文进行双比特测试,其中,第二组的密钥是由笔者确定的,其余均为随机生成。"00的个数"、"01的个数"、"10的个数"、"11的个数"指明文/密文二进制流中连续00、01、10或11的个数。表4可以看出,明文二进制流中连续00、01、10或11的个数相差悬殊,在同样阈值(所有测试取同一个值5.9915)下未通过双比特测试,其他九组密文都能顺利通过该项测试。VII、密钥雪崩效应好,能有效抵抗差分密码攻击密钥雪崩效应要求对于一个固定长度的明文块,当密钥的任意一位发生改变时,密文块每位发生改变的概率为50%。表5说明算法满足密钥雪崩效应,可以抵抗差分密码攻击。VI11、与同类算法的比较及分析分别和Wang算法[2]、Ye算法[3]、Pareek算法[4]进行比较,实验环境和本节加解密实验环境相同。结果见表6。从表中可以看出,本算法的在相同条件下效率明显高于对比算法,统计量除双比6特测试和算法三相近,其余指标基本都优于对比算法,安全性在同类算法中较优。图1加密过程图2部分明文数据截图图3密文自相关特性(在信息分析中,通常将自相关函数称为自协方差方程。用来描述信息在不同时间的信息函数值的相关性)测试结果图4明文与密文互相关(在统计学中,互相关有时用来表示两个随机矢量X和Y之间的协方差cov(X,Y))曲线图图5两个密文互相关曲线具体实施例方式现结合实施例、附图对本发明作进一步描述加密过程加密方选择128位的密钥,用四个无符号整形数字(key0,keyl,key2,key3)表示,加密轮数20次。步骤1:产生三个密钥初始值cheKeyl、cheKey2、cheKey3:1)初值cheKeyl的产生过程x0=(key0/0xffffffff+keyl/0xffffffff)/2xl=(key2/0xffffffff+key3/0xffffffff)/2以x0、xl为初值,参数k=4.000,用chebyshev映射,分别迭代100次生成x01,xll;x=(x01+xl1)/2所述chebyshev映射公式为xn+1=cos[Karccos(xn)]xnG[-l,l],K>2再以x为初值,参数k=3.000,用chebyshev映射迭代100次生成cheKeyl。2)初值cheKey2的选取过程y0=(key0/0xffffffff+keyl/0xffffffff)/2yl=key2/0xffffffff+key3/0xffffffff以yO、yl为初值,参数k=4.000,用chebyshev映射分别迭代200次生成yOl,yiiy=(y01+yll)/2再以y为初值,参数k=3.000,用chebyshev映射迭代200次生成cheKey2。3)初值cheKey3的选取过程z0=keyO/Oxffffffff+keyl/Oxffffffffzl=key2/0xffffffff+key30xffffffff以yO、yl为初值,(u丄=1.8,u2=1.8,b=0.85),用Hybrid映射分别迭代100次生成zOl,zllz=(z01+zll)/2所述Hybrid映射公式为"、再以z为初值,用Hybrid映射迭代100次生成cheKey3。步骤2:用Chebyshev映射,以初值为cheKeyl,参数为k=4.000进行迭代生成长度为m*256/8的混沌序列,再将混沌序列按照256Bytes分成m/8块,对每块进行排序,得到m/8种排序结果;所述的排序为从大到小或从小到大;步骤3:用Chebyshev映射,以初值为cheKey2,参数为k=4.000迭代生成长度为m的混沌序列,将混沌序列分成8组,在每组内对其进行排序;步骤4:将需要加密的明文按照256Bytes分成m块,再将m块明文均分为8组,然后与步骤3得到的8组混沌序列按照序号进行对应;按照每组混沌序列排序前与排序后的调整关系,对对应明文组进行置乱;步骤5:使用Hybrid映射初值为cheKey3,参数为=1.8,u2=1.8,b=0.85生成明文长度的序列,以序列中每一个数值乘以10000对256取余的结果与步骤4中的置乱结果进行异或;步骤6:循环执行步骤26,共20次(加密轮数)。获得密文。加密完成。[cm2]解密过程解密方通过安全途径从加密方获得128位的密钥,即四个无符号整形数字(keyO,keyl,key2,key3),以及加密轮数20。步骤1:产生三个密钥初始值cheKey1、cheKey2、cheKey3:1)初值cheKeyl的产生过程xO=(key0/0xffffffff+keyl/0xffffffff)/2xl=(key2/0xffffffff+key3/0xffffffff)/2以xO、xl为初值,参数k=4.000,用chebyshev映射,分别迭代100次生成xOl,Xll;yiix=(x01+xll)/2再以x为初值,参数k=3.000,用chebyshev映射迭代100次生成cheKeyl。2)初值cheKey2的选取过程yO=(key0/0xffffffff+keyl/0xffffffff)/2yl=key2/0xffffffff+key3/0xffffffff以yO、yl为初值,参数k=4.000,用chebyshev映射分别迭代200次生成yOl,y=(y01+yll)/2再以y为初值,参数k=3.000,用chebyshev映射迭代200次生成cheKey2。3)初值cheKey3的选取过程zO=keyO/Oxffffffff+keyl/Oxffffffffzl=key2/0xffffffff+key30xffffffff以y0、yl为初值,(u丄=1.8,u2=1.8,b=0.85),用Hybrid映射分别迭代100次生成zOl,zllz=(z01+zll)/2再以z为初值,用Hybrid映射迭代100次生成cheKey3。步骤2:用Chebyshev映射,以初值为cheKeyl,参数为k=4.000进行迭代生成长度为m*256/8的混沌序列,再将混沌序列按照256Bytes分成m/8块,对每块进行排序,得到m/8种排序结果;所述的排序为从大到小或从小到大;步骤3:用Chebyshev映射,以初值为cheKey2,参数为k=4.000迭代生成长度为m的混沌序列,将混沌序列分成8组,在每组内对其进行排序;步骤4:将需要解密的密文按照256Bytes分成m块,再将m块明文均分为8组,然后与步骤3得到的8组混沌序列按照序号进行对应;按照每组混沌序列排序前与排序后的调整关系,对对应明文组进行置乱;步骤5:使用Hybrid映射初值为cheKey3,参数为=1.8,u2=1.8,b=0.85生成密文长度的序列,以序列中每一个数值乘以10000对256取余的结果与步骤4中的置乱结果进行异或;步骤6:循环执行步骤26,共20次(解密轮数),获得明文;解密完成。表1S盒的雪崩数据比特量分布均匀度第l位改变比第2位改变比第3位改变比第4位改变比第5位改变比第6位改变比第7位改变比第8位改变比0.53120.53120.45310.53120,45310.48440.45310.50000.50000.48440.53120.50000.48440.45310.50000.53120.51560.51500.46880.46880.45310.50000.53120.50000.51560.53120.46880.56250.50000.53120.50000.5469表2密钥敏感度测试结果正确密钥改变一位的错误密钥不同位数百分比7a8b9cl534fe0261df579033c62da8747a8b9cl534fe丄261df579033c62da87450.003%7a8b9cl534fe0261df5互9033c62da87449.996%7a8b9cl534fe0261df579033c62互a87449.9恥%表3单比特测试结果序号密钥0的个数1的个数统计量Xi阈值结果16165420026127000143787003.8415未通过9<table>tableseeoriginaldocumentpage10</column></row><table>权利要求一种基于S盒和混沌映射的测试数据加密方法,其特征在于步骤如下步骤1产生三个密钥初始值cheKey1、cheKey2、cheKey3(1)产生初值cheKey1设定中间变量x0=(key0/0xffffffff+key1/0xffffffff)/2x1=(key2/0xffffffff+key3/0xffffffff)/2其中key0~key3由用户设定;然后以x0、x1为初值,参数k=4.000,用chebyshev映射分别迭代100次生成x01、x11,再由x01,x11生成xx=(x01+x11)/2再以x为初值,参数k=3.000,用chebyshev映射迭代100次生成cheKey1;(2)产生初值cheKey2设定中间变量y0=(key0/0xffffffff+key1/0xffffffff)/2y1=key2/0xffffffff+key3/0xffffffff以y0、y1为初值,参数k=4.000,用chebyshev映射分别迭代200次生成y01、y11,再由y0、y1生成yy=(y01+y11)/2再以y为初值,参数k=3.000,用chebyshev映射迭代200次生成cheKey2;(3)产生初值cheKey3设定中间变量z0=key0/0xffffffff+key1/0xffffffffz1=key2/0xffffffff+key30xffffffff以y0、y1为初值,(u1=1.8,u2=1.8,b=0.85),用Hybrid映射分别迭代100次生成z01、z11,再由z01、z11生成zz=(z01+z11)/2再以z为初值,用Hybrid映射迭代100次生成cheKey3,得到cheKey3;步骤2用Chebyshev映射,以初值为cheKey1,参数为k=4.000进行迭代生成长度为m*256/8的混沌序列,再将混沌序列按照256Bytes分成m/8块,对每块进行排序,得到m/8种排序结果;所述的排序为从大到小或从小到大;步骤3用Chebyshev映射,以初值为cheKey2,参数为k=4.000迭代生成长度为m的混沌序列,将混沌序列分成8组,在每组内对其进行排序;步骤4将需要加密的明文按照256Bytes分成m块,再将m块明文均分为8组,然后与步骤3得到的8组混沌序列按照序号进行对应;按照每组混沌序列排序前与排序后的调整关系,对对应明文组进行置乱;步骤5使用Hybrid映射初值为cheKey3,参数为u1=1.8,u2=1.8,b=0.85生成明文长度的序列,以序列中每一个数值乘以10000对256取余的结果与步骤4中的置乱结果进行异或;步骤6循环执行步骤2~6,达到加密轮数为止;所述的加密轮数为用户进行定义。2.根据权利要求1所述的基于S盒和混沌映射的测试数据加密方法,其特征在于解密过程为加密的逆过程。全文摘要本发明涉及一种基于S盒和混沌映射的测试数据加密方法,技术特征在于首先使用S盒对目标数据做预处理,然后采用Chebyshev映射生成置乱方法,再通过另一个Chebyshev映射选择并进行置乱,最后与Hybrid映射产生的混沌序列异或运算完成一轮加密。本发明提出的方法,通过一个混沌映射生成m个置乱方法,然后通过另一个混沌序列选择使用哪种置乱方法。把明文块分成8组,在一组中随机的选取置乱方法。在两轮置乱过程中会产生(m*m)/(8*8)种置乱。并且每轮置乱过程选取的排序方法都是由第一轮生成的,只不过每次的选取方式不同,这样增加轮数引起的时间增长很少。不仅提高效率而且提高了置乱的安全性。文档编号H04L9/06GK101777975SQ20101011894公开日2010年7月14日申请日期2010年3月5日优先权日2010年3月5日发明者张云鹏,朱欤,焦会琴,翟正军,蔡小斌申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1