文献标识码: A
文章编号: 0258-7998(2011)07-0065-03
序列密码具有实现简单、加密速度快、密文传输中的错误不会在明文中产生扩散等优点,因此应用越来越广泛[1]。可重构技术融合了ASIC高效性和通用微处理器灵活性的实现方式,已经广泛应用到序列密码算法中[2]。抽取与插入单元可重构操作解决了算法中比特级初始信息位宽不相同的操作限制,实现了算法的灵活性和高效性,具有非常好的现实意义和创新性。
针对序列密码算法运算操作位宽不同的特点,抽取与插入操作能够从移位寄存器状态中快速提取出有效状态位来参与后续密码运算,解决了位宽不同的问题,从而降低了资源消耗并提高了运算速度。例如密钥流的生成、复杂更新函数计算等都运用到这种操作。所以对抽取与插入单元的基本原理与实现功能的研究,对提高序列密码处理速度和节约序列密码算法芯片资源具有重要的意义。
1 序列密码算法中抽取与插入单元操作
序列密码算法主要由移位寄存器、反馈函数运算单元和密钥流函数运算单元构成,其中反馈函数运算单元用于计算移位寄存器的更新值,密钥流函数运算单元用于计算最终的密钥流。不论是反馈函数的计算还是密钥流生成函数的运算都需要将参与运算的一个或多个移位寄存器的有效状态位提取出来继续完成运算。参与运算的一个或多个移位寄存器的有效状态位提取出来的操作称为抽取与插入操作。
抽取操作过程可以用图1(a)描述:根据预先产生的控制信息序列Ctr对受控序列In进行操作。控制信息序列Ctr中为“1”的控制位对应的受控数据依次排在Out的右侧,其余为“0”的控制位对应受控数据依次排在Out的左侧,这样能够实现有效状态位和无效状态位的分离。序列密码算法实现过程中,有时需要将抽取操作结果的每一位都保存下来,并且能够在有效位运算完成后再将其插入到原始的位置上去[3]。插入操作过程可以用图1(b)描述:当插入单元与抽取单元控制信息序列Ctr相同时,插入单元操作能够将抽取单元操作的有效状态位还原,也就是说抽取与插入单元的操作是可逆的。
在对NESSIE工程、ECRYPT工程[4]中的序列密码算法分析后,三十多种算法的运算环节包含了抽取单元操作,虽然单元操作对应的初始信息位宽相对比较复杂,但是多数序列密码算法操作位宽都可以归为32 bit、64 bit、128 bit、256 bit四种位宽以内。例如A5-1算法中LFSR级数为19时,运用抽取操作将参加下轮运算的第19、18、17、14这四个有效位比特抽取出来,然后进行后续操作,其余算法在这里不再赘述。表1中列出了9种序列密码算法中密钥流生成函数和反馈函数的运算情况,包括变量个数和对应源操作数据的位宽,可以得出抽取操作的源操作数位宽和目的操作数位宽。
2 抽取与插入单元的可重构硬件电路总体架构
可重构抽取与插入单元硬件电路架构包括inverse butterfly网络的抽取与插入基本单元电路和inverse butterfly网络的控制信息生成电路[5]。inverse butterfly网络的控制信息生成电路能够同时控制inverse butterfly网络的抽取与插入基本单元电路。对于初始信息位宽长度为nbit的抽取与插入单元操作,基本单元电路由级inverse butterfly网络构成,每级网络需要n/2 bit控制信息,一共需要nlogn/2 bit的控制信息并且由nbit的初始信息通过控制信息生成电路生成。
例如初始信息位宽为256 bit的抽取与插入单元操作中,对应的单元基本电路由8级inverse butterfly网络构成,共需要1 024 bit控制信息。当两个单元初始控制信息相同时,控制信息生成电路生成的控制信息有以下关系:抽取基本单元电路的第1级控制信息与插入基本单元电路的第8级控制信息相同,需要将抽取单元的各级电路生成信息还原为各自对应输入信息时,能够利用插入单元的特点:在控制信息相同的情况下,可以将抽取单元各级的生成信息作为插入单元的输入信息来实现。由此得到抽取与插入单元电路的实现是一个可逆的过程。
3 可重构控制信息生成电路
3.1 控制信息的生成算法
通过对benes、butterfl、inverse butterfly、banyan以及clos等多种网络结构的分析和研究得知,抽取与插入单元运用了inverse butterfly网络控制信息生成算法[6]。nbit初始信息对应的inverse butterfly网络需要nlogn/2 bit控制信息,这些信息均由nbit初始信息译码生成,控制信息算法[6]如下:
(1)计算初始控制信息抽头
PPC[0]=control[0]
For i=1,2,……,n-2
PPC[i]=PPC[i-1]+control[i]
(2)计算inverse butterfly网络控制信息生成算法
sel={}
For i=1,2,……,lg(n)
k=2i-1
For j=0,1,……,n/2i-1
temp=LROTC(0K,PPC[j?鄢2i+k-1])
sel[i]=temp||sel[i]
其中:
①LROTC(a, rot)表示左循环取反填充,a是输入,rot是左循环次数。
②0k代表长度为k的“0”比特串。
③PPC[a]代表从原始控制信息的第0抽头到第a抽头的1的个数。
④i表示inverse butterfly网络的第i级。
⑤k表示第i级中每个子单元需要的控制信息位数,也表示每个子单元中处在右侧部分的输入位数。
3.2 控制信息生成连加电路算法设计
针对控制信息生成电路位宽多变的特点,连加比特电路有多种实现模式。在处理连加电路时,提出了相邻比特两两相加以减少电路寄存器数目的操作,大幅度减小了电路设计面积并且提高了电路运行效率。以8 bit十进制连加电路为例,(其中a0~7表示8 bit连加电路初始信息位宽,b1~4表示连加电路相邻2 bit相加信息位宽,U1~8表示连加电路结果信息位宽)如图2所示。
根据电路图所示有以下关系公式:
通过(1)、(2)两个公式可以极大地节省连加电路的运算时间,而且降低了寄存器对功耗的影响。提高了整体运算电路的运算速度。
4 基于inverse butterfly网络的可重构抽取与插入操作基本单元
抽取与插入单元是序列密码算法实现高效性和灵活性的核心模块。基于inverse butterfly网络提出了抽取与插入操作基本单元,且nbit的操作数位宽对应inverse butterfly网络共有logn级,抽取操作基本单元的特点是级数由上到下逐级增大,并且在第i级中,共有n/2i个子单元,每个子单元输入数据位宽为2i bit。对于每级中的子单元,左右单元各占一半的输入,左右部分的位宽均为2i-1 bit,而且每个子单元都需要2i-1 bit的控制信息。
图3所示抽取操作基本单元位宽为16 bit的4级inverse butterfly网络[7],第一级有8个子单元,每个子单元对应2 bit数据输入和1 bit控制信息;第二级有4个单元,每个子单元对应4 bit数据输入和2 bit控制信息;第三级有2个单元,每个子单元对应8 bit数据输入和4 bit控制信息;第四级有1个单元,单元对应16 bit数据输入和8 bit控制信息。
插入单元的nbit操作数位宽对应的inverse butterfly网络和抽取单元同样有logn级。综上所述,当两个单元控制信息相同时,抽取与插入基本单元的实现过程是可逆的,插入操作运算能够将抽取操作运算结果还原为初始数据信息。图4为插入基本单元位宽为16 bit的4级inverse butterfly网络,可知第一级有1个子单元,子单元对应16 bit数据输入和8 bit控制信息;第二级有2个单元,每个子单元对应8 bit数据输入和4 bit控制信息;第三级有4个单元,每个子单元对应4 bit数据输入和2 bit控制信息;第四级有8个子单元,每个子单元对应2 bit数据输入和1 bit控制信息。由此可以得到位宽为256 bit的8级inverse butterfly网络,在此不再赘述。
5 性能分析
本文提出的设计采用Verilog语言描述,在Quartus9.0环境下编译,选用Altera StratixIII系列器件的EP3SL340F1760C4为目标器件进行了综合,表2给出抽取和插入单元加载到FPGA中的时钟频率和资源占用情况。另外本设计使用NC-Verilog对批量数据进行了仿真测试,验证结果均正确。基于CMOS 0.13 μm工艺库,在Synopsys公司的Design Compiler上进行了逻辑综合、优化。结果如表3所示。
综上所述,本文基于抽取和插入单元的基本原理,提出并实现了可重构硬件电路,在保证单元运算灵活性
和准确性的同时,有效降低了功耗,并且满足了不同位宽序列密码的操作要求。通过在FPGA上验证,抽取与插入单元的设计结果正确、高效。能够满足多种对称密码算法的实现需求,同时为可重构密码芯片的设计和运用奠定了良好的基础。
参考文献
[1] Luo Qibin,Zhang Jian,Status Quo.Development of stream cipher.Information And Electronic Engineering,2007,1(2).
[2] ADAM J E.Reconfigurable computing for Symmetric-Key[D]. 2002.
[3] Shi Zhijie,Ruby B L.Subword sorting with versatile permuta-tion instructions.Proceedings of the International Conference on Com-puter Design(ICCD 2002),2002(9):234-241.
[4] Liu Yunyi,Qin Tuanfa,Ni Wansun,et al.The brief evaluations of the candidates to the ECRYPT stream ciphers. Information Securityand Communication Secrecy,2006,7.
[5] LEE R B,RIVEST R.L,ROBSHAW M.J.B,et al.On permutation operations in cipher design.Proceedings of the International Conference on Information Technology (ITCC),2004,2(4):569-577.
[6] SHI Z J,Ruby B.L.Implementation complexity of bit permutation instructions department of electrical engineering. Princeton University,Princeton,NJ 08544 USA,2003.
[7] YANG X,VACHHARAJANI M,LEE R B.Fast subword permutation instructions based on butterfly networks,Proceedings of Media Processors 2000(SPIE 2000),2000(1):80-86.