LJgibbs · 2021年12月15日

国密标准IPsec VPN协议处理及其密码IP设计与FPGA实现

写在前面

虽然在毕业后,不再从事相关的研究或者工作,在这里贴出我的硕士毕业论文,供大家参考。
需要 pdf 版本的读者可以联系我,好像目前还没收录在知网。

第一章 绪论

1.1 课题研究的背景和意义

随着网络技术及其应用的发展,人们通过网络即可获取信息、接入服务并连接彼此。截止2018年,我国网民规模已达8.29亿,第三方在线支付规模达208万亿 [1] ,并有超过3000万台工业终端接入网络 [2] 。网络推动社会数字化发展,网络数据的经济价值日益增长,并且网络正向在线政务、工控领域等事关国家安全的关键领域延伸。用于保护公共网络中敏感数据传输的安全通信技术的重要性不断凸显。

最初,企业分支机构间基于公共网络的安全通信需求推动了多种虚拟专用网(VPN,Virtual Private Network)技术的发展 [3] 。VPN技术在公用网络上为用户构建虚拟隧道链路,通过隧道传输的数据在加密和认证技术的保护下,其机密性与完整性得到了保证 [4] 。现今,企业分支机构与信息基础设施设置呈现分布式趋势,面对随之产生的专用网互联需求,企业需要能够在公共网络上,安全连接各分支机构、云基础设施、雇员以及客户的VPN技术与设备。据数据分析公司IDC预测,2021年中国90%以上的企业将使用云服务构建基础设施 [5] 。云基础设施的普及将持续推动商用VPN需求的增长。同时,随着物联网(IoT,Internet of Things)等新兴网络技术的发展,多样的网络应用场景发展出与传统商用网络不同的安全需求,如极低延迟的安全协议处理 [6] 。工业互联网(IIOT,Industrial IoT)通过互联工业终端与网络,推动工业生产协同智能化发展。为了防止不同工业网络间的数据共享引入公共网络中的安全威胁 [7] ,工业网络互联有必要采用VPN技术,在网络边界部署安全措施以保护内部脆弱的工业终端。其中,安全设备与措施需要满足工业控制的极低延迟需求。

基于互联网安全协议(IPsec,Internet Protocol Security)的IPsec VPN技术具有在网络层灵活透明部署的优势,是普遍使用的主流VPN技术之一 [8] 。安全网关是实现IPsec VPN的关键组件,作为网络边缘设备,网关的性能决定了IPsec报文处理的吞吐与延迟等指标。目前主流商用安全网关基于多核专用网络处理器设计,通过软件实现灵活的协议处理与转发。针对IPsec处理中所需的密集型密码运算,引入硬件密码电路以提高运算性能 [9] 。但是,传统商用IPsec VPN产品在以下方面较难满足工业互联网等新型网络场景下的安全需求:

(1)对国密算法与标准的支持。随着我国信息安全建设不断增强,以及“棱镜门”等事件展现的外部信息安全威胁,我国加快了信息安全领域相关法律制定,并在关键领域实现国产技术与标准的替代。我国2019年10月通过的《密码法》规范了密码应用和管理,其中规定国民经济发展和社会生活的关键信息采用国密商用密码保护 [10] ,比如部分工业网络通信 [11] 。2014年,国家密码局制定并推出针对我国自身的网络安全情况而制定的《IPSec VPN 网关产品规范》 [12] ,使用受信任的加密算法和数字证书介质,采用自主可控的技术标准保护信息安全。但是相较于长期使用的国际标准,目前国内外厂商对国密标准的支持尚不完善,仅部分国内厂商在产品中增加了国密算法或推出基于国密标准的IPsec VPN产品。

(2)满足工业互联网等应用场景下的低延迟需求。工业互联网场景中存在需要有界低延迟的实时性应用,其中工业流量中同步实时流(Isochronous real-time traffic)对时延和抖动的要求最高,其周期性发送的数据必须在截止时间内到达对端,最小截止时间要求可达100us,数据的丢失或延迟将造成严重的系统故障 [13] 。由于处理器与密码电路间固有的数据搬运开销、软件系统调用产生的上下文切换开销以及协议栈各层间的报文拷贝开销 [14] ,IPsec VPN商用产品软件与专用密码电路的组合较难向实时性应用提供稳定且极低的协议处理延迟,无法在极端延迟条件下满足工业网络的多安全域架构需求 [15] 。

(3)实现安全协议以及算法的持续演进。以网络承载的信息价值为目标,网络攻击不断推陈出新,需要安全协议及其实现保持演进更新。2017年2月,谷歌宣布实现SHA-1算法快速碰撞,将碰撞效率提升近10万倍,证明SHA-1算法已不再安全,需要新的算法替代 [16] 。2018年8月发布的TLS1.3,废弃了长期使用但安全性不足的3DES-CBC等分组密码,SHA-1,MD5等哈希算法以及RSA密钥交换算法等 [17] 。虽然TLS1.3的推广还假以时日,但它证明了安全协议算法不断演进的需求。而基于专用密码电路的IPsec VPN产品,较难实现算法电路的升级迭代。

(4)性能优化的非对称国密密码算法硬件模块。国密标准IPsec VPN在安全连接建立阶段需要调用SM2非对称密码算法鉴别通信方身份与保护信息交换。由于SM2运算基于GF(p)下椭圆曲线点运算,涉及运算密集的大数运算,SM2软件实现复杂并且效率较低。工业互联网等场景中拥有数量众多的节点,在大量节点密集地与网关建立或更新安全连接时,会进一步放大SM2算法对于计算能力的需求,因此有必要在安全网关中采用针对SM2椭圆曲线点运算性能优化的硬件电路,提供足够的SM2运算性能,以防止安全服务中断。

为满足上述需求,本文基于现场可编程逻辑门阵列(FPGA,Field Programmable Gate Array)开发IPsec VPN安全网关的协议处理与密码引擎两项核心组件。协议处理组件采用硬件电路实现完整的国密IPsec VPN标准报文转发、协议处理功能,并对延迟性能进行优化,能够提供稳定与极低的处理延迟,可应用于工业控制等实时性场景。本文所设计的密码引擎支持国密算法,包括完整的国密SM3、SM4电路以及SM2算法点运算电路,并针对IPsec应用进行优化。此外本文设计所基于的FPGA平台,具有可重配置特性,能使组件具有支持算法与标准后续演进的能力 [18] 。本文工作对于研究基于国密算法标准,工业互联网等新型网络场景下的极低延迟安全通信技术实现、高性能国密算法电路实现优化具有一定的工程意义。

1.2 国内外研究现状

上节阐述了IPsecVPN技术的需求不断增长,向实时性应用领域延伸以及我国正在推动关键领域采用国密标准协议与算法的研究背景。本节首先对目前国密标准IPsec VPN的相关实现工作进行研究,而后针对IPsec VPN硬件实现的两项关键技术:IPsec协议实现优化以及国密算法电路的研究现状展开调研。

1.2.1 国密标准IPsec VPN实现

在国家密码管理局制定发布国密标准IPsec VPN后,学术界对于国密标准协议实现开展了大量研究工作。但是由于国密标准制定时间较晚,因此目前对协议标准的实现主要基于通用处理器平台。针对StrongSwan、OpenSwan等开源IPsec软件不支持国密算法的现状,研究人员通过修改源代码的方式增加对国密算法的支持。西安电子科技大学在该方向上进行了许多研究与工程实现:文献 [19] 基于开源软件OpenSwan设计符合国密标准的IPsec VPN服务器软件。文献中作者修改IPsec软件源代码,并向内核加密框架注册外部密码设备驱动,使软件能够调用硬件密码卡实现国密算法。经过测试,其TCP双向传输速度达139Mbps。文献 [20] 设计基于请求队列等模式,优化IPsec内核调用外部密码运算设备的方式以提高效率,将TCP单向速率提升至400Mbps。文献 [21] 在AM335X嵌入式平台基于开源软件strongSwan实现国密标准IPsec VPN ,采用精简的USB加密卡驱动调用国密标准算法替换原有算法,TCP速率达到73.7Mbps,可满足嵌入式应用需求。

1.2.2 IPsec 协议实现与优化加速

国内最早的IPsec实现可追溯到2001年,文献 [22] 在Linux上建立了基于IPsec协议的防火墙,但基于操作系统内核实现的IPsec性能较低,只适合小型网络应用。为了适应网络带宽以及规模的发展,国内外学界对提高IPsec实现的带宽,延迟以及抖动等性能指标展开研究,引入专用密码运算指令集、DPDK高性能IO引擎等软件加速技术,并提出基于多核NPU [23] [24] ,GPU [25] [23] ,ASIP [27] ,FPGA,ASIC等硬件平台的IPsec加速实现。

DPDK(Data Plane Development Kit)可以为网络应用程序提供直接访问网卡(NIC,Network Interface Controller)的接口,报文无需经过操作系统内核,减少上下文切换等开销。在2020年最新发表的研究论文中,韩国汉阳大学团队 [14] 提出一种基于DPDK的IPsec加速方案,将具有性能瓶颈的IPsec组件迁移至数据层面,相较现有方案获得3.54倍吞吐以及2.54倍延迟性能提升。但对于IPsec VPN等密码运算型应用,DPDK实现每处理器核运算效率有限 [28] 。重庆大学团队与华为合作 [29] 实验分析了ARMv8密码运算指令对于IPsec协议中AES算法的加速效果,通过针对特定算法细致的驱动与内存管理优化,获得最高2倍的吞吐提升。西安电子科技大学团队 [30] 基于IPsec协议报文处理并行性,修改操作系统内核以及中断模式,通过将网卡通道与处理器核绑定,实现以报文为单位的多核并发结构提高吞吐。但是内核修改可能影响应用运行,不具通用性。

通用处理器进行密码等密集运算不仅存在性能瓶颈,并且考虑到数据中心单个CPU核每年900美元的潜在商业价值 [31] ,也不具经济性。以FPGA为代表的异构硬件采用定制数据通路,消除冯·诺依曼架构复杂的指令控制逻辑与共享内存的限制,可通过流水线并行、数据并行以及请求并行可加速密码等密集型运算 [31] 。通过异构硬件卸载密码运算提高IPsec实现性能,满足不断提升的网络带宽需求,是近来学术界的研究热点。

2010年,我国清华大学团队 [32] 发表了一种同时支持IPsec与SSL协议的网络安全处理系统设计。其中包括一个基于FPGA的密码加速引擎,引擎通过PCI总线与处理器连接。引擎具有高效的双路单向数据传输总线以及优化的异构多核密码引擎任务调度。配合加速引擎,系统可实现最高1.85Gbps的IPsec协议吞吐。美国乔治梅森大学团队 [33] 在2011年ReConFig会议上发表了一种基于FPGA的可重构IPsec协议密码算法硬件加速器设计。设计利用部分可重构特性,运行时动态按需重构硬件为AES、SHA或者蒙哥马利模乘算法单元,相比独立实现三种算法,减少了34%硬件资源消耗。2012年,德国波鸿鲁尔大学团队 [34] 在ReConFig会议发表了一个基于低成本FPGA器件(Spartan-3)的轻量级可重配置IPsec密码加速器IPSecco。IPSecco采用PRESENT等轻量级算法,并优化ECC算法电路的面积,在提供足够安全性的同时减少资源使用,适合应用于轻量级设备。2016年中科大与微软 [35] 在SIGCOMM会议合作发表ClickNP,一种基于FPGA的商用服务器硬件加速的模块化编程模型。ClickNP可通过组合密码算法元件、数据块调度元件等可编程组件配置为IPsec网关应用,延迟低至13us,而相同负载下软件实现的延迟可高达5ms。2018年,上海交通大学团队 [36] 基于Intel QAT专用加速设备设计安全网关框架TurboGW,通过流整形器聚合算法优化吞吐性能,达到接近线速的123Gpbs。同年,华中科技大学团队 [37] 在ICDCS会议提出了基于FPGA的网络功能加速平台DHL,由DPDK框架负责报文转发,FPGA作为加速器支持多种计算密集应用卸载。配置为IPsec网关吞吐可达39.6Gbps,延迟低至10us。

上述硬件加速方案中协议解析、报文转发等操作仍由CPU执行,为进一步降低主机CPU在网络应用中的负载,出现了集成报文转发,协议处理以及密码运算的IPsec协议处理器设计,能够独立高效地处理IPsec报文。在2005年IEEE IPDPS会议上,华盛顿大学团队 [38] 基于FPGA提出一种数据路径与控制路径相分离的IPsec协议处理器设计,硬件可以完全控制数据处理,仅在必要时调用软件,摆脱控制软件IO瓶颈对系统性能的限制。同年,西北工业大学团队 [39] 提出了我国最早的芯片级IPsec实现方案,并基于FPGA进行了验证,重点对消息验证码的实现方式做了研究,支持HMAC-MD5以及HMAC-SHA-1算法。2010年在IEEE Trans on VLSI期刊上,我国新竹清华大学团队 [40] 发表了一个基于片上网络的IPsec处理器设计方案,兼顾密码运算与协议处理功能。处理器36个密码运算核以mesh结构互联,以低于传统总线结构的通信开销,实现双向10Gbps吞吐。同年我国清华大学团队 [41] 提出了一种应用于10Gbps网络的IPsec协议IP核设计。IP核中的多核高性能64位处理器负责安全数据库的查找,根据查找结果过滤IPsec数据报文,交付安全协议处理模块缓存区。硬件协议处理模块根据处理器的控制信号,读取缓存报文进行处理。2014年,清华大学团队 [42] 在先前研究的基础上,提出了一种网络安全处理器设计,主要改进在于由硬件模块管理安全数据库以及过滤报文,减轻了处理器负担,从而可使用单核嵌入式处理器替换高性能多核处理器。此外应用改进的iSLIP调度算法实现16个协议处理核与密码运算核间的高效数据调度,支持线速处理功能。2016年我国东南大学与江南计算技术研究所 [43] 合作研发了一款IPsec协议安全处理器,其能够支持IPv6版本的IPsec协议,采用AES与3DES等加密算法。2017年,爱尔兰利莫瑞克大学团队 [44] 发表了一种基于FPGA设计的IPsec AH协议IP核,采用目前较新的SHA-3作为认证算法。该设计划分为SHA-3算法模块以及AH协议封装模块,工作于BITW(bump in the wire)模式,可作为安全网关为网络内的其他设备提供无感知的IPsec服务。该设计峰值吞吐达2.25Gbps,适用于高速物联网应用,其不足在于仅能对报文进行认证,而无法提供数据加密服务。2018年波兰华沙科技大学团队 [45] 设计了一种可适应不同网络带宽的高性能IPsec协议处理器,协议处理流程划分为多级独立工作的子单元,各单元间通过交换模块相连。利用FPGA可重配置特性,可通过调整子单元数量适应不同的网络带宽需求。

商用IPsec协议处理器产品方面,以美国Marvell公司,以色列Mallanox等公司为代表的国际厂商拥有完整成熟的产品线。如Marvell公司NITROX ®系列安全处理器,IPsec处理吞吐高达100Gbps,可配置为密码运算加速器或协议处理器 [46] ,但目前国际厂商对国密算法与标准的支持有限。国内厂商以华为公司为代表,其IPsec安全网关等产品搭载海思自研多核网络处理器并支持国密算法 [47] ,目前尚未推出针对处理延迟优化的相关产品。

1.2.3 国密密码算法硬件实现

密码运算硬件电路一方面可以释放CPU资源,提高运行性能,另一方面也具有更高的安全性。IPsec实现的关键难点之一在于设计高效的密码电路,包括SM4为代表的加密算法、SM3为代表的杂凑算法等。早先针对IPsec协议密码算法的硬件实现研究主要集中于AES,DES,SHA等国际商用算法 [48] [43] ,随着国密标准的制定与应用,对国密IPsec VPN标准采用的SM4、SM3以及SM2算法研究与硬件实现不断涌现。

SM4算法(原名SMS4)早期应用于无线局域网络与智能卡等对吞吐要求不高的场合,因此最初设计重点在于面积优化。2006年,浙江大学团队 [50] 发表首篇基于FPGA的SMS4算法实现论文,其中紧凑型设计采用单轮基本迭代结构,并利用FPGA块存储器(BRAM)实现S盒变换电路,进一步减少逻辑资源开销,仅使用380个Slices单元达到740Mbps吞吐。希腊开放大学团队 [51] 在2012年发表的IEEE会议论文,在文献 [50] 的基础上进一步改进面积和吞吐指标,提出一种针对WLAN网络优化的SMS4架构。2014年,中科院信息工程研究所团队 [52] 发表IEEE会议论文,采用参数预计算以及S盒复用技术,提出一种超小面积方案,资源消耗相比文献 [50] 减少30%。随着SM4算法应用于IPsec等高性能场景,针对SM4加密算法在CBC模式下并行受限的问题,解放军信息工程大学团队 [52] 基于多SM4引擎提出任务分配机制,以报文为单位划分任务,实现加密算法并行处理,解决网络应用中的加密性能瓶颈。四引擎架构下可实现高达2.83Gpbs吞吐。

SM3算法于2010年由清华大学等机构制定发布,次年中科院信息工程研究所团队 [54] 提出首项基于FPGA的SM3硬件实现设计,并评估了SM3硬件实现性能,比较发现具有更高安全性的SM3与SHA256实现性能接近。2012年,他们发表论文对先前的工作 [54] 进行改进 [55] ,利用4周期消息载入延迟,通过移位完成寄存器初始化,减少用于初始化的资源开销。同年北京电子科技学院团队 [56] 在分析四种哈希函数实现策略的基础上,基于FPGA设计二度循环展开SM3架构,在单周期内完成两轮迭代,以硬件资源占用提升的代价,时间开销减少11%。2014年华中科技大学团队 [57] 提出一种紧凑SM3算法ASIC设计,将单轮压缩函数拆分至7个周期,期间复用2个加法器实现总共8次加法。2015年清华大学团队 [57] 提出一种64级流水线SM3架构,FPGA实现吞吐高达75.54Gbps,对于多组消息并行处理有显著优化效果,可将吞吐提高至多66.5倍。2018年,Intel研究团队 [59] 在IEEE European Solid State Circuits Conference上发表SHA256/SM3哈希算法芯片设计,基于两种算法相同的数据位宽和以及32比特加法等共有运算,采用逻辑复用减少单一芯片上实现两种算法的总面积,通过在单颗芯片上实现多种哈希算法,降低了推广SM3算法的成本。

SM2算法电路的优化工作目前存在以下研究方向 [60] :采用多路模运算并行架构实现点运算 [61] 、改进底层大数模运算单元运行效率以及针对特定素域以及曲线特点进行优化。

其中,并行架构通过并行底层模运算提高点加与倍点运算效率。文献 [62] 提出一种高性能并行点运算架构,有限域模运算通过并行算术单元(PAU,Parallel arithmetic unit)进行,PAU中包括1个模加减器以及4个优化的模乘器。该并行设计以面积稍许增加为代价,获取了较同类实现1.96倍的性能提升。文献 [63] 基于倍点与点加运算中数据依赖性分析,提出并行模乘与模加减运算的优化方案,将倍点运算周期减少9.4%。但受限于点加运算的数据依赖性特点,该方案仅能降低3.7%的点加运算周期。文献 [64] 基于双模乘器设计并行压缩的点运算调度算法,减少点运算中数据通路以及存储空间开销,并通过设计独立的平方模运算单元降低运算。文献 [66] 将Y坐标压缩至其他坐标中,从而减少Y坐标相关的模乘步骤以及数据依赖,采用改进的蒙哥马利点乘算法,并行点加与倍点运算。

此外,改进模乘单元性能能够从底层加速点运算,方法包括针对特殊曲线优化以及高效地利用硬件运算资源。文献 [67] 针对SM2所选用的素数域伪梅森素数性质,使用129位宽的乘法器搭配快速模约减可在6个周期下完成模乘运算。文献 [68] 所设计的ECC处理器中,采用基于扩展流水线技术的Karatsuba-Ofman乘法器,为上层算法优化模乘运算性能。文献 [69] 有效地利用了Xilinx Virtex5器件内嵌的DSP48E硬核,设计了高效的大数乘法单元,数据通路位宽设计为17比特以适配DSP48E端口位宽,在提高运算性能的同时,减少对查找表等可编程资源的消耗。

近年国内学术界成功流片多款国密算法密码芯片,2018-19年期间,广东工业大学团队 [70] [71] 设计实现基于SM2/3/4国密算法密码芯片,应用于物联网领域的加解密与签名验签应用。目前尚未出现面向IPsec应用的国密算法密码芯片设计,此外基于FPGA的国密算法电路可与其他IPsec硬件模块集成,因此具有研究价值。

由上述针对IPsec协议及其密码算法实现文献的调研可得到IPsec硬件实现相较于软件方案具有更高的性能与效率的结论。但是,国密标准IPsec现有文献主要基于软件平台实现,据作者所知,目前尚未有集成国密算法与协议处理的硬件实现。

虽然相较于硬件实现,基于开源软件以及外部加密卡的实现方案具有灵活、易于部署等特点。但是该方案受限于处理器性能瓶颈以及与外部硬件的通信开销,在吞吐、延迟性能方面有所不足,无法应用于对性能要求较高的场景。

针对现有国密IPsec实现存在的不足,本文基于单个FPGA芯片设计集成国密IPsec协议与算法的硬件实现,具有集成与小型化特点。此外,硬件实现吞吐与延迟性能的提高,使国密标准IPsec应用能够延伸至工业控制等时延敏感的场景中。并且,本文通过在所设计的协议实现的基础上,进一步优化延迟,满足工业场景中最为苛刻的延迟需求,具有一定的工程价值。

1.3 本课题研究的主要内容和目标

1.3.1 课题研究的目标

本课题围绕国密标准IPsec VPN安全网关硬件组件实现展开两方面研究内容:低延迟国密标准IPsec协议处理组件与国密密码算法引擎硬件电路设计优化,各部分的研究目标如下:

(1)设计实现工作于1000Mbps以太网的IPsec协议报文处理组件,提供报文IPsec封装解封、加解密运算、基于安全策略的报文转发以及报文分片重组等功能,报文处理吞吐性能达到900Mbps以上。针对延迟敏感应用,通过数据通路,安全信息查找方法以及密码电路架构等多方面联合优化报文处理延迟性能,将最小报文处理延迟降低至4us以下。

(2)设计实现适用于千兆国密标准IPsec VPN协议处理的国密HMAC-SM3消息认证算法与SM4-CBC分组算法密码电路。密码电路吞吐性能超过900Mbps,基本满足千兆以太网带宽,并通过电路低延迟设计优化报文密码运算延迟。

(3)设计国密SM2算法椭圆曲线点运算并行优化电路。通过并行架构、预计算机制以及针对SM2曲线优化的大数相乘快速模约减算法,将点运算效率提升20%,单次SM2点乘运算时间降低至300us。

1.3.2 课题研究的主要内容和创新点

本课题主要内容和创新点包括以下几点:

(1)通过对国密IPsec VPN标准详细的调研与学习,采用Verilog硬件描述语言设计实现了基于FPGA平台的国密标准IPsec协议处理组件。协议处理组件支持报文出入站封装解封、加解密与认证运算、安全策略转发等功能。搭建基于回环链路的仿真平台,验证协议处理功能的正确性。

(2)通过对IPsec协议处理的延迟构成进行分析,对所设计的协议处理组件的延迟性能进行优化。提出一种基于数据通路、密码运算以及安全信息查找方法的多维度延迟优化设计,并通过仿真平台进行验证。与本系统未优化前相比,报文处理延迟最少降低20%,与同类FPGA实现相比,本文对小数据报文具有更低的处理延迟。

(3)通过分析SM4算法以及比较不同实现架构,结合需求选择SM4实现架构。针对单路SM4-CBC架构吞吐性能不足,无法适应网络带宽需求的问题,提出并实现一种基于双路并行加密与二级流水解密的SM4-CBC加解密架构,加解密吞吐分别为1000Mbps与969.7Mbps。通过功能仿真验证SM4-CBC模块的功能,并将其综合实现后的性能与资源使用情况与现有文献进行对比。

(4)通过分析比较不同架构下SM3算法实现的性能与资源情况,基于应用场景的带宽与延迟需求,选取消息扩展压缩并行的顺序迭代架构作为实现方案。分别实现SM3算法中消息填充,扩展以及迭代压缩步骤对应的逻辑模块。采取预载寄存器组以及快速移位路径优化消息扩展中的数据载入延迟,将SM3整体吞吐提升4.4%。采用并行CSA加法器优化压缩函数关键路径,最高吞吐性能相比综合工具默认策略提升12%。基于SM3模块构建认证算法HMAC-SM3模块,采用预计算参数架构减少SM3运算次数与延迟。认证算法模块最大吞吐达到945Mbps,报文认证延迟低至1.6us,可满足千兆IPsec协议处理系统需求。最后建立仿真平台验证SM3模块功能。基于Xilinx公司Zynq-7020平台综合实现后,与现有实现性能指标进行比较。

(5)针对SM2算法中,有限域点运算串行调度方法性能较低的问题,提出采用三路并行架构加速点运算实现,并分析不同并行架构下的加速性能及瓶颈。针对传统并行算法加速性能受到关键运算数据依赖性制约的现象,提出点运算间预计算优化机制,减少数据依赖性对运算并行化的制约,优化调度算法效率。点运算所调用的底层模乘运算采用大数分治乘法算法配合快速模约减模实现,在8个周期完成p256素域模乘运算。硬件仿真表明本文提出的点运算调度算法效率相比现有并行方案提升20-33%,基于并行架构的点乘运算运行时间降低至250us,相较同类实现具有明显性能优势。

1.4 论文结构安排

本论文各章节的主要内容如下:

第一章:介绍课题研究的背景和意义,以及目前国内外的IPsec协议处理硬件实现和国密密码电路的研究现状;

第二章:对IPsec安全体系进行简单介绍,分析比较了IPsec VPN国密标准与国际标准的区别,并对国密标准中的协议处理流程进行了详细的描述。此外,介绍了国密标准中采用的国密密码算法,包括非对称加解密算法SM2、杂凑算法SM3、消息认证码算法、分组对称加密算法SM4以及分组密码的工作方式,为后续章节的协议处理系统以及密码电路硬件实现提供理论基础。

第三章:阐述本文IPsec协议处理系统的整体架构、外部接口、内部各功能模块的设计与实现。描述协议处理组件通过密码接口模块中对SM2、SM3、SM4等密码算法单元的高效调用。对影响报文处理延迟的因素展开分析,描述了多角度的延迟优化设计。对于系统关键的报文出入站处理流程,安全关联查找,报文分片与重组功能与低延迟设计,基于仿真平台,进行了全面的功能仿真,分析延迟性能并与同类硬件实现进行比较。基于Xilinx Zynq平台综合本文设计,对资源使用情况进行分析。

第四章:详细描述SM4分组加密密码的算法与硬件实现结构,分析比较SM4算法不同的实现方式,并结合千兆国密标准IPsec系统应用场景选择合适架构。针对单路SM4-CBC架构吞吐性能不足,无法适应网络带宽需求的问题,提出一种基于双路并行加密与二级流水解密的SM4-CBC加解密架构,实现满足IPsec网关性能需求的高吞吐SM4-CBC加解密电路。搭建仿真平台对所设计的SM4模块功能进行验证,并根据目标平台下的综合结果,与现有文献实现进行比较。

第五章:详细描述SM3杂凑密码的算法与硬件实现结构,在四种SM3算法实现方式中,选取顺序迭代架构实现IPsec应用SM3模块。依次讨论SM3中消息填充,消息扩展以及迭代压缩三项步骤的实现与优化。阐述基于SM3模块构建的HMAC-SM3模块设计。最后对模块进行功能验证以及性能分析,并与现有文献进行比较。

第六章:描述SM2非对称密码的算法实现层次,并对其中的点运算与模运算层次展开分析。比较不同并行架构的加速比以及并行瓶颈,对点加以及倍点运算中的运算依赖进行分析,设计基于预计算的调度机制。针对SM2曲线上的伪梅森素数性质,选取大数乘法后快速模约减的方法实现底层模乘运算。最后对优化后的三路并行SM3点运算模块进行功能验证以及性能分析,并与现有文献进行比较。

第七章:总结本论文的主要工作,并对该课题的发展做出展望。

1.5 参考文献

  • [1]. 中国互联网协会. 中国互联网发展报告(2018).[R/OL].[2020-05] http://www.cbdio.com/image/site2/20190712/f42853157e261e92793d3f.pdf.
  • [2]. 工业互联网产业联盟. 中国工业互联网安全态势报告(2018).[R/OL].[2020-05]http://www.aii-alliance.org/index.php?m=content&c=index&a=document_download&ftype=3&fid=726&fno=0.
  • [3]. 赵阿群,吉逸,顾冠群. 支持VPN的隧道技术研究[J].通信学报,2000(06):85-91.
  • [4]. 谢希仁. 计算机网络[M]. 北京: 电子工业出版社, 2013.
  • [5]. IDG. 2020年中国云计算市场十大预测——多云和云原生趋势渐成主流[Z/OL],[2020-05]. https://www.idc.com/getdoc.jsp?containerId=prCHC46050920.
  • [6]. Sengupta J, Ruj S, Bit S D, et al. A Comprehensive Survey on Attacks, Security Issues and Blockchain Solutions for IoT and IIoT[J]. Journal of Network and Computer Applications, 2020.
  • [7]. 李鸿培,李强.工业互联网的安全研究与实践[J].电信网技术,2016(08):20-26.
  • [8]. 徐家臻,陈莘萌.IPSec与基于SSL的VPN的比较与分析[J].计算机工程与设计,2004(04):586-588.
  • [9]. 安全天下谁与争锋——业界最高性能的华为万兆安全网关[J].信息网络安全,2008(10):67.
  • [10]. 吕尧,李东格.《密码法》解读及影响分析[J].网络空间安全,2019,10(11):74-78.
  • [11]. 工业互联网产业联盟. 工业互联网产业联盟.工业互联网安全框架(讨论稿).[R/OL].[2020-03] http://www.aii-alliance.org/index.php?m=content&c=index&a=document_download&ftype=3&fid=210&fno=0.
  • [12]. GM/T0022-2014 IPSec VPN 网关产品规范[S]. 北京:中国标准出版社,2014
  • [13]. Industrial Internet Consortium. IIC TSN Testbed Traffic Whitepaper [R/OL],[2020-04]. https://www.iiconsortium.org/pdf/IIC_TSN_Testbed_Traffic_Whitepaper_20180418.pdf.
  • [14]. Ullah S, Choi J, Oh H, et al. IPsec for high speed network links: Performance analysis and enhancements[J]. Future Generation Computer Systems, 2020: 112-125.
  • [15]. 卜天宇,严锦立,黄金锋,孙志刚. 面向OPC UA/TSN架构的工业控制网络安全防护研究[J].网络空间安全,2019,10(10):93-100.
  • [16]. Marc Stevens, Elie Bursztein, Pierre Karpman, et al. The First Collision for Full SHA-1[J]. 2017:570-596.
  • [17]. 张兴隆,程庆丰,马建峰. TLS 1.3协议研究进展[J].武汉大学学报(理学版),2018,64(06):471-484.
  • [18]. Scott Hauck, Andre DeHon[美]. Reconfigurable Computing: The Theory and Practice of FPGA-Based Computation[M]. San Francisco: Morgan Kaufmann Publishers Inc., 2007
  • [19]. 郭彦涛. 面向国密新标准的IPsec VPN服务器软件研究[D].西安电子科技大学,2017.
  • [20]. 何兴杰. 基于国密标准的IPSec VPN服务器的内核系统设计与实现[D].西安电子科技大学,2015.
  • [21]. 蒋华,李康康,胡荣磊. 一种基于strongSwan的IPSec VPN网关的实现[J].计算机应用与软件,2017,34(07):79-84.
  • [22]. 张磊. Linux安全网关与IKE的研究与设计[D].苏州大学,2001.
  • [23]. 王建. 基于众核网络处理器的IPSec VPN系统的研究与实现[D].西安工程大学,2016.
  • [24]. Liu Y, Xu D, Song W, et al. Design and Implementation of High Performance IPSec Applications with Multi-Core Processors[C]. international conference on future information technology and management engineering, 2008: 595-598.
  • [25]. Park J, Jung W, Jo G, et al. PIPSEA: A Practical IPsec Gateway on Embedded APUs[C]. computer and communications security, 2016: 1255-1267.
  • [26]. 王金保. 基于GPU的IPSec VPN加速技术研究[D].华中科技大学,2012.
  • [27]. 桂祚勤,崔广财,林存花,陈浩涓. 万兆IPSec协议芯片关键技术研究[J].信息安全研究,2020,6(02):145-150.
  • [28]. 李肖瑶. 基于FPGA的高性能网络功能加速平台[D].华中科技大学,2018.
  • [29]. 谢玉华. ARM加密引擎在WebServer领域的应用优化[D].重庆大学,2018.
  • [30]. 李焦贤. IPSec VPN加速技术的研究与实现[D].西安电子科技大学,2014
  • [31]. 李博杰. 基于可编程网卡的高性能数据中心系统[D].中国科学技术大学,2019.
  • [32]. Wang H, Bai G, Chen H, et al. A Gbps IPSec SSL Security Processor Design and Implementation in an FPGA Prototyping Platform[C]. signal processing systems, 2010, 58(3): 311-324.
  • [33]. Salman A, Rogawski M, Kaps J, et al. Efficient Hardware Accelerator for IPSec Based on Partial Reconfiguration on Xilinx FPGAs[C]. reconfigurable computing and fpgas, 2011: 242-248.
  • [34]. Driessen B, Guneysu T, Kavun E B, et al. IPSecco: A lightweight and reconfigurable IPSec core[C]. Reconfigurable Computing and FPGAs, 2012: 1-7.
  • [35]. Li B, Tan K, Luo L, et al. ClickNP: Highly Flexible and High Performance Network Processing with Reconfigurable Hardware[C]. acm special interest group on data communication, 2016: 1-14.
  • [36]. 李宗垚. NFV中高性能可定制的安全网关的设计实现[D].上海交通大学,2018.
  • [37]. Li X, Wang X, Liu F, et al. DHL: Enabling Flexible Software Network Functions with FPGA Acceleration[C]. international conference on distributed computing systems, 2018: 1-11.
  • [38]. Lu J, Lockwood J W. IPSec implementation on Xilinx Virtex-II Pro FPGA and its application[C]. International Parallel and Distributed Processing Symposium, 2005.
  • [39]. 陈赞锋. IPSec协议安全芯片的设计与实现[D].西北工业大学,2005.
  • [40]. Wang M, Wu C. A Mesh-Structured Scalable IPsec Processor[J]. IEEE Transactions on Very Large Scale Integration Systems, 2010, 18(5): 725-731.
  • [41]. Wang L, Niu Y, Wu L, et al. Design of an IPSec IP-Core for 10 Gigabit Ethernet Security Processor[C]. ieee international conference on solid-state and integrated circuit technology, 2010: 539-541.
  • [42]. 牛赟. 单通道10Gbps在线网络安全处理器设计研究与实现[D].清华大学,2014.
  • [43]. 张龙飞. IPSec协议下加密IP核的设计与FPGA实现[D].东南大学,2016.
  • [44]. Rao M, Newe T, Grout I, et al. An FPGA-based reconfigurable IPSec AH core with efficient implementation of SHA-3 for high speed IoT applications[J]. Security and Communication Networks, 2016, 9(16): 3282-3295.
  • [45]. Korona M, Skowron K, Trzepinski M, et al. High-performance FPGA architecture for data streams processing on example of IPsec gateway[J]. International Journal of Electronics and Telecommunications, 2018, 64(3): 351-356.
  • [46]. Marvell. NITROX product. [Z/OL].[2020-05]https://cn.marvell.com/products/security-solutions.html
  • [47]. 华为. SVN5800系列安全接入网关彩页. [Z/OL].[2020-05] https://e.huawei.com/cn/material/networking/networksecurity/32f443718810404fb6cbfdbac1a546ea
  • [48]. 卢刚. 用于IPSec协议的AES-128-CBC算法高速硬件设计[D].东南大学,2015.
  • [49]. A. Eckhardt and S. Müller, "Analysis of the Round Trip Time of OPC UA and TSN based Peer-to-Peer Communication," IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), 2019, pp. 161-167.
  • [50]. Jin Y, Shen H, You R, et al. Implementation of SMS4 Block Cipher on FPGA[C]. international conference on communications, 2006: 1-4.
  • [51]. Sklavos N, Kitsos P. Architectural Optimizations & Hardware Implementations of WLANs Encryption Standard[C]. new technologies, mobility and security, 2012: 1-5.
  • [52]. Shang M, Zhang Q, Liu Z, et al. An Ultra-Compact Hardware Implementation of SMS4[C]. international conference on advanced applied informatics, 2014: 86-90.
  • [53]. 李校南,徐岩,戴紫彬. CBC模式下SMS4算法并行化研究[J].计算机工程与设计,2013,34(04):1226-1231.
  • [54]. 刘宗斌. SM3哈希算法的硬件实现与研究[C]. 中国计算机学会计算机安全专业委员会.第26次全国计算机安全学术交流会论文集.中国计算机学会计算机安全专业委员会:中国计算机学会计算机安全专业委员会,2011:199-201+226.
  • [55]. Ma Y, Xia L, Lin J, et al. Hardware performance optimization and evaluation of SM3 hash algorithm on FPGA[C]. international conference on information and communication security, 2012: 105-118.
  • [56]. 丁冬平,高献伟. SM3算法的FPGA设计与实现[J].微型机与应用,2012,31(05):26-28.
  • [57]. Tianyong A, Zhangqing H, Kui D, et al. A compact hardware implementation of SM3[C]. international conference on consumer electronics, 2014: 1-4.
  • [58]. 蔡冰清,白国强.SM3杂凑算法的流水线结构硬件实现[J].微电子学与计算机,2015,32(01):15-18.
  • [59]. Suresh V, Satpathy S, Mathew S K, et al. A 230mV-950mV 2.8Tbps/W Unified SHA256/SM3 Secure Hashing Hardware Accelerator in 14nm Tri-Gate CMOS[C]. european solid state circuits conference, 2018: 98-101.
  • [60]. 王亮. 椭圆曲线数乘运算的并行化研究[D].中国科学院研究生院(软件研究所),2004.
  • [61]. W. LI, X. ZENG, X. FENG ,Z. DAI.A. High-Throughput Processor for Dual-Field Elliptic Curve Cryptography with Power Analysis Resistance[C].2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing, Beijing, 2015, pp. 570-577.
  • [62]. Javeed K., Wang, X. and Scott, M., High performance hardware support for elliptic curve cryptography over general prime field, Microprocess. Microsyst., In Press, 2016
  • [63]. 陈俊杰,孟李林,袁阳.基于FPGA的ECC快速算法研究及设计[J].微电子学与计算机,2016,33(08):139-143+148.
  • [64]. 陆启乐. 一种面向椭圆曲线的双域点乘加速器的设计[D].东南大学,2018.
  • [65]. 张丽. 双域椭圆曲线密码协处理器关键技术研究[D].西安电子科技大学,2019.
  • [66]. D. ZHANG, G. BAI. High-performance implementation of SM2 based on FPGA[C]. 2016 8th IEEE International Conference on Communication Software and Networks (ICCSN), Beijing, 2016, pp. 718-722.
  • [67]. 张盛仕,胡湘宏,熊晓明.基于国密算法SM2软硬件协同系统的FPGA架构[J].单片机与嵌入式系统应用,2019,19(07):15-19.
  • [68]. Marzouqi, H., Al-Qutayri, M., Salah, K., Schinianakis, D. and Stouraitis, T., A High-Speed FPGA Implementation of an RSD-Based ECC Processor, IEEE Trans. on VLSI Systems, Vol. 24, Iss. 1, 2016, pp.151-164.
  • [69]. Chi Cinnati Loi, K. and Ko, S.B., Scalable Elliptic Curve Cryptosystem FPGA Processor for NIST Prime Curves, IEEE Trans. on VLSI Systems, Vol. 23, Iss. 11, 2015, pp. 2753-2756
  • [70]. 张盛仕. 基于国密算法加密技术的SoC设计与优化[D].广东工业大学,2019.
  • [71]. 郑欣. 基于国密算法的加解密和签名验签系统设计及其实现[D].广东工业大学,2018.
转载自:知乎
作者:LogicJitterGibbs

推荐阅读

更多招聘及面经请关注FPGA的逻辑
推荐阅读
关注数
10526
内容数
516
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息