CN104468309B - 一种低速smp与高速密码卡的高效适配方法 - Google Patents
一种低速smp与高速密码卡的高效适配方法 Download PDFInfo
- Publication number
- CN104468309B CN104468309B CN201410606401.1A CN201410606401A CN104468309B CN 104468309 B CN104468309 B CN 104468309B CN 201410606401 A CN201410606401 A CN 201410606401A CN 104468309 B CN104468309 B CN 104468309B
- Authority
- CN
- China
- Prior art keywords
- encryption
- ipsec
- decryption
- message
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种低速SMP与高速密码卡的高效适配方法,将IPSec加解密过程分为取报文、IPSec加解密前处理、IPSec加解密后处理、硬件加解密处理、发报文共五个阶段,每个阶段分别由一或两个CPU核心处理;报文被取出后根据加密或解密操作被分别送入到两个队列,由两个CPU核心并行做IPSec加、解密前处理后,再统一送入密码卡中处理,处理后再根据加密或解密操作类型被分别送入到两个队列,由两个CPU核心并行做IPSec后处理。本发明采用加解密流程分段与加解密双队列共同来实现加解密部件和其他功能部件的重叠执行;同时由于无需处理加解密数据流的保序问题,本发明可以大幅度提高设备整机吞吐能力。
Description
技术领域
本发明涉及一种采用硬件密码卡加密的IPSec VPN系统中,多核心低速CPU与高速硬件密码卡高效协同工作的方法。
背景技术
虚拟专用网络(Virtual Private Network,简称VPN)指的是在公用网络上建立专用网络的技术。其之所以称为虚拟网,主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台,如Internet、ATM(异步传输模式〉、Frame Relay(帧中继)等之上的逻辑网络,用户数据在逻辑链路中传输。它涵盖了跨共享网络或公共网络的封装、加密和身份验证链接的专用网络的扩展。VPN主要采用了隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术。
由于保密安全产品的特殊性,国内IPSec VPN产品使用的密码卡采用的是经国家密码管理办公室审批专用的密码芯片,与当前计算机发展水平的CPU处理能力相比,其算法处理速度提升空间比较大,市场逐渐出现一些高速密码芯片,而采用高速密码芯片加密的VPN设备性能瓶颈往往出现在CPU上。因此通过单纯的提高CPU的工作频率已经无法有效的解决高性能IPSec VPN系统的速度要求。为了提高符合国密标准IPSec VPN的性能,我们提出了一种新的用于多核CPU并行处理IPSec VPN的加密方法,通过并行处理来达到提高IPSec VPN设备吞吐率的目标。
发明内容
为了克服现有技术的上述缺点,本发明提供了一种低速SMP与高速密码卡的高效适配方法。
本发明解决其技术问题所采用的技术方案是:一种低速SMP与高速密码卡的高效适配方法,包括如下步骤:
步骤一、将IPSec VPN的报文处理过程分为取报文、IPSec VPN前处理、加解密、IPSec VPN后处理、发报文五个阶段;
步骤二、将IPSec前处理分为IPSec加密前处理与IPSec解密前处理;将IPSec后处理阶段分为IPSec加密后处理与IPSec解密后处理,每种处理分别由一个CPU核心处理;
步骤三、报文被取出后根据加密或解密操作被分别送入到两个队列,由两个CPU核心并行做IPSec前处理后,再统一送入密码卡中处理,处理后再根据加密或解密操作被分别送入到两个队列,由两个CPU核心并行做IPSec后处理。
与现有技术相比,本发明的积极效果是:针对现有国密标准VPN产品中存在的CPU与密码卡负载不均匀的问题,提供一种IPSec VPN设备系统在多核CPU单密码卡环境下并行保序的加解密的方法。国密标准的IPSec VPN产品对数据的加解密运算主要是由密码芯片来进行。由于密码卡采用的这些密码芯片进行加解密操作与系统其他功能部件之间具有极大的独立性。因此,本发明采用加解密流程分段与加解密双队列共同来实现加解密部件和其他功能部件的重叠执行;同时由于无需处理加解密数据流的保序问题,本发明可以大幅度提高设备整机吞吐能力。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是IPSec VPN的报文处理过程的示意图;
图2是传统的顺序处理方式与时间关系图;
图3是密码卡为性能瓶颈时分段处理方式与时间关系图;
图4是SMP为性能瓶颈时分段方式的报文处理与时间关系图;
图5是SMP为性能瓶颈时分段并行处理方式的报文处理与时间关系图;
图6是分段并行处理方式的IPSec VPN的报文处理的示意图。
具体实施方式
我们可以把IPSec VPN的报文处理过程简单分为5个阶段,IPSec VPN的报文处理过程如图1所示。其中取报文阶段是接收需要进行加解密处理的报文,如果是外出报文就根据外出报文的地址信息提取出相应的处理算法和密钥,然后交给加解密部件进行加密;如果是进入报文就根据相应的AH或ESP头信息提取对应的算法和密钥,然后交给加解密部件进行解密。
IPSec VPN前处理阶段是IPSec VPN根据报文加解密的需要对报文进行预处理,比如为报文添加ESP或AH头部对报文进行尾部填充等等。加解密阶段是根据报文的处理要求对报文进行加解密运算。IPSec VPN后处理阶段是对加解密后的报文进行一些必要的处理,比如重新计算IP校验和等。发送报文阶段是指接收处理完毕的报文对报文进行发送处理。
当多个报文进行处理时,传统的处理执行方式是顺序执行。即首先取一个报文再对报文进行IPSec VPN前处理,接着进行加解密处理,然后进行IPSecVPN后处理,最后发送出去。随后再提取下一个报文进行处理。传统的顺序处理方式如图2所示。
假设IPSec VPN处理报文的时间可分为T(GP)为取报文时间,T(XP)为发送报文时间,T(IF)为IPSec VPN前处理时间,T(IL)为IPSec VPN后处理时间,T(E)为加解密处理时间。
由于取报文、IPSec VPN前处理、IPSec VPN后处理和发送报文四个阶段由CPU负责完成,所以一个报文的CPU处理时间T(CPU)为
T(CPU)=T(GP)+T(XP)+T(IF)+T(IL)
由于加解密处理阶段由加解密部件负责完成,所以一个报文的加解密部件处理时间T(EPT)为T(EPT)=T(E)
那么采用顺序执行方式处理n个报文所用的时间T(SEQ)为
T(SEQ)=n*(T(CPU)+T(EPT))
采用分段处理实现处理阶段的重叠执行。分段处理方式如图3所示,系统取出一个报文交给加解密部件后,直接返回处理下一个报文,而加解密部件则不断接收报文进行加解密。因此当系统正在进行加解密处理时CPU处理报文可同时进行。那么其处理n个报文所用的时间T(PIP)为
T(PIP)=T(CPU)+T(EPT)+(n-1)*MAX(T(CPU),T(EPT))
1、当加解密部件处理报文的时间大于CPU处理报文的时间,那么
T(PIP)=T(CPU)+n*T(EPT)
我们可以看出分段方式比传统的串行处理方式节省了大量的CPU处理,密码卡工作可以持续做加解密处理而无需等待CPU处理报文,可以最大程度发挥密码卡的性能。
2、当加解密部件处理报文的时间小于CPU处理报文的时间,那么
T(PIP)=n*T(CPU)+T(EPT)
从上述基于分段的执行方式来看,其系统执行效率相比传统的串行处理要好,但执行效率仍有提升余地,报文处理与时间关系图如图4所示。
在密码卡性能不变的前提下,减少CPU处理报文时间到小于等于密码卡加解密处理时间时,报文处理性能达到最佳。IPSec前处理与后处理,我们可以利用SMP多核处理来缩短处理时间。现在将IPSec前处理分为两类:IPSec加密前处理与IPSec解密前处理;将IPSec后处理分为两类:IPSec加密后处理与IPSec解密后处理,每种处理分别由一个CPU核心处理,这样可以成倍提高CPU双向数据流处理效率,同时又能兼顾每条数据流的序列号保序(不发生数据流乱序)。报文处理与时间关系图如图5所示。
其中等待时间与密码卡性能有关,密码卡性能越高则等待时间越短。从图中我们可以看出,当密码卡处于连续工作状态,最大的发挥了密码卡的性能。由于某数据流的加密或解密步骤中,任何步骤始终保持由单一CPU核心处理,所以不会产生数据流乱序。
总的说来,报文从被取出后即根据加密或解密操作被分别送入到两个队列,两个队列是被两个CPU核心并行做IPSec前处理的,再统一送入密码卡中处理,处理后再根据加密或解密操作被分别送入到两个队列,两个队列分别由两个CPU核心并行做IPSec后处理,整个过程如图6所示。
上述方案一定程度上利用了CPU多核心并行处理能力的同时,又避免了并行处理带来的乱序问题,同时也最大程度的利用的密码卡的数据处理能力,使得IPSec VPN整机吞吐性能得到很大提高,尤其适合具有高速密码卡的IPSec VPN产品中使用。
Claims (3)
1.一种低速SMP与高速密码卡的高效适配方法,其特征在于:包括如下步骤:
步骤一、将IPSec VPN 的报文处理过程分为取报文、IPSec VPN前处理、加解密、IPSecVPN后处理、发报文五个阶段;所述取报文阶段是接收需要进行加解密处理的报文,如果是外出报文就根据外出报文的地址信息提取出相应的处理算法和密钥,然后交给加解密部件进行加密;如果是进入报文就根据相应的 AH 或 ESP 头信息提取对应的算法和密钥,然后交给加解密部件进行解密;
步骤二、将IPSec前处理分为IPSec加密前处理与IPSec解密前处理;将IPSec后处理阶段分为IPSec加密后处理与IPSec解密后处理,每种处理分别由一个CPU核心处理;
步骤三、报文被取出后根据加密或解密操作被分别送入到两个队列,由两个CPU核心并行做IPSec前处理后,再统一送入密码卡中处理,处理后再根据加密或解密操作被分别送入到两个队列,由两个CPU核心并行做IPSec后处理。
2.根据权利要求1所述的一种低速SMP与高速密码卡的高效适配方法,其特征在于:所述IPSec VPN 前处理阶段是 IPSec VPN 根据报文加解密的需要对报文进行预处理,包括:为报文添加 ESP 或 AH 头部、对报文进行尾部填充。
3.根据权利要求1所述的一种低速SMP与高速密码卡的高效适配方法,其特征在于:所述IPSec VPN 后处理阶段是对加解密后的报文进行处理,包括:重新计算 IP 、校验和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410606401.1A CN104468309B (zh) | 2014-10-31 | 2014-10-31 | 一种低速smp与高速密码卡的高效适配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410606401.1A CN104468309B (zh) | 2014-10-31 | 2014-10-31 | 一种低速smp与高速密码卡的高效适配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468309A CN104468309A (zh) | 2015-03-25 |
CN104468309B true CN104468309B (zh) | 2018-06-19 |
Family
ID=52913714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410606401.1A Active CN104468309B (zh) | 2014-10-31 | 2014-10-31 | 一种低速smp与高速密码卡的高效适配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468309B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107181716A (zh) * | 2016-03-10 | 2017-09-19 | 上海传真通信设备技术研究所有限公司 | 一种基于国家商用密码算法的网络安全通信系统及方法 |
CN106788975B (zh) * | 2016-12-28 | 2019-12-13 | 北京天融信网络安全技术有限公司 | 基于sm4密码算法的加解密装置 |
CN106790221B (zh) * | 2017-01-11 | 2020-11-03 | 京信通信系统(中国)有限公司 | 一种英特网协议安全IPSec协议加密方法和网络设备 |
CN110086751A (zh) * | 2018-01-26 | 2019-08-02 | 北京数盾信息科技有限公司 | 一种高速、低时延的千百兆网络密码机加解密方法 |
CN110209477A (zh) * | 2019-05-09 | 2019-09-06 | 国家计算机网络与信息安全管理中心 | 一种基于自学习的计算任务调度方法 |
CN110601841B (zh) * | 2019-11-01 | 2022-06-14 | 成都卫士通信息产业股份有限公司 | Sm2协同签名及解密方法、装置 |
CN112491821B (zh) * | 2020-11-12 | 2022-05-31 | 杭州迪普科技股份有限公司 | 一种IPSec报文转发的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471839A (zh) * | 2007-12-29 | 2009-07-01 | 北京天融信网络安全技术有限公司 | 多核异步实现IPSec vpn的方法 |
CN102075427A (zh) * | 2011-01-18 | 2011-05-25 | 中兴通讯股份有限公司 | 基于安全联盟的IPSec报文处理方法及装置 |
CN102546617A (zh) * | 2011-12-29 | 2012-07-04 | 汉柏科技有限公司 | 多核多线程系统中IPSec转发的方法 |
CN102932141A (zh) * | 2012-09-27 | 2013-02-13 | 汉柏科技有限公司 | 多加解密芯片并行处理报文加解密的保序方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895431B2 (en) * | 2004-09-10 | 2011-02-22 | Cavium Networks, Inc. | Packet queuing, scheduling and ordering |
-
2014
- 2014-10-31 CN CN201410606401.1A patent/CN104468309B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471839A (zh) * | 2007-12-29 | 2009-07-01 | 北京天融信网络安全技术有限公司 | 多核异步实现IPSec vpn的方法 |
CN102075427A (zh) * | 2011-01-18 | 2011-05-25 | 中兴通讯股份有限公司 | 基于安全联盟的IPSec报文处理方法及装置 |
CN102546617A (zh) * | 2011-12-29 | 2012-07-04 | 汉柏科技有限公司 | 多核多线程系统中IPSec转发的方法 |
CN102932141A (zh) * | 2012-09-27 | 2013-02-13 | 汉柏科技有限公司 | 多加解密芯片并行处理报文加解密的保序方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104468309A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104468309B (zh) | 一种低速smp与高速密码卡的高效适配方法 | |
US11171936B2 (en) | Method, device, and system for offloading algorithms | |
EP3603003B1 (en) | Hardware-accelerated secure communication management | |
US11824740B2 (en) | Method and system for inducing secure communications between one or more emulated servers and emulated clients to test a device therebetween | |
CN106790221B (zh) | 一种英特网协议安全IPSec协议加密方法和网络设备 | |
US11729042B2 (en) | IPSec acceleration method, apparatus, and system | |
JP2002287620A (ja) | セキュリティ通信パケット処理装置及びその方法 | |
CN110086752A (zh) | 一种基于多核网络处理fpga的硬件平台 | |
CN103716166A (zh) | 一种自适应混合加密方法、装置以及加密通信系统 | |
CN107493150A (zh) | 一种数据加密传输方法及装置 | |
CN102970142A (zh) | 一种vpn设备在多加密卡环境下并发加解密的方法及系统 | |
JP2008035300A (ja) | パケット暗号処理装置及びパケット暗号処理方法 | |
CN110620762A (zh) | 基于rdma的数据传输方法、网卡、服务器及介质 | |
CN113691313A (zh) | 一种星地一体量子密钥链路虚拟化应用服务系统 | |
CN113810397B (zh) | 协议数据的处理方法及装置 | |
CN105592030B (zh) | Ip报文处理方法及装置 | |
CN107222473B (zh) | 在传输层对api服务数据进行加解密的方法及系统 | |
CN105245430A (zh) | 一种虚拟机通讯数据加密方法及系统 | |
WO2010023951A1 (ja) | セキュア通信装置、セキュア通信方法及びプログラム | |
CN102170434A (zh) | 一种基于多核处理器实现ipsec的方法及其装置 | |
CN106385423A (zh) | 一种数据加密传输方法及系统 | |
CN109040790A (zh) | 数据加解密方法、装置及电子设备 | |
JP2002026927A (ja) | カプセリング方法及び装置並びにプログラム記録媒体 | |
US6898713B1 (en) | Residue transfer for encrypted messages split across multiple data segments | |
CN115987513B (zh) | 分布式数据库分片加密、解密方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: No. 333, Yunhua Road, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610041 Patentee after: China Electronics Technology Network Security Technology Co.,Ltd. Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041 Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc. |
|
CP03 | Change of name, title or address |