基于FPGA的高速加密芯片的设计与实现 | |
作者:杨卫国,张涛,袁宏韬,闫景富 时间:2007-04-09 来源: | |
摘要:以非线性组合函数和线性反馈移位寄存器(LFSR:Linear Feedback Shift Registers)为基础,利用可编程逻辑门阵列(FPGA:Field-Programmable Gate Array)设计了一个高速加密芯片。该芯片既能满足密码学领域对密钥序列的高质量要求,又能满足保密通信领域高速度要求。介绍了加密芯片的设计理论、设计过程、加密芯片安全性分析和硬件实现,最后对密钥流进行了随机性统计测试。 关键词:非线性组合函数;加密芯片;伪随机序列;可编程逻辑门阵列 引言 密码技术是信息安全技术的核心,密码算法又是密码的核心。为此,世界各国对密码算法的研制都高度重视。根据明文消息加密形式的不同,密码体制可分为分组密码和序列密码。分组密码多用于商业领域,而序列密码主要用于政府、军方等国家重要部门。美国早在1977年就制定了自己的数据加密标准———DES(Data Encryption Standard)。随着DES的出现,人们对分组密码展开了深入的研究和讨论,现已有大量的分组密码,如IDEA(International Data Encryption Algorithm)算法、SAFER(Secure And Fast Encryption Routine)系列算法、AES(Advanced Encryption Standard)算法、FEAL(日本NTT(日本电报电话公司)的清水和宫口设计)系列算法、LOKI(DES的一种潜在替代算法)系列算法、CAST(Carlisle Adams/Stafford Tavares)系列算法等。2001年11月26日, NIST (National Institute for Standards Technology)公布了新一代数据加密标准AES(高级加密标准),这是比利时学者Vincent Rijmen和Joan Daemen发明的“Rijndae算法”。与分组密码相比,序列密码具有加解密速度快、安全性较高等优点,但一般要设计专用的硬件加密芯片。讨论的高速加密芯片就是基于序列密码算法。序列密码算法的设计方法可归纳为4种:系统论方法、复杂性理论方法、信息论方法和随机化方法。笔者将密钥流生成器分解成驱动部分和非线性组合部分分开设计,不仅结构简单,而且便于从理论上分析。对于密钥流生成器的驱动部分,采用线性反馈移位寄存器(LFSR:Linear Feedback Shift Registers);对于密钥流生成器的非线性部分,采用最典型、也是最常用的方法———非线性组合函数。当然,非线性部分还可采用其他方法,如非线性滤波生成器和钟控序列法等。笔者采用基于LFSR和非线性组合函数的方法设计密钥流生成器,不仅便于从理论上分析其安全性,而且易于硬件实现。经严格测试表明,该加密芯片能产生高质量、高速的伪随机密钥流,它在保密学领域有广泛的应用。 高速密钥序列生成器的设计 高速加密芯片的核心是密钥序列生成器,实质是一个伪随机序列生成器。笔者讨论的随机序列生成器的结构图见图1,由N个多级LFSR和一个非线性组合函数组成。LFSR产生M序列,为提高密钥流的复杂度,再将多路M序列进行非线性组合。伪随机序列生成器的设计主要有:LFSR的级数和反馈函数的设计;非线性组合函数的设计。 图1 伪随机序列生成器结构图 图2 线性反馈移位寄存器的结构图 LFSR的设计 式(1)称为递推方程,ci∈(0,1),它的取值决定了反馈函数的结构。LFSR还可表示为 式(2)称为特征多项式。式中xi的取值只表明系数ci的取值(0或1),其本身并无实际意义。 经严格的证明:如果一个n级LFSR的特征多项式为本原多项式,则该LFSR生成的随机序列具有最大的周期为2n-1。因此,只要找到LFSR的本原多项式,并以此为反馈函数,序列发生器就能产生M序列。 LFSR的级数选取 表1 LFSR的级数及对应的最大周期 构造LFSR的反馈函数 定义1 若一个n次多项式满足以下条件:f(x)为既约多项式;f(x)可以整除(xm-1),m=2n-1;f(x)除不尽(xq-1),q>m,则称f(x)为本原多项式。 定理1 f(x)为GF(p)上的m次既约多项式,且f(x)可以整除(xp^m-1-1),而当r m-1时,则f(x)不能整除(xp^m-1-1),那么f(x)为GF(p)上的m次本原多项式。 依据以上定理和定义,采用设计系统在计算机上找到了部分本原多项式,结果见表2。 表2 LFSR的部分本原多项式 为了简化实现函数所需的硬件,选定的一组简单的LFSR的线性反馈函数,其形式如下: 构造非线性组合函数 为了构造高次布尔函数f(x1,x2,x3,.,xn):GF(2)n→GF(2),可以先利用穷举搜索法搜索全部满足上述4个准则的低次布尔函数,然后再利用组合法构造高次布尔函数。 穷举搜索法 定义2 n元布尔函数f(x1,x2,x3,.,xn)是m阶相关免疫的(1≤m≤n-1),当且仅当对任意1≤i12<.m≤n和a1,a2,a3,.,an,下式成立: 定理2 n元布尔函数f(x1,x2,x3,.,xn)是m阶相关免疫性的(1≤m≤n-1),当且下式仅当对任意w=(w1,w2,w3,.,wn),1≤W(w)≤m都成立:Sf(w)=0。这里W(w)指向量w的重量,是函数f(x)的Walsh频谱。如果组合函数f(x)满足相关免疫性准则,那么它的Walsh频谱Sf(w)=0,对w∈GF(2)n,W(w)=1。严格雪崩准则与Walsh频谱有如下定理。 定理3 对布尔函数f(x):GF(2)n→GF(2),满足严格雪崩准则,当且仅当 成立。依据定理2和定理3对f(x)进行判定。基于以上理论,通过设计系统,可以找到n=5的满足要求的部分非线性组合函数。 组合构造方法 对于该方法,有以下引理和定理。 在函数集Im,n中。 伪随机序列的测试 穷举搜索法 1)平衡特性。如果样本中的0和1的比特总数被这个样本长度除,得数都是0.5,则平衡特性得到满足。 测试方案与步骤 测试结果分析 表3 随机密钥测试结果 加密芯片的硬件实现 整个设计采用Altera公司的FPGA实现。系统由图3所示5个功能区组成:加密控制器;初始密钥存贮区;初始密钥寄存区;会话密钥寄存区;伪随机序列生成区。 图3 加密芯片的系统框图 图3反映了整个伪随机序列生成器的结构和各功能模块的连线。当加密功能选中时,加密芯片首先从初始密钥存贮区中将初始密钥读至初始密钥寄存器。实际加密数据前,加密控制器会发出加密控制信号,并产生一随机数作为本次加密的会话密钥。该随机数经与基本密钥一起去控制密钥发生器的初态,用于产生加密数据的伪随机序列流。在本次设计中,采用Altera的FPGA开发系统Quartus II作为FPGA开发工具,并以VHDL语言作为输入工具,与传统的电路原理图输入法相比,VHDL输入法具有设计周期短,容易移植,容易修改和与工艺无关等特点。 结语 笔者设计了一个高速加密芯片,该芯片能够满足密码学安全领域对随机序列的高质量、高速度的需求,具有一定的现实意义。设计以LFSR为基础,为提高序列的复杂性,又将多个LFSR生成的序列进行非线性组合,以提高序列的安全性。对生成的序列进行了统计测试,随机测试结果表明,该伪随机序列具有一定的安全性,也便于高速硬件实现,满足保密通信领域的适时性要求。 |
标签: 非线性组合函数 加密芯片 伪随机序列 |
文章评论(0条评论)
登录后参与讨论