本发明涉及数据传输技术领域,尤其涉及一种基于多重加密的数据传输方法。
背景技术:
随着智能交通的发展,我国车联网用户的规模也逐年提升,行业渗透率将从2010年的2%,上升到2017年的10%,并在突破10%后进入加速增长阶段。预计到2020年,用户规模将突破5000万户。对车与车之间通信的要求标准越来越高,对低功耗、传输快、范围广的无线通信网络的广泛应用需求迫切,在此基础之上,通信的安全性也变得十分重要。
现有技术中,车辆网内发送端与接收端在身份验证后即开始数据传输,数据传输过程中一般不采用加密,或仅采用一种加密方式对所有需要传输的数据进行加密,数据的保密性、完整性及真实性得不到保障。
因此,如何保证车辆网内发送端与接收端在数据传输时的保密性、完整性及真实性成为了本领域技术人员急需解决的问题。
技术实现要素:
针对现有技术存在的上述不足,本发明要解决的技术问题是:保证车辆网内发送端与接收端在数据传输时的保密性、完整性及真实性。
为解决上述技术问题,本发明采用了如下的技术方案:
一种基于多重加密的数据传输方法,在发送端与接收端完成身份认证之后进行数据传输,数据传输包括如下步骤:
发送端生成数据传输随机数明文;
发送端将数据包头、明文数据及数据传输随机数明文进行哈希计算,得到第一数据传输哈希值;
发送端使用发送端签名私钥对第一数据传输哈希值进行签名,得到第一数据传输哈希值签名;
发送端使用发送端加密公钥对明文数据加密,得到密文数据;
发送端与接收端协商数据传输会话密钥K1;
发送端使用数据传输会话密钥K1对数据传输随机数明文加密,得到数据传输随机数密文;
发送端将数据包头、第一数据传输哈希值签名、密文数据及数据传输随机数密文发送至接收端;
接收端使用发送端加密私钥对密文数据解密得到明文数据;
接收端使用数据传输会话密钥K1对数据传输随机数密文解密,得到数据传输随机数明文;
接收端将数据包头、明文数据及数据传输随机数明文进行哈希计算,得到第二数据传输哈希值;
接收端使用发送端签名公钥对第一数据传输哈希值签名进行解签,得到第一数据传输哈希值;
当第一数据传输哈希值与第二数据传输哈希值一致时,接收端判断发送端发送的数据包头、第一数据传输哈希值、第一数据传输哈希值签名、密文数据及数据传输随机数密文为真,完成此次数据传输。
优选地,发送端与接收端进行身份验证的方法包括:
接收端验证发送端的数字证书及ID的真实性;
发送端验证接收端的数字证书及ID的真实性;
当发送端与接收端均判断对方的数字证书及ID为真时,完成发送端与接收端的身份验证。
优选地,接收端验证发送端的数字证书及ID的真实性的方法包括:
发送端用发送端签名私钥将第一发送端ID签名,得到发送端ID密文;
发送端将发送端数字证书及发送端ID密文发送至接收端,发送端数字证书包括发送端相关信息、发送端加密公钥、发送端签名公钥及被认证中心私钥签名的第一发送端数字证书哈希值,发送端相关信息包括第二发送端ID;
接收端用认证中心公钥解签被认证中心私钥签名的第一发送端数字证书哈希值;
接收端将发送端数字证书中的发送端相关信息、发送端加密公钥及发送端签名公钥进行哈希计算得到第二发送端数字证书哈希值;
当第一发送端数字证书哈希值与第二发送端数字证书哈希值一致时,接收端判断发送端的数字证书为真;
接收端用发送端签名私钥解签发送端ID密文,得到第一发送端ID;
当第一发送端ID与第二发送端ID一致时,接收端判断发送端的ID为真。
优选地,发送端与接收端进行身份验证之前,本方法还包括:
发送端向认证中心发送发送端注册请求及发送端相关信息;
认证中心基于发送端相关信息生成发送端加密公钥、发送端加密私钥、发送端签名公钥及发送端签名私钥;
认证中心将发送端相关信息、发送端加密公钥及发送端签名公钥进行哈希计算,得到第一发送端数字证书哈希值;
认证中心用认证中心私钥对第一发送端数字证书哈希值进行签名;
认证中心生成发送端数字证书,发送端数字证书包括发送端相关信息、发送端加密公钥、发送端签名公钥及被认证中心私钥签名的第一发送端数字证书哈希值;
认证中心将发送端数字证书及发送端签名私钥发送至发送端;
认证中心将发送端加密私钥、发送端签名公钥及认证中心公钥发送至接收端。
优选地,所述认证中心将发送端数字证书及发送端签名私钥发送至发送端包括:
认证中心与发送端协商第一私钥传输会话密钥K2;
认证中心使用第一私钥传输会话密钥K2对发送端签名私钥加密;
认证中心发送发送端数字证书及加密后的发送端签名私钥至发送端;
发送端使用第一私钥传输会话密钥K2对发送端签名私钥解密。
优选地,还包括:
认证中心保存发送端数字证书;
当认证中心将发送端数字证书及发送端签名私钥发送至发送端后,认证中心删除自身保留的发送端签名私钥。
优选地,发送端验证接收端的数字证书及ID的真实性的方法包括:
接收端用接收端签名私钥将第一接收端ID签名,得到接收端ID密文;
接收端将接收端数字证书及接收端ID密文发送至发送端,接收端数字证书包括接收端相关信息、接收端加密公钥、接收端签名公钥及被认证中心私钥签名的第一接收端数字证书哈希值,接收端相关信息包括第二接收端ID;
发送端用认证中心公钥解签被认证中心私钥签名的第一接收端数字证书哈希值;
发送端将接收端数字证书中的接收端相关信息、接收端加密公钥及接收端签名公钥进行哈希计算得到第二接收端数字证书哈希值;
当第一接收端数字证书哈希值与第二接收端数字证书哈希值一致时,发送端判断接收端的数字证书为真;
发送端用接收端签名私钥解签接收端ID密文,得到第一接收端ID;
当第一接收端ID与第二接收端ID一致时,发送端判断接收端的ID为真。
优选地,接收端与发送端进行身份验证之前,本方法还包括:
接收端向认证中心发送接收端注册请求及接收端相关信息;
认证中心基于接收端相关信息生成接收端加密公钥、接收端加密私钥、接收端签名公钥及接收端签名私钥;
认证中心将接收端相关信息、接收端加密公钥及接收端签名公钥进行哈希计算,得到第一接收端数字证书哈希值;
认证中心用认证中心私钥对第一接收端数字证书哈希值进行签名;
认证中心生成接收端数字证书,接收端数字证书包括接收端相关信息、接收端加密公钥、接收端签名公钥及被认证中心私钥签名的第一接收端数字证书哈希值;
认证中心将接收端数字证书及接收端签名私钥发送至接收端;
认证中心将接收端加密私钥、接收端签名公钥及认证中心公钥发送至发送端。
优选地,所述认证中心将接收端数字证书及接收端签名私钥发送至接收端包括:
认证中心与接收端协商第二私钥传输会话密钥K3;
认证中心使用第二私钥传输会话密钥K3对接收端签名私钥加密;
认证中心发送接收端数字证书及加密后的接收端签名私钥至接收端;
接收端使用第二私钥传输会话密钥K3对接收端签名私钥解密。
优选地,还包括:
认证中心保存接收端数字证书;
当认证中心将接收端数字证书及接收端签名私钥发送至接收端后,认证中心删除自身保留的接收端签名私钥。
综上所述,本申请公开了一种基于多重加密的数据传输方法,在发送端与接收端完成身份认证之后进行数据传输,数据传输包括如下步骤:发送端生成数据传输随机数明文;发送端将数据包头、明文数据及数据传输随机数明文进行哈希计算,得到第一数据传输哈希值;发送端使用发送端签名私钥对第一数据传输哈希值进行签名,得到第一数据传输哈希值签名;发送端使用发送端加密公钥对明文数据加密,得到密文数据;发送端与接收端协商数据传输会话密钥K1;发送端使用数据传输会话密钥K1对数据传输随机数明文加密,得到数据传输随机数密文;发送端将数据包头、第一数据传输哈希值签名、密文数据及数据传输随机数密文发送至接收端;接收端使用发送端加密私钥对密文数据解密得到明文数据;接收端使用数据传输会话密钥K1对数据传输随机数密文解密,得到数据传输随机数明文;接收端将数据包头、明文数据及数据传输随机数明文进行哈希计算,得到第二数据传输哈希值;接收端使用发送端签名公钥对第一数据传输哈希值签名进行解签,得到第一数据传输哈希值;当第一数据传输哈希值与第二数据传输哈希值一致时,接收端判断发送端发送的数据包头、第一数据传输哈希值、第一数据传输哈希值签名、密文数据及数据传输随机数密文为真,完成此次数据传输。与现有技术相比,本申请采用三重混合加密,每次传输数据时,采用非对称加密方法加密明文数据,采用对称加密方法加密数据传输随机数明文,还在传输的数据中追加签名,一旦发现签名不一致,则可推断有非法攻击者,且每次生成的随机数也是不同的,且掺杂在加密消息当中,因此攻击者很难判断具体的密文长度和具体加密消息的位置,也就无法破解与重用,从而有效地抵御了重放攻击,保证了数据传输的保密性及真实性,此外本申请还采用对比哈希值的方式来保证了传输的数据的完整性。
附图说明
图1是本申请公开了一种基于多重加密的数据传输方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述说明。
如图1所示,本申请公开了一种基于多重加密的数据传输方法,在发送端与接收端完成身份认证之后进行数据传输,数据传输包括如下步骤:
S101、发送端生成数据传输随机数明文;
S102、发送端将数据包头、明文数据及数据传输随机数明文进行哈希计算,得到第一数据传输哈希值;
S103、发送端使用发送端签名私钥对第一数据传输哈希值进行签名,得到第一数据传输哈希值签名;
S104、发送端使用发送端加密公钥对明文数据加密,得到密文数据;
S105、发送端与接收端协商数据传输会话密钥K1;
S106、发送端使用数据传输会话密钥K1对数据传输随机数明文加密,得到数据传输随机数密文;
S107、发送端将数据包头、第一数据传输哈希值签名、密文数据及数据传输随机数密文发送至接收端;
S108、接收端使用发送端加密私钥对密文数据解密得到明文数据;
S109、接收端使用数据传输会话密钥K1对数据传输随机数密文解密,得到数据传输随机数明文;
S110、接收端将数据包头、明文数据及数据传输随机数明文进行哈希计算,得到第二数据传输哈希值;
S111、接收端使用发送端签名公钥对第一数据传输哈希值签名进行解签,得到第一数据传输哈希值;
S112、当第一数据传输哈希值与第二数据传输哈希值一致时,接收端判断发送端发送的数据包头、第一数据传输哈希值、第一数据传输哈希值签名、密文数据及数据传输随机数密文为真,完成此次数据传输。
本申请的数据传输方法应用在车联网中时,其发送端及接收端均可以是车载单元或路侧单元。且本申请中,接收端与发送端的身份可相互转换。
本申请中,随机数是调用系统的Random() 函数产生的。
本申请中,对称加密及解密可采用AES(高级加密标准,Advanced Encryption Standard)加密算法进行。
本申请中,对称加密及解密的密钥可采用Diffie-Hellman密钥交换协议进行协商。
本申请中,非对称加密及解密可采用NTRU(Number Theory Research Unit)算法进行。
与现有技术相比,本申请采用三重混合加密,每次传输数据时,采用非对称加密方法加密明文数据,采用对称加密方法加密数据传输随机数明文,还在传输的数据中追加签名,一旦发现签名不一致,则可推断有非法攻击者,且每次生成的随机数也是不同的,且掺杂在加密消息当中,因此攻击者很难判断具体的密文长度和具体加密消息的位置,也就无法破解与重用,从而有效地抵御了重放攻击,保证了数据传输的保密性及真实性,此外本申请还采用对比哈希值的方式来保证了传输的数据的完整性。
具体实施时,发送端与接收端进行身份验证的方法包括:
接收端验证发送端的数字证书及ID的真实性;
发送端验证接收端的数字证书及ID的真实性;
当发送端与接收端均判断对方的数字证书及ID为真时,完成发送端与接收端的身份验证。
本申请中,接收端与发送端相互进行身份验证时,既验证数字证书的真伪,还要验证ID是否正确,采取双重验证的方式,提高了身份验证的准确性。
具体实施时,接收端验证发送端的数字证书及ID的真实性的方法包括:
发送端用发送端签名公钥将第一发送端ID加密,得到发送端ID密文;
发送端将发送端数字证书及发送端ID密文发送至接收端,发送端数字证书包括发送端相关信息、发送端加密公钥、发送端签名公钥及被认证中心私钥签名的第一发送端数字证书哈希值,发送端相关信息包括第二发送端ID;
接收端用认证中心公钥解密被认证中心私钥签名的第一发送端数字证书哈希值;
接收端将发送端数字证书中的发送端相关信息、发送端加密公钥及发送端签名公钥进行哈希计算得到第二发送端数字证书哈希值;
当第一发送端数字证书哈希值与第二发送端数字证书哈希值一致时,接收端判断发送端的数字证书为真;
接收端用发送端签名私钥解密发送端ID密文,得到第一发送端ID;
当第一发送端ID与第二发送端ID一致时,接收端判断发送端的ID为真。
具体实施时,发送端与接收端进行身份验证之前,本方法还包括:
发送端向认证中心发送发送端注册请求及发送端相关信息;
认证中心基于发送端相关信息生成发送端加密公钥、发送端加密私钥、发送端签名公钥及发送端签名私钥;
认证中心将发送端相关信息、发送端加密公钥及发送端签名公钥进行哈希计算,得到第一发送端数字证书哈希值;
认证中心用认证中心私钥对第一发送端数字证书哈希值加密;
认证中心生成发送端数字证书,发送端数字证书包括发送端相关信息、发送端加密公钥、发送端签名公钥及被认证中心私钥签名的第一发送端数字证书哈希值;
认证中心将发送端数字证书、发送端加密私钥、发送端签名私钥发送至发送端;
认证中心将发送端加密公钥、发送端签名公钥及认证中心公钥发送至接收端。
具体实施时,所述认证中心将发送端数字证书、发送端加密私钥、发送端签名私钥发送至发送端包括:
认证中心与发送端协商第一私钥传输会话密钥K2;
认证中心使用第一私钥传输会话密钥K2对发送端加密私钥及发送端签名私钥加密;
认证中心发送发送端数字证书、加密后的发送端加密私钥及加密后的发送端签名私钥至发送端;
发送端使用第一私钥传输会话密钥K2对发送端加密私钥及发送端签名私钥解密。
本申请中在进行私钥的发送时,采用对称加密方式,对私钥进行加密发送,进一步提高了数据传输方法的保密性。
具体实施时,还包括:
认证中心保存发送端数字证书;
当认证中心将发送端数字证书、发送端加密私钥、发送端签名私钥发送至发送端后,认证中心删除自身保留的发送端签名私钥。
在本申请中,认证中心将数字证书进行备份,便于日后查询,此外,为了保证签名私钥的唯一性,在将签名私钥发送出去之后,需要删除存储在认证中心的签名私钥,避免认证中心对签名私钥进行伪造。认证中心对于加密私钥可以用自身的密钥进行加密后进行存储。
具体实施时,发送端验证接收端的数字证书及ID的真实性的方法包括:
接收端用接收端签名公钥将第一接收端ID加密,得到接收端ID密文;
接收端将接收端数字证书及接收端ID密文发送至发送端,接收端数字证书包括接收端相关信息、接收端加密公钥、接收端签名公钥及被认证中心私钥签名的第一接收端数字证书哈希值,接收端相关信息包括第二接收端ID;
发送端用认证中心公钥解密被认证中心私钥签名的第一接收端数字证书哈希值;
发送端将接收端数字证书中的接收端相关信息、接收端加密公钥及接收端签名公钥进行哈希计算得到第二接收端数字证书哈希值;
当第一接收端数字证书哈希值与第二接收端数字证书哈希值一致时,发送端判断接收端的数字证书为真;
发送端用接收端签名私钥解密接收端ID密文,得到第一接收端ID;
当第一接收端ID与第二接收端ID一致时,发送端判断接收端的ID为真。
该身份认证方式是基于PKI(Public Key Infrastructure 公钥基础设施)的,数字证书可以由用户独立验证,不需要在线查询。
具体实施时,接收端与发送端进行身份验证之前,本方法还包括:
接收端向认证中心发送接收端注册请求及接收端相关信息;
认证中心基于接收端相关信息生成接收端加密公钥、接收端加密私钥、接收端签名公钥及接收端签名私钥;
认证中心将接收端相关信息、接收端加密公钥及接收端签名公钥进行哈希计算,得到第一接收端数字证书哈希值;
认证中心用认证中心私钥对第一接收端数字证书哈希值加密;
认证中心生成接收端数字证书,接收端数字证书包括接收端相关信息、接收端加密公钥、接收端签名公钥及被认证中心私钥签名的第一接收端数字证书哈希值;
认证中心将接收端数字证书、接收端加密私钥、接收端签名私钥发送至接收端;
认证中心将接收端加密公钥、接收端签名公钥及认证中心公钥发送至发送端。
具体实施时,所述认证中心将接收端数字证书、接收端加密私钥、接收端签名私钥发送至接收端包括:
认证中心与接收端协商第二私钥传输会话密钥K3;
认证中心使用第二私钥传输会话密钥K3对接收端加密私钥及接收端签名私钥加密;
认证中心发送接收端数字证书、加密后的接收端加密私钥及加密后的接收端签名私钥至接收端;
接收端使用第二私钥传输会话密钥K3对接收端加密私钥及接收端签名私钥解密。
本申请中在进行私钥的发送时,采用对称加密方式,对私钥进行加密发送,进一步提高了数据传输方法的保密性。
具体实施时,还包括:
认证中心保存接收端数字证书;
当认证中心将接收端数字证书、接收端加密私钥、接收端签名私钥发送至接收端后,认证中心删除自身保留的接收端签名私钥。
在本申请中,认证中心将数字证书进行备份,便于日后查询,此外,为了保证签名私钥的唯一性,在将签名私钥发送出去之后,需要删除存储在认证中心的签名私钥,避免认证中心对签名私钥进行伪造。认证中心对于加密私钥可以用自身的密钥进行加密后进行存储。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。