为了减少无线传感器网络编码的冗余字节,提高基于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分组加密的安全性,提出了一种新的单字节密码编码算法。加密算法采用单字节的置换和循环移位,既可以实现文件加密,也可以实现文件解密。

小知识之Feistel

在密码学研究中,Feistel 密码结构是用于分组密码中的一种对称结构。以它的发明者 Horst Feistel 为名,而Horst Feistel 本人是一位物理学家兼密码学家,在他为 IBM 工作的时候,为Feistel 密码结构的研究奠定了基础。很多密码标准都采用了Feistel 结构,其中包括DES。Feistel 的优点在于:由于它是对称的密码结构,所以对信息的加密和解密的过程就极为相似,甚至完全一样。这就使得在实施的过程中,对编码量和线路传输的要求就减少了几乎一半。