[2018年最新整理]基于置换移位的单字节分组加密方法.doc

[2018年最新整理]基于置换移位的单字节分组加密方法.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[2018年最新整理]基于置换移位的单字节分组加密方法

基于置换移位的单字节分组加密方法 为了减少无线传感器网络编码的冗余字节,提高基于Feistel结构的无线传感器网络分组加密的安全性,提出了一种新的单字节分组密码加密方法。那么接下来我就给大家介绍一下这种加密方法。 一、无线传感器网络Feistel结构分组加密算法 基于Feistel结构的WSN分组算法结构如图1所示。 结构采用了置换和多轮的Feistel结构。输入的8bit明文分组首先被进行单字节位的置换变换;然后被分成两个4bit的Ri、Li(其中i为Feistel加密的轮次,i=1,2,3,4,…,n),再进行扎轮的Feistel结构加密,其中每轮的Feistel加密结构如图2所示。 八比特分组的Feistel结构的处理过程表示为: 其中Ri、Ri-1、Li、Li-1、T都为4bit,走为密钥,f为加密函数。其中Feistel加密的最后一轮不进行高低半字节交换;最后再进行一次单字节的置换变换。 二、置换操作 考察单字节的置换变化。从字节数据A变换到字节B的置换变换,可以看做是A数据的二进制位的重新排列,例如,设字节A=(abcdejgh)T,B=(dhefgcba)T,其中a、b、c、d、e、f、h、g都取0或1,变换前后A和B字节中位值为1和0的总数不变,T表示矩阵转置操作。则这种变换可以表示为: 其中T表示矩阵转置。可见通过变换矩阵P完成了从A到JEI的置换变换: 观察矩阵P,可见有以下规律: (a)P是由1和0组成的矩阵,是由以下8个向量a1~a8构成的矩阵: (b)P的秩为8,即: (c)P的n(n为整数)次幂矩阵仍然是由1和0组成的矩阵,且以次幂矩阵的秩也为8: (d)P的m(m为整数)次幂矩阵可以得到单位矩阵,即: m称为矩阵P的生成单位阵次数,E为单位阵。在上面的例子中m=8。 还可以继续进行类似(2)式的变换操作,例如: 将(2)式代入,则: 通过变换矩阵p2完成了从A到C的置换变换: 进而可以继续操作,即进行变换: 这样,如果将n(1-m)和P做为密钥,则得到一种单字节数据的密码编码方案。 三、移位操作 移位可以改变数据的位置,但数据的相邻关系不变。为保持移位后数据位的不损失,这里的移位操作指循环移位,包括循环右移位和循环左移位。 设: 另设密钥为K,移位操作为S(K),其中S(K)为0-1矩阵,移位后为B,则: 从字节数据A变换到字节B的循环移位变换,可以看做是将A数据的二进制位重新排列,例如,设字节A=(abcdefgh)T,B=(defghabc)T,多乓中a、b、c、d、e、f、g、h都取0或1,变换前后A和B字节中位值为1和0的总数不变。则这种变换可以表示为: 可见Q矩阵与P矩阵具有相同的性质,也是(4)式向量的一种排列。 同样可以继续下列变换操作: 其中s取1~8的整数。这样,如果将s和Q做为密钥,则也得到一种单字节数据的密码编码方案。 四、加密算法设计 1、加密方案 由于P和Q性质相同,将P和Q矩阵操作合并,就得到: 其中k为密钥,W为变换密钥矩阵,W是(4)式向量的一种排列矩阵,与矩阵P和Q性质相同。 设单字节密文数据为A,单字节密文数据为B,则加密过程表示为: 2、解密方案 解密是利用(7)式的特性。已知道密文B,密钥k和W,则解密操作为: 根据(7)式,如果: 则(18)式变为: 从而正确得到明文。 五、密钥分析 密钥有k、w变换密钥矩阵W是从(4)式的8个向量排列得到的矩阵,这8个向量排列有:8!=40320种,故W矩阵有40320个。密钥k是与生成单位阵次数优有关,其取值为k=1~m。 通过统计,得到W矩阵的生成单位阵次数m有11种可能取值:1~8、10、12、15,其得到的变换矩阵W数量如表1所示。 每当取定一个m,则密钥取值为k=1~m,而变换矩阵W就有多种可选。例如取m=8,则奄可以取1~8其中之一,对应的W矩阵有2786种可供选择。于是,密钥组合是蚤和W可能取值数目的乘积。通过计算可以得到总共的密钥数目为:3. 866×10430若采用穷举法破解,以每秒列举1020个密钥,则需要1.23×1016年才能穷举完所有密钥组合。可见密钥的安全性比较高。 六、实验 取密钥k=9,变换密钥矩阵W为: 计算可知道:rank( W)=8。在MATLAB下进行加密解密计算,设明文A= [11010 llO]r,结果如图3、图4所示。 图3中明文A先被加密成密文B,然后通过正确密钥解密得到正确的明文C。图4中明文A先被加密成密文B。然后通过错误密钥解密得到错误的明文D。可见,算法能够完成加密。 针对无线传感器网络等的少量数据字节的密码编码,为增强基于Feistel结构的WSN分组加密的安全性,提出了一种新的单字节密码编码算法。加密算法采用单字节的置换和循环移位,既可以实现文件加密,也可以实现

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档