系统中的演化硬件不仅可以自动搜索密钥,而且配置好的演化硬件还可以在加密过程中继续使用,硬件的重用性好。引入演化硬件还可以实现密钥分散,使得密钥空间增大。为此本文将演化硬件和细胞自动机加密结合起来,用FPGA对图像进行加密。由于演化硬件足可配置的,所以它既可以作搜索密钥的工具,也可以作为规则表的逻辑电路,密钥更换时不需要更换硬件,增加了硬件的重用性。系统不仅加密速度快,而且实现了密钥分散。使得加密的安全性得到了增强。

一、设计思想及设计实现

1、开发平台

本文使用的FPGA是Xilinx公司生产的XC2VP30开发板,它的资源如表1所示。此外,XC2VP30还提供了XSGA、AC97、RS_232和PS_2等接口,方便输入和输出。XC2VP30还支持CF卡读写,用户可以把要操作的数据文件如图片、文档等存在CF卡中,也可以把FPGA的配置文件存在CF卡中,使得FPGA断电后重新启动不必再从计算机下载配置文件。

XC2VP30中提供了两个32位的RISC处理器Power-PC 405,它采用IP植入架构的形式整合到XC2VP30器件中。XC2VP30还提供了一个软核(MicroBlaze Processor),它的最高处理器频率和总线频率都是100MHz,而Power-PC的最高处理器频率可达300MHz,本文实验中使用了PowerPC 405作为处理器。

通过XILINX公司的EDK开发软件,可以很方便她在Virtex-II Pro系列芯片上搭建自己需要的硬件系统。除了可以选择软核和硬核作处理器,总线有OPB和PLB两种总线可供选择。同时,EDK还免费提供了多个IP核供用户使用,用户也可以定制IP,通过EDK提供的IPic模块可以方便地连接到系统中。

通过XILINX公司的SDK软件,可以使用C或者C++编写应用程序。SDK提供了丰富的库函数供用户调用。在定制用户舻时,系统可以生成与该IP相关的基本输入输出等函数供用户调用。包含应用软件项目的XPS项目,最后需要连同硬件系统的.bit文件和软件项目的.elf文件共同下载到FPGA中。

本文使用的系统,MMA是自己的用户IP,用VHDI,语言编写,而遗传算法和细胞自动机加密算法是用C语言编写的应用项目。

2、硬件系统

系统结构如图1所示。

由于采用了PowerPC作为处理器,系统有处理器局部总线PLB( Processor Local Bus,简称PLB)和片上外设总线OPB(On-Chip -Peripheral Bus,简称OPB)两条总线。OPB总线连接一些低速和低性能设备,如UART和PS2。OPB总线不直接连接到处理器内核,通过总线桥与PLB总线上的设备如内核和存储器联系。而PLB总线用来连接一些高速的设备,如片内存储器BRAM(Block RAM)和双向静态存储器DDR SDRAM。

由于FPGA的片上内存有限,增加了一个512MB的内存条,用来存放软件项目的堆栈。

3、MMA

MMA是一个基本逻辑电路,是用户定制的IP核,通过OPB总线IP核接口模块(OPB IPIF)与OPB总线相连。它是一个可配置的函数级逻辑电路,功能与FPGA类似,但其结构简单,而且规模较小,可以通过遗传算法快速求解。它由一些基本逻辑单元按一定的规则排列、连接而形成,如图2所示。

每个基本逻辑单元有3个输入和1个输出,每个输入和输出都是逻辑值O或者1。每个基本逻辑单元的功能由它的函数类型(如表2)确定。

输入和输出线与其他单元的连线由单元的配置串决定,单元配置串的结构如图3所示。MMA每一列的输入可以是前一列的输出或者是第一列的输入,如果MMA是mXn规模,单元配置串中每个输人的位长是应该满足:2k-2<m≤2k-1,有9种函数类型,所以单元配置串中函数有4位,每个基本逻辑单元的配置串长为3k+4位,MMA的配置串总长为mXn×(3k+4)。

4、遗传算法

对基本逻辑电路的演化是一件非常困难的事情,搜索空间指数级的扩大限制了演化硬件在更复杂问题求解中的应用。针对演化硬件特殊的结构,对于大规模而且很复杂的问题可以采用如演化分解、染色体压缩、增加基本逻辑单元的复杂性和问题分解等方法。

由于本文使用的基本逻辑电路规模较小,所以可使用简单的遗传算法,每个个体就是一个配置串。使用轮盘赌的选择策略选择进行遗传操作的个体,变异概率为0.2,杂交概率为0.5,繁殖概率为0.3。种群规模为10,每次遗传操作产生10个新个体作为下一代种群。

对于加密半径为r的一维细胞自动机,有22r+1个规则项,对于每个规则项设其输入为oi(O≤i≤22r+1)。有资料证明了当规则表中规则包含0、1状态的比率为1/2时,生成l位密文序列时不确定度即熵最大。而且提出了一种构造输出序列熵最大化规则的方法,即将规则表的22r+l种领域状态根据除sit+j位除外的2r位将状态划分为22r个状态组,将每组的两个状态赋值为:

其中,当J=r时,为右反转规则。本文根据此规则构造的评价函数为:

5、加密算法流程

采用演化硬件对罔像加密分为两个阶段:

第一阶段:密钥演化。通过遗传算法对基本逻辑电路进行演化,找到能使对于各输入的输出满足右反转规则的正确配置串。

(1)初始化。

(2)计算种群适应值。

①用个体(配置串)配置逻辑电路。

②将规则表中的输入项依次输出到逻辑电路中,根据它们的输出计算个体的适应值。

(3)判断是否找到了最优解,即最优个体的适应值是否达到了最大适应值ω(对于加密半径为r的规则表,最大适应值ω=22r)。如果找到了最优解,那么将最优解输出,转(5);否则,转(4)。

(4)产生新种群,转(2)。

(5)停止。密钥演化阶段结束。

第二阶段:加密/解密。在加密/解密之前,需要用某种规则的配置串去配置基本逻辑电路MMA。对配置之后的MMA输入规则项就可以得剑其对应的规则。

本文使用的加密/解密算法是简化的反向迭代加密技术,该算法具有较大的密钥空间和较简单的硬件结构。该方法通过循环移位进行数据加密,加密过程如图4所示,将I0,I1,….I2r作为规则表的输入项,输入到配置好的逻辑电路中。将硬件输出的结果,即规则项,与加密像素进行异或运算,用加密后的值I1'替换原来的值In,然后将整行像素值循环左移1位,取In',I0…,I2,1作为规则表的输入项对In-1进行加密。对I0进行加密后,加密结束。加密顺序为In,In-1,..,Io。解密时,需用与加密相同的密钥和逻辑电路连接结构和配置串对逻辑电路进行配置。解密与加密过程相反,解密过程如图5所示,解密顺序为Io,I1,…,In。

二、实验结果和分析

1、演化效率

本文采用简单遗传算法对基本逻辑电路进行演化,遗传算法的各参数见上文。每种问题都运行100次,取演化代数的平均值。通过10000代的运行时间,计算各问题每代的演化时间。对各种规模和输入都是1输出。

从表3中可以看出,当基本电路规模为8×8时,输入越少其平均运行代数越小,而且每代运行时间也越短。这是因为计算适应值时测试的数不同,对于5输入,计算适应值时,需要计算25-32个数的输出,而对于7输入,需要计算27= 128个数的输出,每次评价过程7输入问题都是5输入问题4倍的运算量。但是,每代运行时间却增加不到2倍,这说明运行的主要时间开销不是在适应值评价,而是在其他步骤。这种现象的原因是MMA是硬件电路,其运算速度比软件的运行速度高。随着电路规模的扩大和问题的复杂性增加,所需要的平均演化代数也在增加。

每种问题的最小运行代数均为1,这是由MMA的构造引起的。例如,对于4X4的规模,3输入的问题,当函数类型不为2~8(概率为7/16),而且第一个输人为2(概率为1/16)时,得到的逻辑电路就满足规则(概率为7/256)。还有其他的一些规则可以简单地通过连接几个基本逻辑单元实现,所以很有可能在第一代就存在最优个体。

虽然最小代数为1,但是最大代数是平均代数的10倍左右。这也是演化硬件固有的特点,其适应值函数存在多个局部最优解,搜索很容易陷入局部最优。

由于电路规模小,而且输入和输出数目较少,所以遗传算法很快找到了正确的配置串,成功率为100%。

2、加密效果

采用一维细胞自动机反向迭代加密,每一次循环迭代对一行像素进行加密。从图6中可以看出,当半径为0时,加密图像中体现出了原始图像的轮廓,而在加密半径为1和2时,图像已经完全分辨不出。

从图7中可以看出,原始图像被很好地置乱。随着加密半径的增加,图像的加密效果并没有太多改进,但增加半径会扩大密钥空间。如果采用传统的保存规则表的方法,随着加密半径的增加,保存空间按指数级增长。使用演化硬件,不仅加密速度快,而对于8X8的MMA。加密半径为O、1、2、3时,硬件都不需要发生变化,重用性非常好。对加密后的图像解密完整的可以得到原始图像。

一般的加密算法都会通过多次迭代增强加密效果,采用细胞自动机加密,即使加密半径很小,通过多次迭代也可以将图像信息很好地置乱,如图8所示。

演化硬件在现实中应用的瓶颈就是随着问题的规模的扩大,搜索空间急剧增长。但是,对于细胞自动机图像加密问题,可以使用小规模的基本逻辑电路,通过多次迭代来解决加密半径太小置乱效果差的问题。所以,演化硬件应用于细胞自动机图像加密很有实用价值。

3、安全性分析

半径为r的系统共有S=22r+1种状态,每种状态可对应O、1两种规则,所以有分种规则,满足本文规则的密钥也有2s门种。当r=3时,密钥空间高达2的64次方≈1.844 7×10IP,而且会随r的增加呈指数级增加,因此采用穷举搜索2s/2密钥是不可能的,即系统在计算上是安全的。

除密钥空间大外,由于采用了演化硬件,使得密钥分为多个部分,包括硬件电路的规模和连线结构,函数的类型和排列顺序,电路配置串,每次加密的位数,加密半径等,不仅增加了密钥空间,而且有效地实现了密钥分散,单独获得任何一个或几个信息都不能破译密文,因此系统的安全性非常好。

小知识之演化硬件

演化硬件:EHW,是Evolution Hardware的缩写,指的是仿照自然界中以碳为基的生物进化过程,有可能在现有的FPGA芯片基础上实现可控的“硅基进化”。演化设计的主要实现方法是将电路的结构、参数等项内容作为染色体加以编码并施加交叉、变异等演化操作。电路的输人一输出特性与预期结果的符合程度便作为该个体的适应度,指导下一步的演化操作。如此反复,逐步通过计算找到符合要求的个体,即最终电路。因此,演化设计的结果是能够对集成电路芯片中可重配置的逻辑单元进行重配和组合,使得系统体系结构、连接方式均可得以变更。从而,可以实现局部的功能调整,甚至予以整体上的重新设定。