一种基于FPGA的IPSec数据流高速处理系统及方法与流程

文档序号:11253990
一种基于FPGA的IPSec数据流高速处理系统及方法与流程

本发明涉及网络通信领域,特别涉及一种基于FPGA的IPSec数据流高速处理系统,还涉及一种基于FPGA的IPSec数据流高速处理方法。



背景技术:

安全性对于网络通信而言至关重要,IPSec是一套在IP层实现数据安全传输的协议框架,其处理流程主要包括密钥协商,SA(安全关联)、SP(安全策略)的管理以及AH(认证首部)、ESP(封装安全载荷)协议处理。其中密钥协商以及SA、SP的管理由于不是针对每个通信数据报文都需要进行的,因而不是影响IPSec处理速度的关键;而AH、ESP协议处理每个通信数据报文都要进行,因此AH、ESP的处理速度是影响IPSec处理速度的瓶颈。

AH为IP保文提供数据完整性、数据原始身份验证等服务;ESP为IP报文提供机密性、数据源验证、抗重播以及数据完整性等服务。AH和ESP都是用符合国际标准的加密算法和散列算法,如DES、3DES、AES、MAC-MD5、MAC-SHA等。这些加密和散列算法计算复杂,寻找高速的处理实现方法成为IPSec大规模应用的关键。目前,主要可以分为两种技术路线:基于软件的形式以及基于硬件的形式。基于软件的形式有灵活且成本较低的优点,但处理速度低,不能支持高速的加密通信需要;而基于硬件的形式与基于软件的形式相比,成本较高,但处理速度快,可以满足高速的加密通信需要。基于硬件的形式主要有专用安全处理芯片,目前也是主流的高速加密通信解决方案,但这类芯片的一个缺点是算法固定,无法支持动态扩展。



技术实现要素:

为解决IPSec数据流高速处理并兼顾算法的可扩展性问题,本发明给出了一种基于FPGA的IPSec数据流高速处理具体实现方法,在关键的AH、ESP协议处理上,不需要额外硬件资源配合,即可实现高速的加解密与认证运算,不仅支持DES、3DES、AES、HMAC-MD5、HMAC-SHA1等常见算法,也支持算法的扩展。

本发明的技术方案是这样实现的:

一种基于FPGA的IPSec数据流高速处理系统,包括:密钥协商模块和FPGA;

密钥协商模块在主控CPU中以软件方式完成,FPGA部分包括:输入处理模块、输出处理模块、SADB模块、SPDB模块、加/解密、认证处理模块;

输入处理模块,从输入数据中提取特征数据,利用这些特征数据对SPDB以及SADB进行搜索,得到输入数据的处理参数;

输出处理模块,对经过AH以及ESP处理的数据进行组合,送给输出;

SADB模块,存储与IPSec数据流处理相关的参数信息;

SPDB模块,存储对IP数据报提供何种保护以及具体的保护措施;

加/解密、认证处理模块,包括:ESP加/解密处理模块和认证处理模块;

ESP加/解密处理模块,根据SADB的搜索结果调用相应的加/解密算法对输入数据进行计算,得到加/解密后的数据;

认证处理模块,包括ESP认证处理模块和AH认证处理模块,根据SADB的搜索结果调用相应的认证算法对输入数据进行计算,得到认证结果;

可选地,所述加/解密、认证处理模块的具体结构包括:

每一级的BUF状态信息反馈到前级的ESP加/解密处理模块或认证处理模块,利用这些信息进行处理的启动控制,控制粒度为一个处理数据块,以防止BUF的溢出。

可选地,所述ESP加/解密处理模块由多个算法模块组成,包括DES、3DES、AES。

可选地,所述算法模块采用流水线技术实现。

可选地,所述认证处理模块也由多个算法模块组成,包括HMAC-MD5、HMAC-SHA1。

可选地,所述算法模块采用流水线技术实现。

本发明还提出了一种基于FPGA的IPSec数据流高速处理方法,包括:密钥协商模块和FPGA;

密钥协商模块在主控CPU中以软件方式完成,FPGA部分包括:输入处理模块、输出处理模块、SADB模块、SPDB模块、加/解密、认证处理模块;

输入处理模块,从输入数据中提取特征数据,利用这些特征数据对SPDB以及SADB进行搜索,得到输入数据的处理参数;

输出处理模块,对经过AH以及ESP处理的数据进行组合,送给输出;

SADB模块,存储与IPSec数据流处理相关的参数信息;

SPDB模块,存储对IP数据报提供何种保护以及具体的保护措施;

加/解密、认证处理模块,包括:ESP加/解密处理模块和认证处理模块;

ESP加/解密处理模块,根据SADB的搜索结果调用相应的加/解密算法对输入数据进行计算,得到加/解密后的数据;

认证处理模块,包括ESP认证处理模块和AH认证处理模块,根据SADB的搜索结果调用相应的认证算法对输入数据进行计算,得到认证结果;

可选地,所述加/解密、认证处理模块的具体结构包括:

每一级的BUF状态信息反馈到前级的ESP加/解密处理模块或认证处理模块,利用这些信息进行处理的启动控制,控制粒度为一个处理数据块,以防止BUF的溢出。

可选地,所述ESP加/解密处理模块由多个算法模块组成,包括DES、3DES、AES,所述算法模块采用流水线技术实现。

可选地,所述认证处理模块也由多个算法模块组成,包括HMAC-MD5、HMAC-SHA1,所述算法模块采用流水线技术实现。

本发明的有益效果是:

(1)处理速率高;

(2)集成度高;

(3)支持算法的扩展。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种基于FPGA的IPSec数据流高速处理系统的原理框图;

图2为本发明从输入数据到输出数据之间的处理流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明的基于FPGA的IPSec数据流高速处理系统包括密钥协商模块和FPGA。

鉴于密钥协商模块对处理速率要求不是很高,本发明将这部分在主控CPU中以软件方式完成,而具体的加/解密、认证以及其他相关处理由FPGA完成,以实现高速处理能力。

FPGA部分主要包括5个模块:

输入处理模块,主要功能是从输入数据中提取特征数据,利用这些特征数据对SPDB以及SADB进行搜索,得到输入数据的处理参数;

输出处理模块,对经过AH(认证首部)以及ESP(封装安全载荷)处理的数据进行组合,送给输出;

SADB(安全关联数据库)模块,主要存储与IPSec数据流处理密切相关的算法、密钥等参数信息;

SPDB(安全策略数据库)模块,主要存储对IP数据报提供何种保护以及具体的保护措施;

加/解密、认证处理模块,包含:

ESP加/解密处理模块(ENC/DEC),根据SADB的搜索结果调用相应得加/解密算法对输入数据进行计算,得到加/解密后的数据;

认证处理模块(AUTH)包括ESP认证处理模块和AH认证处理模块,根据SADB的搜索结果调用相应的认证算法对输入数据进行计算,得到认证结果。

加/解密、认证处理模块的具体结构如图2所示:

其中,每一级的BUF设计,主要起到缓冲以及位宽的转换。以DES加解密为例,输入数据块的位宽要求是64bit,而HMAC算法则要求512bit,因此,需要将输入数据转换成加解密操作对应的位宽。而经过加解密、认证计算处理后的数据又需要结果数据位宽适配到后续处理所要求的位宽上。

每一级的BUF状态信息(主要包括空、满状态)反馈到前级的ESP加/解密处理模块(ENC/DEC)或认证处理模块(AUTH),利用这些信息进行处理的启动控制,控制粒度为一个处理数据块,以防止BUF的溢出。

ESP加/解密处理模块(ENC/DEC)由多个算法模块组成,包括DES、3DES、AES等,并且可以根据需要进行添加、替换,满足可扩展需要。具体算法模块采用流水线技术实现,以DES为例,每个数据块(64bit)加解密处理需要16个时钟周期,当采用125MHz的处理时钟时,处理速率可达500Mbit/s,采用4级流水线处理,最高速率可达2Gbit/s。

类似,认证处理模块(AUTH)也由多个算法模块组成,包括HMAC-MD5、HMAC-SHA1等,并且可以根据需要进行添加、替换,满足可扩展需要。具体算法模块采用流水线技术实现,以HMAC-MD5为例,每个数据块(512bit)MD5处理需要64个时钟周期,一个数据块的HMAC-MD5处理需要连续4次的MD5处理,因此需要256个时钟周期,当采用125MHz的处理时钟时,HMAC-MD5处理速率可达250Mbit/s,采用4级流水线处理,最高速率可达1Gbit/s。

本发明的基于FPGA的IPSec数据流高速处理系统及方法,处理速率高,集成度高,支持算法的扩展。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

再多了解一些
当前第1页 1 2 3
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1