CN117640235A - 基于IPsec和量子密钥的双重加密方法、加密网关 - Google Patents
基于IPsec和量子密钥的双重加密方法、加密网关 Download PDFInfo
- Publication number
- CN117640235A CN117640235A CN202311694033.6A CN202311694033A CN117640235A CN 117640235 A CN117640235 A CN 117640235A CN 202311694033 A CN202311694033 A CN 202311694033A CN 117640235 A CN117640235 A CN 117640235A
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- quantum key
- decryption
- gateway
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000009977 dual effect Effects 0.000 title claims description 10
- 239000003999 initiator Substances 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 238000005538 encapsulation Methods 0.000 abstract description 5
- 230000008859 change Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于IPsec和量子密钥的双重加密方法,包括:加密网关通过唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向加密网关充注量子密钥;加密网关接受入栈数据报文,并将入栈数据报文的数据包打上加密标签或解密标签;通过创建加密标签和解密标签,在mangel表的POSTROUTING链中设置规则,利用加密标签或者解密标签创建挂载节点,将打上加密标签或者解密标签的数据包送出;对数据进行加密处理变成出栈报文数据,从加密网关发送出去,或者对数据进行解密处理,得到密文原文。本发明还提供采用该方法的网关,以及网关之间通信的加密方法。本发明中数据封装不需要增加额外的载荷封装,不改变数据包原本的结构,适用的网络环境更加广。
Description
技术领域
本发明涉及密码应用、网络安全领域,具体设计基于量子密钥的一种数据加密方法。
背景技术
一般情况下,不同分支机构之间的数据安全传输都是通过VPN(Virtual NativeNetwork)网关来构建IPSec(Internet Protocol Security,虚拟专用网络)隧道来实现,这样可以保证IP层数据包的机密性、完整性和身份验证。如果不同分支机构的互联采用运营商的专线,那么采用IPSec VPN部署会封装安全载荷esp,改变数据包原本的结构,对网络带宽有限的用户,增加额外的开销,降低传输效率。
同时,随着量子计算能力的提升,传统的密钥交换协议在协商过程中会传递协商素材,协商的会话密钥存在被破译的可能性。
相关技术中,申请公布号CN116405206A的中国发明专利申请文献公开了一种安全网关数据加解密的方法,该方案中通过量子密钥加密,并将量子密钥的session id作为封装安全载荷esp中的spi传递到对端实现数据的解密。但是该方案也会在载荷数据的基础上增加额外的数据封装,对用户的网络带宽增加额外的开销。
相关技术中,申请公布号CN115567205A的中国发明专利申请文献公开了一种采用量子密钥分发实现网络会话数据流加解密方法,该方案中主要特定是(1)通过量子分发网络将量子主密钥的id和5元组网络会话流建立映射关系,并将主密钥标识放入所述加密处理后的数据报文的安全报文头中,实现端到端的加密通讯。(2)实现了流表的建立、老化、删除的功能。该方案同样增加额外的数据封装,增加用户的网络带宽开销,并且功能实现复杂。
发明内容
本发明所要解决的技术问题在于如何使数据载荷不需要增加额外的载荷封装,就可以实现端到端的加密,提高数据报文的机密性,同时不降低用户带宽的使用。
本发明通过以下技术手段实现解决上述技术问题的:一种基于IPsec和量子密钥的双重加密方法,用于加密网关,包括下述步骤:
S10:加密网关通过唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向加密网关充注量子密钥;
S20:加密网关接受入栈数据报文,并将入栈数据报文的数据包打上加密标签或解密标签;
S30:利用加密标签或者解密标签创建挂载节点,将打上加密标签或者解密标签的数据包送出;
S40:利用安全联盟对数据进行一次加密处理后,再利用量子密钥sa对安全联盟加密后的数据再次进行加密,双重加密后的数据变成出栈报文数据,从加密网关发送出去,或者对数据进行双重解密处理,得到密文原文。
作为进一步的技术方案,所述步骤S20包括下述步骤:
S201:入栈数据报文进入;
S202:根据五元组信息匹配出方向安全策略;
S203:判断出方向安全策略的匹配是否成功,如果成功进入S204,如果失败,进入S207;
S204:出方向安全策略匹配成功,将这条入栈数据报文打上加密标签,根据出方向安全策略查找对应的安全联盟是否存在,如果存在进入S205,如果失败进入步骤S206;
S205:安全联盟存在,将安全联盟的信息保存在数据报文中;
S206:安全联盟不存在,通过IKE协议协商安全联盟,并将安全联盟的信息保存在数据报文中;
S207:出方向安全策略匹配失败,将入栈数据报文的源地址和目的地址互换,根据五元组信息匹配入方向安全策略;
S208:判断入方向安全策略的匹配是否成功,如果成功进入步骤S209,如果失败,进入S210;
S209:将这条入栈数据报文打上解密标签;
S210:该条入栈数据报文无法匹配出安全策略也无法匹配入方向安全策略,则被丢弃。
作为进一步的技术方案,步骤S40具体包括:
S401:接收打上加密标签或者解密标签的数据;
S402:判断是出方向标签还是入方向标签,如果是出方向标签,则进入步骤S403至步骤S405,如果是入方向标签,则进入步骤S406;
S403:通过加密标签,利用安全联盟对数据报文进行加密;
S404:获取量子密钥sa,并利用量子密钥sa对安全联盟加密后的数据再次进行加密;
S405:数据加解密模块处理后的数据变成出栈报文数据,从加密网关发送出去;
S406:通过解密标签,获取量子密钥sa,并利用量子密钥sa对数据进行解密;
S407:利用安全联盟对数据报文进行解密处理得到数据报文原文。
作为进一步的技术方案,步骤S403中,数据加密采用CBC+的模式,其中具体包括:
对于数据长度大于一个加密分组的,取一个加密分组整数倍的数据做CBC加密,获得密文数据1;
剩余长度不够一个加密分组的数据,取上一分组加密后的密文做IV值,使用会话密钥K加密IV,加密算法为SM4,加密模式采用ECB,获得Kiv,截取Kiv,使其长度等于明文数据长度,然后与明文数据做异或,得到密文数据2;
拼接密文数据1和密文数据2,得到完整密文;
步骤S407中解密过程具体包括:
对于数据长度大于一个解密分组的,取一个加密分组整数倍的数据做CBC解密,获得明文数据1;
剩余长度不够一个加密分组的数据,取上一分组解密前的密文做IV值,使用会话密钥K解密IV,解密算法为SM4,解密模式采用ECB,获得Kiv,截取Kiv,使其长度等于密文数据长度,然后与密文数据做异或,得到明文数据2;
拼接明文数据1和明文数据2,得到完整明文。
作为进一步的技术方案,步骤S404具体包括:
S4041、通过安全联盟中发起方和响应方的spi计算量子密钥ID,利用spi计算后的量子密钥ID是惟一的;
S4042、在量子密钥池中通过量子密钥ID获得量子密钥sa;
S4043、利用量子密钥sa对IPSec sa加密后的数据再次进行加密,加密方法和S403的加密方法一致;
步骤S406具体包括:
S4061、通过安全联盟中发起方和响应方的spi计算量子密钥ID,利用spi计算后的量子密钥ID是惟一的;
S4062、在量子密钥池中通过量子密钥ID获得量子密钥sa;
S4063、利用量子密钥sa对IPSec sa加密后的数据进行解密,解密方法和S407的解密方法一致。
本发明还提供一种执行上述任一技术方案所述的一种基于IPsec和量子密钥的双重加密方法的加密网关,包括:
量子密钥模块,用于加密网关通过唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向加密网关的量子密钥模块充注量子密钥;
xfrm模块,用于接受入栈数据报文,并将入栈数据报文的数据包调用iptables模块的加解密标签将这条入栈数据报文打上加密标签或解密标签;
iptables模块,预先创建加密标签和解密标签,在mangel表的POSTROUTING链中设置规则,并利用加密标签或者解密标签创建挂载节点,将打上加密标签或者解密标签的数据包送入加解密模块;
数据加解密模块,利用安全联盟对数据进行一次加密处理后,再利用量子密钥sa对安全联盟加密后的数据再次进行加密,双重加密后的数据变成出栈报文数据,从加密网关发送出去,或者对数据进行双重解密处理,得到密文原文。
作为进一步的技术方案,xfrm模块具体包括:
xfrm模块进入单元:用于入栈数据报文进入xfrm模块;
出方向安全策略匹配单元:用于根据五元组信息匹配出方向安全策略;
第一判断单元:用于判断出方向安全策略的匹配是否成功;
安全联盟查找单元:若出方向安全策略匹配成功,用于将这条入栈数据报文打上加密标签,并根据出方向安全策略查找对应的安全联盟是否存在;
打加密标签单元:安全联盟存在时,将安全联盟的信息保存在数据报文中;
安全联盟协商单元:安全联盟不存在时,用于通过IKE协议协商安全联盟,并将安全联盟的信息保存在数据报文中;
入方向安全策略匹配单元:出方向安全策略匹配失败时,用于将入栈数据报文的源地址和目的地址互换,根据五元组信息匹配入方向安全策略;
第二判断单元:用于判断入方向安全策略的匹配是否成功;
打解密标签单元:如果入方向安全策略的匹配成功将这条入栈数据报文打上解密标签;
丢弃单元:若该条入栈数据报文无法匹配出安全策略也无法匹配入方向安全策略,则被丢弃。
作为进一步的技术方案,数据加解密模块具体包括:
数据接收单元:接收打上加密标签或者解密标签的数据;
方向标签判断单元:判断是出方向标签还是入方向标签;
加密单元,若是出方向标签,通过加密标签,利用安全联盟对数据报文进行加密;
再次加密单元,用于获取量子密钥sa,并利用量子密钥sa对安全联盟加密后的数据再次进行加密;
发送单元,用于将再次加密的数据变成出栈报文数据,从加密网关发送出去;
解密单元,若是入方向标签,通过解密标签,获取量子密钥sa,并利用量子密钥sa对数据进行解密;
再次解密单元,利用安全联盟对数据报文进行解密处理,得到数据报文原文。
作为进一步的技术方案,所述数据加密采用CBC+的模式,其中具体包括:
对于数据长度大于一个加密分组的,取一个加密分组整数倍的数据做CBC加密,获得密文数据1;
剩余长度不够一个加密分组的数据,取上一分组加密后的密文做IV值,使用会话密钥K加密IV,加密算法为SM4,加密模式采用ECB,获得Kiv,截取Kiv,使其长度等于明文数据长度,然后与明文数据做异或,得到密文数据2;
拼接密文数据1和密文数据2,得到完整密文;
所述解密过程具体包括:
对于数据长度大于一个解密分组的,取一个加密分组整数倍的数据做CBC解密,获得明文数据1;
剩余长度不够一个加密分组的数据,取上一分组解密前的密文做IV值,使用会话密钥K解密IV,解密算法为SM4,解密模式采用ECB,获得Kiv,截取Kiv,使其长度等于密文数据长度,然后与密文文数据做异或,得到明文数据2;
拼接明文数据1和明文数据2,得到完整明文。
本发明还提供一种基于IPsec和量子密钥的双重加密方法,适用于报文数据通过第一加密网关传入第二加密网关,其中第一加密网关和第二加密网关采用权利要求6-9任一项所述的机构,该加密方法包含以下步骤:
S1:第一加密网关通过唯一标识和第二加密网关的唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向第一加密网关的量子密钥模块充注第一量子密钥,第二加密网关通过唯一标识和第一加密网关的唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向第二加密网关的量子密钥模块充注第二量子密钥,其中第一加密网关和第二加密网关量子向密钥分发中心注册的标识都是一致的,形成相同的量子密钥池,即第一量子密钥和第二量子密钥相同;
S2:第一加密网关接受入栈数据报文,并将入栈数据报文的数据包通过xfrm模块打上加密标签;
S3:第一加密网关的iptables模块通过加密标签创建的hook节点,将S2中打上加密标签数据包送入加解密模块;
S4:第一加密网关的数据加解密模块通过加密标签,利用数据报文中保存安全联盟对数据报文进行加密,从量子密钥池中获取量子密钥sa,并利用量子密钥sa对安全联盟加密后的数据再次进行加密后发送出去;
S5:第二加密网关收到第一加密网关的密文数据后,将源地址和目的地址进行互换,通过五元组信息在xfrm模块中匹配出方向安全策略,并获取安全策略对应的安全联盟;同时,将入栈数据报文打上解密标签;
S6:第二加密网关的iptables模块利用解密标签创建的hook节点,将步骤S5中打上解密标签的数据包送入加解密模块;
S7:第二加密网关在量子加密模块的量子密钥池中获取量子密钥sa,并利用量子密钥sa对数据进行解密;
S8:第二加密网关的数据加解密模块通过解密标签,利用数据报文中保存的安全联盟对数据报文再次解密,得到数据报文原文。
本方法通过量子密钥分发的方式,利用xfrm、iptables模块,实现对IP头后面的载荷数据加密,主要创造性在于:
(1)利用IPSec sa和量子sa对数据进行双重加密,安全性得到提高;
(2)数据封装不需要增加额外的载荷封装,不改变数据包原本的结构,适用的网络环境更加广泛,不管中间层网络环境有多复杂,数据包都可以在网络中正常传输,并且对用户网络带宽不产生额外的开销;
(3)针对每一条安全策略都有一个量子sa,只要安全策略子网配置到掩码32位,就可以实现一流一密,增加数据的安全性。
该方法即满足传统VPN的组网环境,也可以提供基于2层网络(数据链路层)的数据加密机制,实现更安全、更高效的加密传输方法,并且链路完全透明,极易部署连接。
附图说明
图1是本发明实施例中基于量子密钥的一种数据加密系统的结构框图;
图2是本发明实施例中的加密网关及量子密钥分发系统的连接结构框图;
图3是本发明实施例中加密网关中xfrm模块数据处理流程图;
图4是本发明实施例中加密网关中数据加解密模块数据处理流程图;
图5是本发明实施例中加密网关之间的交互流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参阅图2和图5,本发明提供一种基于IPsec和量子密钥的双重加密方法,用于加密网关,该加密网关包括:
入栈数据报文:加密网关接受到的数据报文;
出站数据报文:加密或者解密完成后的数据报文;
xfrm模块:实现安全策略(sp)的增删改查,安全联盟(Security Association,sa)的协商老化,对入栈数据报文进行安全策略匹配,并根据匹配策略的方向打上加密和解密标签;
iptables(防火墙)模块:创建加密标签和解密标签,在mangel表的POSTROUTING链中设置规则,利用加密标签或者解密标签创建挂载节点(HOOK),通过HOOK机制,将匹配到加密和解密标签的数据送入数据加解密模块;
数据加解密模块:通过判断数据包的标签,对数据报文进行加密或者解密,加密和解密的密钥来自于IKE密钥协商和量子密钥分发。
则所述双重加密方法包含以下步骤:
S10:加密网关通过唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向加密网关的量子密钥模块充注量子密钥,各相互通信的加密网关向量子密钥分发中心注册的标识都是一致的,就会形成相同的量子密钥池;
S20:加密网关接受入栈数据报文,并将入栈数据报文的数据包通过xfrm模块打上加密标签或解密标签,同时参阅图3,为本发明实施例中加密网关中xfrm模块数据处理流程图,该步骤S20具体包括:
S201:入栈数据报文进入xfrm模块;
S202:xfrm模块根据五元组信息(源IP地址,目的IP地址,源端口,目的端口,协议)匹配出方向安全策略(sp);
S203:判断出方向安全策略(sp)的匹配是否成功,如果成功进入S204,如果失败,进入S207;
S204:出方向安全策略(sp)匹配成功,xfrm模块调用iptables模块的加密标签将这条入栈数据报文打上加密标签,xfrm模块根据出方向安全策略(sp)查找对应的安全联盟(IPSec sa)是否存在,如果存在进入S205,如果失败进入S206;
S205:安全联盟(IPSec sa)存在,并将IPSec sa的信息保存在数据报文中;
S206:安全联盟(IPSec sa)不存在,xfrm模块通过IKE协议协商安全联盟(IPSecsa),并将IPSec sa的信息保存在数据报文中;
S207:出方向安全策略(sp)匹配失败,xfrm模块将入栈数据报文的源地址和目的地址互换,利用xfrm模块根据五元组信息(源IP地址,目的IP地址,源端口,目的端口,协议)匹配入方向安全策略(sp);
S208:判断入方向安全策略(sp)的匹配是否成功,如果成功进入S209,如果失败,进入S210;
S209:xfrm模块调用iptables模块的解密标签将这条入栈数据报文打上解密标签;
S210:若该条入栈数据报文无法匹配出安全策略(sp)也无法匹配入方向安全策略(sp),则被丢弃;
S30:加密网关的iptables模块利用加密标签或者解密标签创建挂载节点,将S204或S209中打上加密标签或者解密标签的数据包送入加解密模块。
步骤S40:数据加解密模块对数据进行加密处理变成出栈报文数据,从加密网关发送出去,或者对数据进行解密处理,得到密文原文。参阅图4,为本发明实施例中加密网关中数据加解密模块数据处理流程图,步骤S40具体包括:
步骤S401:入栈报文数据根据加密或者解密标签进入数据加解密模块;
步骤S402:判断是出方向标签还是入方向标签,如果是出方向标签,则进入步骤S403至步骤S405,如果是入方向标签,则进入步骤S406;
步骤S403:加密网关的数据加解密模块通过加密标签,利用数据报文中保存的IPSec sa对数据报文进行加密,数据加密采用CBC+的模式,其中具体包括:
对于数据长度大于一个加密分组(16字节)的,取16字节整数倍的数据做CBC加密,获得密文数据1;
剩余长度不够16字节的数据,取上一分组加密后的密文做IV值。使用会话密钥K加密IV,加密算法为SM4,加密模式采用ECB,获得Kiv。截取Kiv,使其长度等于明文数据长度,然后与明文数据做异或,得到密文数据2;
拼接密文数据1和密文数据2,得到完整密文,其中,完整的密文并未在原来的数据上增加额外的封装,达到了不改变原始报文结构的目的;
步骤S404:加密网关在量子加密模块的量子密钥池中获取量子密钥sa,并利用量子密钥sa对IPSec sa加密后的数据再次进行加密,其中具体包括:
S4041、数据加解密模块通过IPSec sa中发起方和响应方的spi计算量子密钥ID,因为spi(Security Parameter Index)用于唯一标识IPSec sa,所以利用spi计算后的量子密钥ID也是惟一的;
S4042、数据加解密模块在量子密钥池中通过量子密钥ID获得量子密钥sa;
S4043、数据加解密模块利用量子密钥sa对IPSec sa加密后的数据再次进行加密,加密方法和S403的加密方法一致;
步骤S405:数据加解密模块处理后的数据变成出栈报文数据,从加密网关发送出去;
步骤S406:加密网关的数据加解密模块通过解密标签,加密网关在量子加密模块的量子密钥池中获取量子密钥sa,并利用量子密钥sa对数据进行解密密,解密原理同步骤S404,具体包括:
S4061、通过安全联盟中发起方和响应方的spi计算量子密钥ID,利用spi计算后的量子密钥ID是惟一的;
S4062、在量子密钥池中通过量子密钥ID获得量子密钥sa;
S4063、利用量子密钥sa对IPSec sa加密后的数据进行解密,解密方法和S407的解密方法一致。
步骤S407:利用数据报文中保存的IPSec sa对数据报文再次解密,得到数据报文原文,其中具体包括如下;
对于数据长度大于一个解密分组(16字节)的,取16字节整数倍的数据做CBC解密,获得明文数据1;
剩余长度不够16字节的数据,取上一分组解密前的密文做IV值。使用会话密钥K解密IV,解密算法为SM4,解密模式采用ECB,获得Kiv。截取Kiv,使其长度等于密文数据长度,然后与密文数据做异或,得到明文数据2;
拼接明文数据1和明文数据2,得到完整明文。
实施例二
请参阅图1所示,本实施例提供一种基于量子密钥的数据加密系统,包括:第一加密网关、第二加密网关,以及量子密钥中心。第一加密网关和第二加密网关均与量子密钥中心连接,第一加密网关和第二加密网关之间进行密钥协商,第一加密网关和第二加密网关向量子密钥分发中心提出注册申请,量子密钥分发中心向第一加密网关和第二加密网关分发量子密钥。
上述第一加密网关、第二加密网关结构相同,采用实施例一所述的加密网关的结构以及加密方法。量子密钥模块:从量子密钥分发中心获取批量量子密钥,每一组密钥都有唯一的ID。
本发明提供一种基于IPsec和量子密钥的双重加密方法,适用于报文数据通过第一加密网关传入第二加密网关,则双重加密方法包含以下步骤:
S1:第一加密网关通过唯一标识和第二加密网关的唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向第一加密网关的量子密钥模块充注第一量子密钥,第二加密网关通过唯一标识和第一加密网关的唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向第二加密网关的量子密钥模块充注第二量子密钥;
其中,第一加密网关和第二加密网关量子向密钥分发中心注册的标识都是一致的,就会形成相同的量子密钥池,即第一量子密钥和第二量子密钥相同;
S2:第一加密网关接受入栈数据报文,并将入栈数据报文的数据包通过xfrm模块打上加密标签,为本发明实施例中加密网关中xfrm模块数据处理流程图,该步骤S2具体包括:
步骤S201:入栈数据报文进入xfrm模块;
步骤S202:xfrm模块根据五元组信息(源IP地址,目的IP地址,源端口,目的端口,协议)匹配出方向安全策略(sp);
步骤S203:判断出方向安全策略(sp)的匹配是否成功,匹配成功,xfrm模块调用iptables模块的加密标签将这条入栈数据报文打上加密标签,并进入S204;
步骤S204:xfrm模块根据出方向安全策略(sp)查找对应的安全联盟(IPSec sa)是否存在,如果存在进入S205,如果失败进入S206;
步骤S205:将IPSec sa的信息保存在数据报文中;
步骤S206:xfrm模块通过IKE协议协商安全联盟(IPSec sa),并将IPSec sa的信息保存在数据报文中;
S3:第一加密网关的iptables模块利用加密标签创建的hook节点,将S2中打上加密标签数据送入加解密模块;
S4:数据加解密模块对数据进行加密处理变成出栈报文数据,从加密网关发送出去,步骤S4具体包括:
步骤S401:入栈报文数据根据加密标签进入数据加解密模块;
步骤S402:判断是出方向标签还是入方向标签,本实施例中是出方向标签,则进入步骤S403;
步骤S403:进行数据加密处理,第一加密网关的数据加解密模块通过加密标签,利用数据报文中保存的IPSec sa对数据报文进行加密,数据加密采用CBC+的模式,其中具体包括:
对于数据长度大于一个加密分组(16字节)的,取16字节整数倍的数据做CBC加密,获得密文数据1;
剩余长度不够16字节的数据,取上一分组加密后的密文做IV值。使用会话密钥K加密IV,加密算法为SM4,加密模式采用ECB,获得Kiv。截取Kiv,使其长度等于明文数据长度,然后与明文数据做异或,得到密文数据2;
拼接密文数据1和密文数据2,得到完整密文,其中,完整的密文并未在原来的数据上增加额外的封装,达到了不改变原始报文结构的目的;
S404:第一加密网关在量子加密模块的量子密钥池中获取量子密钥sa,并利用量子密钥sa对IPSec sa加密后的数据再次进行加密,该步骤S404具体包括;
步骤S4041:数据加解密模块通过IPSec sa中发起方和响应方的spi计算量子密钥ID,因为spi(Security Parameter Index)用于唯一标识IPSec sa,所以利用spi计算后的量子密钥ID也是惟一的;
步骤S4042:数据加解密模块在量子密钥池中通过量子密钥ID获得量子密钥sa;
步骤S4043:数据加解密模块利用量子密钥sa对IPSec sa加密后的数据再次进行加密,加密方法和S403的加密方法一致;
步骤S405:数据加解密模块处理后的数据会变成出栈报文数据,从第一网关发送出去;
S5:第二加密网关收到第一加密网关的密文数据后,将源地址和目的地址进行互换,通过五元组信息(源IP地址,目的IP地址,源端口,目的端口,协议)在xfrm模块中匹配出方向安全策略(sp),并获取sp对应的IPSec sa;同时,将入栈数据报文打上解密标签,具体包括如下步骤:
步骤S501:入栈数据报文进入xfrm模块;
步骤S502:xfrm模块根据五元组信息(源IP地址,目的IP地址,源端口,目的端口,协议)匹配出方向安全策略(sp);
步骤S503:判断出方向安全策略(sp)的匹配失败,进入步骤S504;
步骤S504:xfrm模块将入栈数据报文的源地址和目的地址互换,利用xfrm模块根据五元组信息(源IP地址,目的IP地址,源端口,目的端口,协议)匹配入方向安全策略(sp);
步骤S505:入方向安全策略(sp)的匹配成功;
步骤S506:xfrm模块将这条入栈数据报文调用iptables模块的解密标签打上解密标签;
步骤S6:第二加密网关的利用解密标签创建的hook节点,将步骤S506中打上解密标签的数据包送入加解密模块;
步骤S7:第二加密网关在量子加密模块的量子密钥池中获取量子密钥sa,并利用量子密钥sa对数据进行解密,该步骤S7具体包括;
步骤S701:数据加解密模块通过IPSec sa中发起方和响应方的spi计算量子密钥ID,因为spi(Security Parameter Index)用于唯一标识IPSec sa,所以利用spi计算后的量子密钥ID也是惟一的;
步骤S702:数据加解密模块在量子密钥池中通过量子密钥ID获得量子密钥sa;
步骤S703:数据加解密模块利用量子密钥sa对IPSec sa解密后的数据进行解密;
步骤S8:第二加密网关的数据加解密模块通过解密标签,利用数据报文中保存的IPSec sa对数据报文再次解密,得到数据报文原文,其中具体包括如下;
对于数据长度大于一个解密分组(16字节)的,取16字节整数倍的数据做CBC解密,获得明文数据1;
剩余长度不够16字节的数据,取上一分组解密前的密文做IV值。使用会话密钥K解密IV,解密算法为SM4,解密模式采用ECB,获得Kiv。截取Kiv,使其长度等于密文数据长度,然后与密文数据做异或,得到明文数据2;
拼接明文数据1和明文数据2,得到完整明文。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于IPsec和量子密钥的双重加密方法,用于加密网关,其特征在于:包括下述步骤:
S10:加密网关通过唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向加密网关充注量子密钥;
S20:加密网关接受入栈数据报文,并将入栈数据报文的数据包打上加密标签或解密标签;
S30:利用加密标签或者解密标签创建挂载节点,将打上加密标签或者解密标签的数据包送出;
S40:利用安全联盟对数据进行一次加密处理后,再利用量子密钥sa对安全联盟加密后的数据再次进行加密,双重加密后的数据变成出栈报文数据,从加密网关发送出去,或者对数据进行双重解密处理,得到密文原文。
2.如权利要求1所述的一种基于IPsec和量子密钥的双重加密方法,其特征在于:所述步骤S20包括下述步骤:
S201:入栈数据报文进入;
S202:根据五元组信息匹配出方向安全策略;
S203:判断出方向安全策略的匹配是否成功,如果成功进入S204,如果失败,进入S207;
S204:出方向安全策略匹配成功,将这条入栈数据报文打上加密标签,根据出方向安全策略查找对应的安全联盟是否存在,如果存在进入S205,如果失败进入步骤S206;
S205:安全联盟存在,将安全联盟的信息保存在数据报文中;
S206:安全联盟不存在,通过IKE协议协商安全联盟,并将安全联盟的信息保存在数据报文中;
S207:出方向安全策略匹配失败,将入栈数据报文的源地址和目的地址互换,根据五元组信息匹配入方向安全策略;
S208:判断入方向安全策略的匹配是否成功,如果成功进入步骤S209,如果失败,进入S210;
S209:将这条入栈数据报文打上解密标签;
S210:该条入栈数据报文无法匹配出安全策略也无法匹配入方向安全策略,则被丢弃。
3.如权利要求2所述的一种基于IPsec和量子密钥的双重加密方法,其特征在于:步骤S40具体包括:
S401:接收打上加密标签或者解密标签的数据;
S402:判断是出方向标签还是入方向标签,如果是出方向标签,则进入步骤S403至步骤S405,如果是入方向标签,则进入步骤S406;
S403:通过加密标签,利用安全联盟对数据报文进行加密;
S404:获取量子密钥sa,并利用量子密钥sa对安全联盟加密后的数据再次进行加密;
S405:数据加解密模块处理后的数据变成出栈报文数据,从加密网关发送出去;
S406:通过解密标签,获取量子密钥sa,并利用量子密钥sa对数据进行解密;
S407:利用安全联盟对数据报文进行解密处理得到数据报文原文。
4.如权利要求3所述的一种基于IPsec和量子密钥的双重加密方法,其特征在于:步骤S403中,数据加密采用CBC+的模式,其中具体包括:
对于数据长度大于一个加密分组的,取一个加密分组整数倍的数据做CBC加密,获得密文数据1;
剩余长度不够一个加密分组的数据,取上一分组加密后的密文做IV值,使用会话密钥K加密IV,加密算法为SM4,加密模式采用ECB,获得Kiv,截取Kiv,使其长度等于明文数据长度,然后与明文数据做异或,得到密文数据2;
拼接密文数据1和密文数据2,得到完整密文;
步骤S407中解密过程具体包括:
对于数据长度大于一个解密分组的,取一个加密分组整数倍的数据做CBC解密,获得明文数据1;
剩余长度不够一个加密分组的数据,取上一分组解密前的密文做IV值,使用会话密钥K解密IV,解密算法为SM4,解密模式采用ECB,获得Kiv,截取Kiv,使其长度等于密文数据长度,然后与密文数据做异或,得到明文数据2;
拼接明文数据1和明文数据2,得到完整明文。
5.如权利要求3所述的一种基于IPsec和量子密钥的双重加密方法,其特征在于:步骤S404具体包括:
S4041、通过安全联盟中发起方和响应方的spi计算量子密钥ID,利用spi计算后的量子密钥ID是惟一的;
S4042、在量子密钥池中通过量子密钥ID获得量子密钥sa;
S4043、利用量子密钥sa对IPSec sa加密后的数据再次进行加密,加密方法和S403的加密方法一致;
步骤S406具体包括:
S4061、通过安全联盟中发起方和响应方的spi计算量子密钥ID,利用spi计算后的量子密钥ID是惟一的;
S4062、在量子密钥池中通过量子密钥ID获得量子密钥sa;
S4063、利用量子密钥sa对IPSec sa加密后的数据进行解密,解密方法和S407的解密方法一致。
6.执行权利要求1至5任一项所述的一种基于IPsec和量子密钥的双重加密方法的加密网关,其特征在于:包括:
量子密钥模块,用于加密网关通过唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向加密网关的量子密钥模块充注量子密钥;
xfrm模块,用于接受入栈数据报文,并将入栈数据报文的数据包调用iptables模块的加解密标签将这条入栈数据报文打上加密标签或解密标签;
iptables模块,预先创建加密标签和解密标签,在mangel表的POSTROUTING链中设置规则,并利用加密标签或者解密标签创建挂载节点,将打上加密标签或者解密标签的数据包送入加解密模块;
数据加解密模块,利用安全联盟对数据进行一次加密处理后,再利用量子密钥sa对安全联盟加密后的数据再次进行加密,双重加密后的数据变成出栈报文数据,从加密网关发送出去,或者对数据进行双重解密处理,得到密文原文。
7.如权利要求6所述的一种基于IPsec和量子密钥的双重加密网关,其特征在于:xfrm模块具体包括:
xfrm模块进入单元:用于入栈数据报文进入xfrm模块;
出方向安全策略匹配单元:用于根据五元组信息匹配出方向安全策略;
第一判断单元:用于判断出方向安全策略的匹配是否成功;
安全联盟查找单元:若出方向安全策略匹配成功,用于将这条入栈数据报文打上加密标签,并根据出方向安全策略查找对应的安全联盟是否存在;
打加密标签单元:安全联盟存在时,将安全联盟的信息保存在数据报文中;
安全联盟协商单元:安全联盟不存在时,用于通过IKE协议协商安全联盟,并将安全联盟的信息保存在数据报文中;
入方向安全策略匹配单元:出方向安全策略匹配失败时,用于将入栈数据报文的源地址和目的地址互换,根据五元组信息匹配入方向安全策略;
第二判断单元:用于判断入方向安全策略的匹配是否成功;
打解密标签单元:如果入方向安全策略的匹配成功将这条入栈数据报文打上解密标签;
丢弃单元:若该条入栈数据报文无法匹配出安全策略也无法匹配入方向安全策略,则被丢弃。
8.如权利要求6所述的一种基于IPsec和量子密钥的双重加密网关,其特征在于:
数据加解密模块具体包括:
数据接收单元:接收打上加密标签或者解密标签的数据;
方向标签判断单元:判断是出方向标签还是入方向标签;
加密单元,若是出方向标签,通过加密标签,利用安全联盟对数据报文进行加密;
再次加密单元,用于获取量子密钥sa,并利用量子密钥sa对安全联盟加密后的数据再次进行加密;
发送单元,用于将再次加密的数据变成出栈报文数据,从加密网关发送出去;
解密单元,若是入方向标签,通过解密标签,获取量子密钥sa,并利用量子密钥sa对数据进行解密;
再次解密单元,利用安全联盟对数据报文进行解密处理,得到数据报文原文。
9.如权利要求8所述的一种基于IPsec和量子密钥的双重加密网关,其特征在于:所述数据加密采用CBC+的模式,其中具体包括:
对于数据长度大于一个加密分组的,取一个加密分组整数倍的数据做CBC加密,获得密文数据1;
剩余长度不够一个加密分组的数据,取上一分组加密后的密文做IV值,使用会话密钥K加密IV,加密算法为SM4,加密模式采用ECB,获得Kiv,截取Kiv,使其长度等于明文数据长度,然后与明文数据做异或,得到密文数据2;
拼接密文数据1和密文数据2,得到完整密文;
所述解密过程具体包括:
对于数据长度大于一个解密分组的,取一个加密分组整数倍的数据做CBC解密,获得明文数据1;
剩余长度不够一个加密分组的数据,取上一分组解密前的密文做IV值,使用会话密钥K解密IV,解密算法为SM4,解密模式采用ECB,获得Kiv,截取Kiv,使其长度等于密文数据长度,然后与密文文数据做异或,得到明文数据2;
拼接明文数据1和明文数据2,得到完整明文。
10.一种基于IPsec和量子密钥的双重加密方法,适用于报文数据通过第一加密网关传入第二加密网关,其特征在于:其中第一加密网关和第二加密网关采用权利要求6-9任一项所述的机构,该加密方法包含以下步骤:
S1:第一加密网关通过唯一标识和第二加密网关的唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向第一加密网关的量子密钥模块充注第一量子密钥,第二加密网关通过唯一标识和第一加密网关的唯一标识向量子密钥分发中心进行注册,注册成功后,量子密钥分发中心向第二加密网关的量子密钥模块充注第二量子密钥,其中第一加密网关和第二加密网关量子向密钥分发中心注册的标识都是一致的,形成相同的量子密钥池,即第一量子密钥和第二量子密钥相同;
S2:第一加密网关接受入栈数据报文,并将入栈数据报文的数据包通过xfrm模块打上加密标签;
S3:第一加密网关的iptables模块通过加密标签创建的hook节点,将S2中打上加密标签数据包送入加解密模块;
S4:第一加密网关的数据加解密模块通过加密标签,利用数据报文中保存安全联盟对数据报文进行加密,从量子密钥池中获取量子密钥sa,并利用量子密钥sa对安全联盟加密后的数据再次进行加密后发送出去;
S5:第二加密网关收到第一加密网关的密文数据后,将源地址和目的地址进行互换,通过五元组信息在xfrm模块中匹配出方向安全策略,并获取安全策略对应的安全联盟;同时,将入栈数据报文打上解密标签;
S6:第二加密网关的iptables模块利用解密标签创建的hook节点,将步骤S5中打上解密标签的数据包送入加解密模块;
S7:第二加密网关在量子加密模块的量子密钥池中获取量子密钥sa,并利用量子密钥sa对数据进行解密;
S8:第二加密网关的数据加解密模块通过解密标签,利用数据报文中保存的安全联盟对数据报文再次解密,得到数据报文原文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311694033.6A CN117640235A (zh) | 2023-12-08 | 2023-12-08 | 基于IPsec和量子密钥的双重加密方法、加密网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311694033.6A CN117640235A (zh) | 2023-12-08 | 2023-12-08 | 基于IPsec和量子密钥的双重加密方法、加密网关 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117640235A true CN117640235A (zh) | 2024-03-01 |
Family
ID=90018160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311694033.6A Pending CN117640235A (zh) | 2023-12-08 | 2023-12-08 | 基于IPsec和量子密钥的双重加密方法、加密网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117640235A (zh) |
-
2023
- 2023-12-08 CN CN202311694033.6A patent/CN117640235A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11283772B2 (en) | Method and system for sending a message through a secure connection | |
US6438612B1 (en) | Method and arrangement for secure tunneling of data between virtual routers | |
US8379638B2 (en) | Security encapsulation of ethernet frames | |
US20190372948A1 (en) | Scalable flow based ipsec processing | |
US11637699B2 (en) | Rollover of encryption keys in a packet-compatible network | |
US20220263811A1 (en) | Methods and Systems for Internet Key Exchange Re-Authentication Optimization | |
US9473466B2 (en) | System and method for internet protocol security processing | |
Farinacci et al. | Locator/ID separation protocol (LISP) data-plane confidentiality | |
CN116260579A (zh) | 一种ip包的报文加解密方法 | |
CN101861712A (zh) | 基于移动因特网协议的服务器的安全方法 | |
CN112600802B (zh) | 一种SRv6加密报文、SRv6报文的加解密方法及装置 | |
CN109257388A (zh) | 一种mpls-tp中伪线加密方法 | |
CN117640235A (zh) | 基于IPsec和量子密钥的双重加密方法、加密网关 | |
Zhang et al. | Research on the protocols of VPN | |
CN114039812A (zh) | 数据传输通道建立方法、装置、计算机设备和存储介质 | |
US20100275008A1 (en) | Method and apparatus for secure packet transmission | |
Schwenk | IP Security (IPSec) | |
JP6075871B2 (ja) | ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム | |
CN115766172A (zh) | 基于dpu和国密的报文转发方法、装置、设备及介质 | |
Farinacci et al. | RFC 8061: Locator/ID Separation Protocol (LISP) Data-Plane Confidentiality | |
KR100411436B1 (ko) | 가상 사설망에서 라우터의 계산을 분산시키는 방법 | |
LIOY | Advanced Security Technologies in Networking 55 95 B. Jerman-Blažič et al.(Eds.) IOS Press, 2001 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |