本发明涉及通信信息处理技术领域,尤其涉及信息加密方法,具体地说,是一种基于伪随机时变交织编码的信息加密方法。
背景技术
交织编码是一种重要的信息编码技术,常常与前向纠错编码联合使用,以纠正突发性差错。
交织编码的基本原理如下:假设对于集合z={1,2,3,l,l},存在从z到z的一一映射π,使得
j=π(i)i,j∈z∩i不全等于j,
定义
π={π(i)|i=1,2,3,l,l}
为交织参数。如果
i=π(i)
则称i为不动点。假设输入数据分组din和输出数据分组dout的长度均为l,i表示元素din[i]在输入数据分组中的地址(即交织前的地址),π(i)表示元素din[i]在输出数据分组中的地址(即交织后的地址)。则,操作
dout[π(i)]=din[i]i∈z
就是按照交织参数π对输入数据分组din进行的交织编码。
根据以上分析可知,交织编码的本质是在不改变元素值和分组长度的前提下对输入数据分组中的元素进行重新排序。因此,只要din中的元素不完全相同,就可以通过恰当地设计交织参数,使dout≠din。由此可知,交织编码具有对分组数据进行置乱加密的潜在价值。
然而,仅仅采用上述的交织编码技术并不能实现安全的信息加密,原因有以下两点:
1)如果输入数据分组中存在大量相同元素连续排列的现象,则在交织编码后的输出数据分组中这种现象仍然可能存在,进而导致信息泄露;
2)采用同一组交织参数对多个数据分组进行交织编码等价于采用固定的加密方案进行多次加密,而这种加密方式是不安全的。
技术实现要素:
为了解决上述现有问题,本发明提出一种基于伪随机时变交织编码的信息加密方法,解密过程中不会出现差错传播现象;在进行交织之前,对数据分组进行加扰处理,可以消除数据分组中相同元素连续排列的现象,进而避免交织后信息泄露;使用伪随机时变交织参数进行交织加密,既保证了解交织的可行性,又增强了交织加密的安全性。
为了实现本发明的目的,拟采用以下技术:
一种基于伪随机时变交织编码的信息加密方法,其特征在于,包括:对数据分组进行加扰处理;由伪随机时变交织参数发生器产生一组时变交织参数;将加扰后的数据分组和时变交织参数输入交织器,交织器根据交织参数对数据分组进行交织。
伪随机时变交织参数发生器包括种子交织参数加载器、伪随机数发生器和循环移位器。
伪随机时变交织参数发生器产生时变交织参数的方法是:种子交织参数加载器将一个种子交织参数加载到循环移位器;伪随机数发生器生成一个伪随机数,并发送给循环移位器;循环移位器根据伪随机数的值对种子交织参数进行循环移位,具体为循环左移或者循环右移,得到一个时变交织参数。
本发明的有益效果在于:
1、采用本发明的交织编码方式进行加密,解密过程中不会出现差错传播现象。
2、在进行交织之前,对数据分组进行加扰处理,可以消除数据分组中相同元素连续排列的现象,进而避免交织后信息泄露。
3、使用伪随机时变交织参数进行交织加密,既保证了解交织的可行性,又增强了交织加密的安全性。
附图说明
图1为本发明所述方法的原理图。
图2为本发明所述方法的流程图。
图3为一个加扰器实例的结构图。
图4为一个伪随机时变交织参数发生器实例的结构图。
图5为一个伪随机数发生器实例的结构图。
具体实施方式
图1~2所示,一种基于伪随机时变交织编码的信息加密方法,包括:
对数据分组进行加扰处理;
由伪随机时变交织参数发生器产生一组时变交织参数;
将加扰后的数据分组和时变交织参数输入交织器,交织器根据交织参数对数据分组进行交织,形成密文分组。
图3所示为本实例采用的加扰器,其生成多项式为1+x+x4。
本实例采用的加扰器初始化方法是:在对每个数据块进行加扰前,均对加扰器的线性反馈移位寄存器进行一次初始化。其线性反馈移位寄存器的初始值为1001。
本实例采用的加扰方法是:将加扰器输出的二进制扰码序列与输入数据分组的二进制序列按比特进行异或运算。
图4所示为本实例采用的伪随机时变交织参数发生器。该伪随机时变交织参数发生器由种子交织参数加载器、伪随机数发生器和循环移位器三部分构成。
伪随机时变交织参数发生器产生时变交织参数的方法是:
第一步,种子交织参数加载器将一个种子交织参数π0加载到循环移位器;
第二步,伪随机数发生器生成一个5比特的伪随机数rk并发送给循环移位器;
第三步,循环移位器根据伪随机数rk的值对种子交织参数进行循环左移,得到一个时变交织参数πk。
本实例选择的种子交织参数为
π0={17,9,26,5,21,14,31,27,8,18,13,1,29,7,22,11,
2,15,6,30,23,10,19,3,28,24,32,16,12,4,25,20}.
图5所示为本实例采用的伪随机数发生器,其生成多项式为1+x2+x5。
本实例采用的伪随机数发生器初始化方法是:仅在伪随机数发生器工作之前,对其线性反馈移位寄存器进行一次初始化。其线性反馈移位寄存器的初始值为10001。
本实例对3个长度32比特的数据分组进行交织加密,每个数据分组中的32个元素均为1,即
s={1,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0}.
伪随机数发生器产生的前15比特伪随机序列为
r={1,0,0,0,1,1,1,1,1,0,0,1,1,0,1}.
此序列对应的3个伪随机数如下表所示。
对第一个数据分组进行交织加密:第一步,对第一个数据分组
π1={15,6,30,23,10,19,3,28,24,32,16,12,4,25,20,17,
9,26,5,21,14,31,27,8,18,13,1,29,7,22,11,2};
第三步,根据交织参数π1对
对第二个数据分组进行交织加密:第一步,对第二个数据分组
π2={11,2,15,6,30,23,10,19,3,28,24,32,16,12,4,25,
20,17,9,26,5,21,14,31,27,8,18,13,1,29,7,22};
第三步,根据交织参数π2对
对第三个数据分组进行交织加密:第一步,对第三个数据分组
π3={19,3,28,24,32,16,12,4,25,20,17,9,26,5,21,14,
31,27,8,18,13,1,29,7,22,11,2,15,6,30,23,10};
第三步,根据交织参数π3对