掌桥专利:专业的专利平台
掌桥专利
首页

一种基于无证书的安全网络连接握手方法

文献发布时间:2023-06-19 10:22:47


一种基于无证书的安全网络连接握手方法

技术领域

本发明属于网络安全领域,具体说是一种基于无证书的安全网络连接握手方法。

背景技术

随着各种工业应用要求的不断提升,对网络协议加密数据的速度提出了更高的要求,复杂的网络环境、资源受限等特性对网络的安全管控和业务的高效运作提出挑战。

传统的基于证书的安全传输层协议增加了证书管理上的开销且无法满足工业现场快速加密的需求,利用离散对数运算,生成协议中用于解密的部分私钥,以一种更加灵活的方式摆脱证书带来的加载负担。例如基于公钥证书密码体制的传输层安全协议,在客户端与服务端进行双向认证时,需要加载CA证书、CA中心私钥签名的各自的公钥证书以及私钥文件。客户端用CA证书里的公钥验证服务端证书的数字签名,以证明服务端公钥的合法性;同时服务端用CA证书里的公钥验证客户端证书的数字签名,以证明客户端公钥的合法性;最后客户端用服务端公钥加密消息并发送给服务端,服务端用私钥解密密文得到客户端发送的消息。

关于无证书方案的研究可以追溯到2001年,Boneh和Franklin利用双线性对构建了第一个基于身份的加密方案(Identity Based Encryption),开启了双线性对在密码学中大规模使用。利用双线性对构造各种签名与加密系统的方法层出不穷。比如,2003年由Al-Riyami和Kenneth G. Peterson构建了第一个基于无证书的公钥密码系统。2005年,Cheng 和Richard Comley构建了一个高效的无证书加密系统等。

目前,双线性对密码技术在网络安全连接应用的最大局限性就在于计算过于复杂,虽然双线性对的计算加速的研究取得了一定成果,但是双线性对的计算仍然是非常复杂的密码运算,限制了利用双线性对构造的密码系统在实际系统中的应用,尤其是很多计算资源有限的场景难以应用。研究双线性对的新方向就是研究如何构造新的高效的双线性对(比如Ate双线性对,Eta对等双线性对)以及探索新的高效计算对的方法等。

发明内容

发明目的:为解决现有技术存在的上述问题,本发明的一种基于无证书的安全网络连接握手方法,采用了新的、高效的基于离散对数的无证书密码机制替换现有的基于双线性对的无证书密码机制,并将之应用于网络安全连接的握手方法当中。

技术方案:为了实现上述目的,本发明的技术方案如下:

一种基于无证书公钥的安全网络连接握手方法,包括以下步骤:

1)私钥生成器初始化:私钥生成器产生系统参数;

2)请求系统参数:传输层安全协议的客户端和服务端向私钥生成器请求系统参数;

3)请求部分私钥(m)及生成完整公私钥(U,S):传输层安全协议的客户端和服务端向私钥生成器请求生成部分私钥,并根据部分私钥生成其完整公私钥;

4)加密认证:在传输层安全协议的握手消息扩展中增加PublicKey和PkgMark(Private Key Generator Mark,私钥生成器标识),传递客户端和服务端的公钥以及私钥生成器的标识,此标识用于通信方相互认证;

5)会话密钥:定义一个新的密码套件(如,CL-DES-CBC-SHA),密钥交换算法和认证算法使用无证书公钥加密算法,并利用无证书公钥加密算法完成密钥协商,生成后续会话密钥。

进一步地,所述的步骤1)具体为:

1.1)私钥生成器首先随机选取p和q两个大素数,满足q|p-1,即p-1能被q整除;

1.2)接着在有限乘法群Z

1.3)私钥生成器在循环群Z

1.4)选取hash函数分别为H

进一步地,所述的步骤2)具体为:私钥生成器初始化之后,开启服务监听进程,监听用户系统参数请求,当监听到用户请求系统参数,私钥生成器将产生的合适参数发送给用户,用于后续用户部分私钥和公钥的生成。

进一步地,所述的步骤3)具体为:

3.1)用户向私钥生成器发送部分私钥生成请求;

3.2)用户通过系统参数随机选取m∈Z

3.3)私钥生成器计算消息摘要M =H

进一步地,步骤4)具体为:在安全协议发送的ServerHello(服务端握手响应)消息的扩展中增加ServerPublicKey(服务端公钥)和PkgMark(私钥生成器标识)部分,同样客户端在发送的ClientHello(客户端握手请求)消息的扩展中增加ClientPublicKey(客户端公钥)和PkgMark部分,这部分扩展用于传递客户端与服务端的公钥以及用作通信双方认证的私钥生成器标识;服务端检测客户端发送的ClientHello消息中的PkgMark,如果与服务端的私钥生成器标识相同,服务端发送ServerHello消息给客户端进行认证。

进一步地,所述的步骤5)具体为:

5.1)基于无证书的公钥密码体制,定义一个新的加密套件(如,CL-DES-CBC-SHA),通过加密套件表示密钥交换和认证使用无证书公钥加密算法,对称密钥算法确定为DES,哈希算法确定为SHA;

5.2)客户端收到ServerHello消息后,确认服务器使用无证书公钥加密算法完成密钥协商;客户端和服务端在循环群Z

5.3)上述验证有效,则客户端计算密钥值T=H

有益效果:与现有技术相比,本发明的一种基于无证书的安全网络连接握手方法,针对基于公钥证书的传输层安全协议证书管理繁杂和基于双线性配对计算复杂的问题,通过离散对数运算,建立了无证书的公钥密码体制,并对传统基于离散对数的无证书公钥密码体制中的部分私钥生成算法进行修改,既规避了用户倒推系统私钥的问题,又简化了传统算法,最后实现基于无证书的安全握手协议。本发明通过基于离散对数改进的部分私钥生成算法,采用离散对数运算为用户生成部分私钥,有效避免传统双线性配对运算复杂、实际应用低效的问题,解决了传统基于离散对数的无证书公钥密码体制中系统私钥易泄露的问题。本发明将无证书公钥密码体制与传输层安全协议相融合,并把无证书公钥密码体制算法套件移植到传输层安全协议中,有效避免了证书管理复杂和认证过程中解析证书的问题。本发明安全性高,计算过程简单,适用于资源受限型工业设备的快速加密。

附图说明

图1为私钥生成器系统参数和密钥分发流程图;

图2为基于无证书的网络安全连接协议通信图;

图3为基于无证书的安全网络连接握手协议示意图。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明。

一种基于无证书公钥的安全网络连接握手方法,包括以下步骤:

1)私钥生成器初始化:私钥生成器产生系统参数,包括大素数p,q(满足q|p-1,即p-1能被q整除),p的生成元g,系统私钥x,系统公钥y,hash函数H

2)请求系统参数(param):传输层安全协议的客户端和服务端向私钥生成器请求系统参数;

3)请求部分私钥(m)及生成完整公私钥(U,S):传输层安全协议的客户端和服务端向私钥生成器请求生成部分私钥,并根据部分私钥生成其完整公私钥;

4)加密认证:在传输层安全协议的握手消息扩展中增加PublicKey和PkgMark(Private Key Generator Mark,私钥生成器标识),传递客户端和服务端的公钥以及私钥生成器的标识,此标识用于通信方相互认证;

5)会话密钥:定义一个新的密码套件(如,CL-DES-CBC-SHA),密钥交换算法和认证算法使用无证书公钥加密算法,并利用无证书公钥加密算法完成密钥协商,生成后续会话密钥。

步骤1)具体为:

1.1)私钥生成器首先随机选取p和q两个大素数,满足q|p-1,即p-1能被q整除;

1.2)接着在有限乘法群Z

1.3)私钥生成器在循环群Z

1.4)选取hash函数分别为H

步骤2)具体为:私钥生成器初始化之后,开启服务监听进程,监听用户系统参数请求,当监听到用户请求系统参数,私钥生成器将产生的合适参数发送给用户,用于后续用户部分私钥和公钥的生成。

步骤3)具体包括以下步骤:

3.1)用户向私钥生成器发送部分私钥生成请求;

3.2)用户通过系统参数随机选取m∈Z

3.3)私钥生成器计算消息摘要M=H

步骤4)具体为:在安全协议发送的ServerHello(服务端握手响应)消息的扩展中增加ServerPublicKey(服务端公钥)和PkgMark(私钥生成器标识)部分,同样客户端在发送的ClientHello(客户端握手请求)消息的扩展中增加ClientPublicKey(客户端公钥)和PkgMark部分,这部分扩展用于传递客户端与服务端的公钥以及用作通信双方认证的私钥生成器标识;服务端检测客户端发送的ClientHello消息中的PkgMark,如果与服务端的私钥生成器标识相同,服务端发送ServerHello消息给客户端进行认证。

步骤5)具体包括以下步骤:

5.1)基于无证书的公钥密码体制,定义一个新的加密套件(如,CL-DES-CBC-SHA),通过加密套件表示密钥交换和认证使用无证书公钥加密算法,对称密钥算法确定为DES,哈希算法确定为SHA;

5.2)客户端收到ServerHello消息后,确认服务器使用无证书公钥加密算法完成密钥协商;客户端和服务端在循环群Z

5.3)5.3)上述验证有效,则客户端计算密钥值T=H

如图1-3所示,实现基于无证书的安全网络连接握手过程包括:私钥生成器初始化、请求系统参数、请求部分私钥、公钥传递、会话密钥几个步骤。

私钥生成器首先随机选取p和q两个大素数,满足q|p-1,即p-1能被q整除;接着在有限乘法群Z

请求系统参数就是用户节点请求获取私钥生成器公开的系统参数,最主要的是大素数q和系统私钥

(1)私钥生成器初始化之后,开启服务监听进程;

(2)监听用户系统参数发送请求;

(3)私钥生成器将产生的合适参数发送给监听到请求系统参数的用户。

请求部分私钥及生成用户完整公私钥就是用户节点请求获取私钥生成器为自己生成的部分私钥,并依据两部分私钥生成完整私钥,进而生成用户公钥。具体过程实现如下:

(1)用户向私钥生成器发送部分私钥生成请求;

(2)用户通过系统参数随机选取m∈Z

(3)私钥生成器计算消息摘要M=H

传统的基于离散对数的无证书公钥密码体制中部分私钥具体生成步骤如下:

(1)私钥生成器再随机选取k∈Z

(2)计算w=g

与传统基于离散对数的无证书公钥密码体制相比,改进的部分私钥生成算法n=H

加密认证就是把传输层安全协议的客户端和服务端利用离散对数运算获得的公钥和私钥生成器的标识互相传送给对端,以便于后续的加密过程和认证过程。具体过程实现如下:

(1)客户端在发送的ClientHello消息扩展中增加ClientPublicKey和PkgMark部分;

(2)服务端在发送的ServerHello消息扩展中增加ServerPublicKey和PkgMark部分;

(3)服务端检测客户端发送的ClientHello消息中的PkgMark,如果与服务端自身的私钥生成器标识相同,服务端发送ServerHello消息给客户端进行认证。

基于无证书的安全网络连接握手提供报文的完整性服务,保证了公钥和标识在传递过程中不会被第三方伪造和篡改。

会话密钥就是客户端在发送ClientHello消息时增加对这一新的加密套件(如,CL-DES-CBC-SHA)的支持,服务端若支持,就选择这一加密方案,不支持则依次判断服务器是否支持ClientHello消息中的其他加密套件,如果都不支持则宣告握手失败,否则通过ServerHello消息告知客户端服务器最终选择的加密套件。这里假设服务器和客户端都支持无证书公钥加密算法,所以最后选择的加密套件为无证书公钥加密算法,接着服务端发送ServerHelloDone消息告知客户端本阶段消息发送完毕。客户端收到ServerHello和ServerHelloDone消息后,确认服务器使用无证书公钥加密算法完成密钥协商。具体过程实现如下:

(1)客户端选取随机数(t

(2)同样服务端选取随机数(t

(3)若上述验证有效,则客户端计算密钥值T=H

(4)双方用生成的同一会话密钥进行后续的通信。

相关技术
  • 一种基于无证书的安全网络连接握手方法
  • 一种基于三元对等鉴别的可信网络连接握手方法
技术分类

06120112527902