一种基于ieee802.1ae协议的gcm高速加解密器的制作方法

文档序号:7748405阅读:202来源:国知局
专利名称:一种基于ieee802.1ae协议的gcm高速加解密器的制作方法
技术领域
本发明涉及一种高速加解密器,具体地说是一种适用于IEEE802. IAE协议的GCM高速加解密器。
背景技术
2005年5月公布的IEEE802. IAE介质访问控制安全(MACsec)协议为以太网保护 提供了封装和加密框架,它将安全保护集成到有线以太网中,通过识别局域网上的非授权 站点,保护局域网不受被动接线、假冒、中间人以及某些拒绝服务等的攻击。GCM(Galois/Counter Mode)是一个高速的认证加密模式,分别用 AES (Advanced Encryption Sandard)的CTR(Counter)模式和定义在GF(2128)域上的Ghash函数,同时产 生密文和认证标签。IEEE802. IAE协议采用GCM算法对帧进行加/解密处理以及完整性校 验处理,更好地保证通信安全。GCM算法对数据进行加密时,有四个输入信号加密密钥K,初始化向量IV,明文P, 以及附加鉴别信息A ;有两个输出信号密文C和鉴别标识T。将P和A按128位分组,分别 记为P1,P2,P3,…,P(n-l),Pn* 和 A1,A2,A3,…,A(m_l),Am*。其中,Pn* 和 Am* 的长度 分别为u和v(l ≤u,v ≤128);其它分组长度皆为128位。GCM加密算法定义如式(1)所示。
<formula>formula see original document page 3</formula>其中,I I表示数据串连接;IenO返回64_bit的数据串长度;E(K,Y)表示用密钥 K对Y进行AES加/解密;函数incr ()是将参数的最低32位看成一无符号数,将其加1后 并取模232。GCM解密算法定义如式(2)所示。<formula>formula see original document page 4</formula>比较表达式(1)、⑵可知,GCM加解密电路可以复用。GHASH 函数定义为GHASH(H,A,C) = Xm+n+1,而 Xi,i = 0,· · · m+n+1 如式(3)所示。<formula>formula see original document page 4</formula>
乘法是定义在GF(2128)上的运算,约化多项式为式(4)。<formula>formula see original document page 4</formula>
GHASH函数的运算是一个迭代过程,顺序执行乘加操作,而乘法器单元具有较大的 延时,是提高吞吐率的瓶颈。所以目前尚缺少适用于ΙΕΕΕ802. IAE协议的高速GCM硬件实 现。2007年,Satoh A设计了一款GCM加密器。在GHASH模块设计了一种并行乘加器, 使GCM的吞吐率突破了 lOOGbps,达到162. 56Gbps (0. 13 μ m工艺),是目前发表的性能最好 的设计。然而进一步研究可以发现该设计的GCM硬件结构不能适用于IEEE802. IAE协议。 因为该设计的Ghash模块,要在数据传输开始时确定等待处理的分组数据总数,以控制并 行运算过程,这与数据传输过程的实际情况不符。

发明内容
本发明的目的是提供一种基于IEEE802. IAE协议的GCM高速加解密器,该加解密 器采用新型的并行乘加器,可以同时处理多组数据,而不需要预先确定等待处理的分组数 据总数。本发明数据处理速度快、硬件复杂度低。本发明的发明目的是通过以下技术方案来实现的一种基于IEEE802. IAE协议的GCM高速加解密器,其特征在于该GCM高速加解密 器包括信息提取模块,AES模块和Ghash模块;信息提取模块用于从输入数据中提取安全协 议密钥、安全通道标识、数据包号、目的地址和源地址,并根据不同的工作模式转换成对应 的初始密钥K、初始向量IV、附加信息A和明文P/密文C,并将数据传输给AES模块;AES模 块完成数据加/解密,并输出密文/明文;Ghash模块根据附加信息A和密文C,通过Ghash 函数产生鉴别标识T。
本发明中,Ghash模块采用并行乘加器,同时处理多组数据,不需要预先确定等待 处理的分组数据总数;Ghash函数输入(pq+n)组数据时,输出Xpq+n的表达式,即适用于 IEEE802. IAE协议的新型q度并行乘加器表达式如下
Xpq+n - (L (((A1H"十 A2IP-1 十L 十 AqH)十<formula>formula see original document page 5</formula>
L<formula>formula see original document page 5</formula><formula>formula see original document page 5</formula>
其中ρ,q,η为正整数,1≤η≤q。本发明中,所述AES模块包含密钥扩展模块和AES加/解密模块;其中,AES加/解 密模块采用全流水线结构,将该过程的内部循环全部展开,在每轮循环间插入一级流水线, 共有10级轮间流水线,同时每级流水线内部又采用6级子流水线结构,总计包含60级流水 线;密钥扩展模块为循环展开结构。本发明中的Ghash模块设计了一种新型的并行乘加器,可以同时处理多组数据, 而不需要预先确定等待处理的分组数据总数。为进一步提高加/解密速度,AES加/解密 模块采用了全流水线结构。另外,为了支持密钥每个时钟周期不断变化,AES中密钥扩展模 块设计了循环展开结构。本发明具有高速、低硬件复杂度的特点。本发明的设计方法适用于同类高速电路设计中;若采用多通道技术,本发明的吞 吐率有望得到进一步提高。


图1是本发明的结构框图;图2是本发明中AES加/解密模块的电路结构图;图3是本发明中密钥扩展模块的电路结构图;图4是本发明中Ghash模块的电路结构图(q = 2);图5 (a)至图5 (c)是本发明中Ghash模块的五输入实例图;图6是本发明的电路结构图。
具体实施例方式一种本发明所述的基于IEEE802. IAE协议的GCM高速加解密器,图1是本发明的 结构框图。该加解密器包括信息提取模块1,AES模块2和Ghash模块5,其中AES模块2 又包含密钥扩展模块3和AES加/解密模块4。信息提取模块1用于从输入数据中提取安 全协议密钥、安全通道标识、数据包号、目的地址和源地址,并根据不同的工作模式转换成 对应的初始密钥K、初始向量IV、附加信息A和明文P/密文C。AES模块2完成数据加/解 密,输出密文/明文。Ghash模块5根据附加信息A和密文C,通过Ghash函数产生鉴别标 识T。下面将分别介绍AES模块2和Ghash模块5的硬件设计和GCM的总体硬件实现。AES加/解密模块用来实现GCM-128加/解密功能,输入128位明文/密文,经过加/解密输出128位密文/明文。GCM-128加/解密算法如表达式(1)和(2)所示。为进一步提高加/解密速度,本发明的AES加/解密模块采用了全流水线结构,如图2所示。将该过程的内部循环全部展开,在每轮循环间插入一级流水线,共有10级轮间 流水线,同时每级流水线内部又采用6级子流水线结构,总计包含60级流水,最多可以同时 处理60组数据,加上初始轮密钥加的一个周期,经过初始61个时钟周期后,每个时钟都能 输出1组128位的密文/明文。AES的密钥扩展模块输入初始密钥K,经过密钥扩展输出11组128位的轮密钥(包 括初始密钥K)。由于在网络传输过程中,各个用户数据可能使用不同的密钥K。本发明的密钥扩展 模块设计了循环展开结构,以支持密钥每个时钟周期不断变化。如图3所示,该结构包含11 个密钥扩展单元,AES加/解密模块也包含了相同的流水设计,保证了两个模块能够高速协 调运算,密钥扩展模块的第零级到第9级密钥扩展单元有相同的结构,而第10级密钥扩展 单元的结构与前10级不同。其中,SubBytes表示将4个字节数据进行S盒运算;ShiftLeft 将每个字节数据循环左移一位。密钥扩展模块每个时钟周期输入一个初始密钥K,经过初始61个时钟周期后,每 个时钟都能输出11组128位的密钥,保证了 AES模块在密钥K不断变化时,仍能高速工作。Ghash函数的运算是一个迭代过程,顺序执行乘加操作,如表达式(3)所示。而乘 法器单元具有较大的延时,是提高吞吐率的瓶颈。提高Ghash函数运算速度的关键在于采 用并行的乘法运算替代顺序运算。现有的并行乘加器不适用于IEEE802. IAE协议,因为采用该并行乘加器的Ghash 模块,要在数据传输开始时确定等待处理的分组数据总数,以控制并行运算过程,这与数据 传输过程的实际情况不符。针对这一点,本发明设计了一种新型的并行乘加器,可完全适用 于 IEEE802. IAE 协议。先将Ghash函数的公式(3)进行展开,如表达式(6)所示,Xi不再是变量表达式 而是常量表达式,为并行运算提供了可能。<formula>formula see original document page 6</formula>由式(6)可以进一步总结,Ghash函数输入(pq+n)组数据时,输出Xpq+n的表达 式为式(5),其中p,q,η为正整数,1彡η彡q。由式(5)可以设计出一种适用于IEEE802. IAE协议的新型q度并行乘加器。以q =2为例,Ghash模块的电路结构如图4所示,该结构针对实际情况设计,不需要预先确定 等待处理的分组数据总数,只要对最后输入的一组数据进行判断,并行运算过程的控制逻 辑简单如果最后输入两个数据,则MUXl输出H2,MUX2输出H ;如果只有一个数据,则MUXl 输出H,MUX2输出0。图5是输入5个数据A1-A5时,Ghash模块五输入实例图。图5 (a)中,输入两个数据A1,A2,MUX1取H2,MUX2取H,经过两个周期输出X2如式(7a) ;X2与输入数据A3作异 或运算,结果存入寄存器Regl,A4存入寄存器Reg2,MUXl取H2,MUX2取H,经过两个周期输 出X4如式(7b),如图5(b)所示;最后输入一个128位数据A5,MUXl取H,MUX2取0,经过 两个周期输出X5如式(7c),如图5(c)所示。<formula>formula see original document page 7</formula>采用Synopsys DC工具进行逻辑综合,得出本发明中乘法器的关键路径延时约是 AES模块的两倍。因此本发明的Ghash模块采用图4中二度并行的结构,两个乘法器单元 并行工作,使Ghash模块的关键路径延时减半,平衡了 Ghash模块和AES模块的关键路径延 时,提高了电路速度。GCM每个时钟输入一组数据,先行缓存,经过两个时钟周期输入Ghash 模块,Ghash中的乘法器单元两个时钟周期完成一次乘法运算,从而突破了乘法器单元的较 大延时对速度的限制。按照上述分析,用DC进行逻辑综合时,注意Ghash模块中的乘法路 径采用多周期路径的方法,即两个时钟周期完成一次乘法运算。综上所述,基于IEEE802. IAE协议的GCM高速加解密器,其整体电路结构如图6所 示,包含密钥扩展模块(KEYEXP),AES加/解密模块(Enc/Dec)和二度并行的Ghash模块。 128位的寄存器Y作为计数器,每个时钟周期加1。当最后一组数据的长度小于128时,128 位的寄存器MASK用于数据掩码。Regl,Reg2是深度为128的寄存器,每个时钟周期输入一 个128位的数据,Regl,Reg2等两个时钟周期依次存满128位数据;若先输入一个128位的 数据存入Regl后,等一个时钟周期没有数据输入,则Reg2置零;若输入数据不满128位,则 添0补齐。本发明使用Fujitsu 0. 13ym 1.2V 1P8M CMOS工艺库进行逻辑综合,得到时钟频 率为764. 5MHz,最大吞吐率为97. 9Gbps,面积为547K门。引入硬件效率性能参数,定义如 下
<formula>formula see original document page 7</formula>本发明的硬件效率为178. 9Kbps/门,比目前发表的性能最好的设计硬件效率略 高。本发明采用新型的并行乘加器,可以同时处理多组数据,而不需要预先确定等待处理的 分组数据总数。为进一步提高加/解密速度,AES加/解密模块采用了全流水线结构。另 夕卜,为了支持密钥每个时钟周期不断变化,AES中密钥扩展模块设计了循环展开结构。本发 明具有高速、低硬件复杂度的特点。本发明的设计方法适用于同类高速电路设计中;若采用多通道技术,本发明的吞 吐率有望得到进一步提高。
权利要求
一种基于IEEE802.1AE协议的GCM高速加解密器,其特征在于该GCM高速加解密器包括信息提取模块(1),AES模块(2)和Ghash模块(5);信息提取模块(1)用于从输入数据中提取安全协议密钥、安全通道标识、数据包号、目的地址和源地址,并根据不同的工作模式转换成对应的初始密钥K、初始向量IV、附加信息A和明文P/密文C,并将数据传输给AES模块(2);AES模块(2)完成数据加/解密,并输出密文/明文;Ghash模块(5)根据附加信息A和密文C,通过Ghash函数产生鉴别标识T。
2.根据权利要求1所述的一种基于IEEE802.IAE协议的GCM高速加解密器,其特征在 于Ghash模块(5)采用并行乘加器,同时处理多组数据,不需要预先确定等待处理的分组 数据总数;Ghash函数输入(pq+n)组数据时,输出Xpq+n的表达式,即适用于IEEE802. IAE 协议的新型q度并行乘加器表达式如下Xpq+n = (L (((A1H"十 A2H"-1 十L 十 AqH)十Aq+,)W Aq+2W~l AlqH)@ LAp-^h" Ap-^Hq-1 ④L Θ ApqH) θ Apq^H-1 @L Apq^H其中P,q,η为正整数,1彡η彡q。
3.根据权利要求1所述的一种基于IEEE802.IAE协议的GCM高速加解密器,其特征在 于所述AES模块⑵包含密钥扩展模块⑶和AES加/解密模块⑷;其中,AES加/解密 模块(4)采用全流水线结构,将该过程的内部循环全部展开,在每轮循环间插入一级流水 线,共有10级轮间流水线,同时每级流水线内部又采用6级子流水线结构,总计包含60级 流水线;密钥扩展模块(3)为循环展开结构。
全文摘要
本发明公开了一种基于IEEE802.1AE协议的GCM高速加解密器,包括信息提取模块,AES模块和Ghash模块;信息提取模块用于从输入数据中提取安全协议密钥、安全通道标识、数据包号、目的地址和源地址,并根据不同的工作模式转换成对应的初始密钥K、初始向量IV、附加信息A和明文P/密文C,并将数据传输给AES模块;AES模块完成数据加/解密,并输出密文/明文;Ghash模块根据附加信息A和密文C,通过Ghash函数产生鉴别标识T。本发明可以同时处理多组数据,而不需要预先确定等待处理的分组数据总数。本发明数据处理速度快、硬件复杂度低。
文档编号H04L29/06GK101827107SQ20101016851
公开日2010年9月8日 申请日期2010年5月11日 优先权日2010年5月11日
发明者何书专, 吴志刚, 张川, 李丽, 李伟, 林军, 沙金, 潘红兵, 许俊, 赵晶晶 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1