在信息安全领域,人们提出了大量的安全理论和算法实践。但是,由于这些研究具有很强的保密性,因此,可供直接使用的可行加密算法并不多。同时,考虑到这一领域的特殊性,任何即使是第一手的加密算法也不会直接使用,而是先加以研究并改造成适合自己需要、能完全控制的加密算法。为此,我们提出了一种基于可变S盒子的加密算法,并把它应用于媒体公关中。
一、可变S盒分组密码算法
分组密码由于它具有很高的加密强度以及它在设计上具有很大的灵活性而得到广泛应用。然而,传统的分组密码算法由于采用不变的加密轮结构和固定的S盒子,从而使它易受差分攻击,我们提出的分组密码算法采用了变化的加密轮结构及可变S盒子,从而在保持高加密强度的同时提高了算法的抗差分攻击的能力。
数据加密的基本原理是将密文尽可能地分散到待加密信息中去。香农提出的扩散(diffusion)和混乱(confusion)理论是各种加密算法的基石。加密的主要操作有异或、模2加(减)和移位等。
1、加密算法总体结构
在本加密算法中,待加密数据(明文)和密钥均为64位。首先,把64位数据分成两个j32位数据Ri、Li并开始做16轮的代替一置换等加密操作。这一轮加密操作完成后送到下一轮做加密操作,如图1所示。
左边的32位数据厶与加密函数F(Ri,Ki)做逻辑异或运算,运算结果与右边的32位数据R相交换并送到下一级做新的加密操作。在这里,数据的左右交换操作并不是为了增加算法的加密强度,而是为使算法的加解密操作具有对称性,从而可以避免再去设计新的解密算法。这与对称密钥体制是一致的。下面我们考察一下具体的加密过程。
2、交替变化的加密结构
32位数据(Ri或Li)进入具有不同加密结构的加密池做四轮加密操作。本算法采用两种不同的加密环Ring O和Ring 1,用这两个加密环做四轮加密。操作总共有6种不同的排列方法,但它们具有一样的加密强度。本加密算法选用Ring0→Ringl→Ring0→Ring1的多轮加密结构。整个加密池如图2所示。
加密环Ring0和加密环Ring1的加密操作是不一样的。这里采用四轮循环加密结构是为加密解密的算法对称性设计的。
3、深入加密环
为尽可能快地把密钥扩散到明文中去,本加密算法采用了多重蝶形置换结构。加密环Ring0的结构如图3所示。
首先,待加密的32位数据分成四个字节:BO—B3并分别与第一个8位密钥k0做异或操作以使密码融合到待加密数据中去。前面两个字节做异或操作后的结果再做异或操作并与第二个8位密钥K。一起送入S盒子做加密运算。S盒子的运算使得密钥进一步扩散开来,S盒子的运算结果再做一次异或操作并与第四个8位密钥K,做模2加。
加密环Ring 1的结构与Ring 0的结构类似。只是在数据流上要倒过来,并且把模2加换成模2减,另外,密钥是K4、K7。这样做的目的也是为了使加密解密算法一致。
4、可变S盒子
在Feistel网络中,一个S盒子是一个替换运算矩阵:将m位的输入映射为n位的输出。m.n称为S盒子的容量,在一定范围内,当容量越太时,算法的抗差分攻击和线性攻击的能力就越强。S盒子起着混乱的作用。
根据本源多项式。一个8位的S盒子最多可以有2的8次方-2=254个可用状态(状态0和255不可用)。如果某S盒子的本源多项式为X8+X4+X2+X+1,则S盒子的线性移位寄存器组成如图4所示。
5、加密算法的强度
通常,用密钥或明文改变一位情况下,输出密文改变的位数相对明文数据长度的比率来表示一个加密算法的测试结果如表1所示。
由表1可知,瞬时加密强度为59.38%。
也就是说,在数据变化1位时大约有一半多的数据要发生变化。因此,这种加密算法强度是比较大的。
6、抗差分攻击和线性攻击的能力
本加密算法具有很强的抗差分攻击能力和较好的抗线性攻击能力。由于采用了可变S盒子,而S盒子的输出与密钥紧密相关并且随密钥不同而不同。另外,由于多媒体数据具有很大的随机性,所以,差分攻击对本算法基本上不起作用。
对于线性攻击,其抵抗能力与DES等分组加密算法是一样的。但是,如果S盒子设计得当,那么算法将具有很好的抗线性攻击能力。不过,设计不好的S盒子将降低其抗线性攻击的能力。
二、加密算法的实现
该加密算法在Xilinx公司的XC2S50TQ144系列FPGA内部得到实现。软件平台为Xilinx公司的Foundation 4.1i集成开发环境(IDE)。考虑到算法的通用性及可移植性,我们使用Verilog语言,它是一种类似于C语言的硬件描述语言(HDL),其语法及数据操作与C语言非常相似并有所扩展。在底层,我们用它来实现算法;而在高层则用原理图来与一些外围逻辑及芯片引脚相衔接。
整个加密算法耗去FPGA中78%的可配置逻辑块33MHz。系统总体工作良好,加解密速度快效率高,整体性能优异。如果对算法作进一步的优化,则加密解密性能将会更好。
三、多媒体数据加密解密
媒体数据在打包成为IP包之前加密。也就是说,IP包数据域的内容在解密之前是无法使用的。这样做的好处是,可以不使用HTTPS、IPSec等安全传输协议,加密后的数据直接在IP网上传输即可。
由于多媒体数据具有很大的随机性,因此,这一点有利于信息隐藏。实践表明,对于随机分布型的数据,即密钥长度稍短,破解难度相对较大。本文提出的加密算法完全能够实现多媒体数据安全通信的要求。
小知识之媒体公关
通过协调企业(组织)与媒体的需求与价值取向,使双方的利益最大化,最大可能地达到企业(组织)的传播目标和媒体的信息(报道)需求。