本发明涉及安全通信领域,尤其涉及一种实现安全通信的方法、终端及系统。
背景技术:
通讯双方要实现安全通信,通常情况下是参考ssl(securesocketslayer安全套接层)建立安全通道的流程,而为了确保非对称密钥的用途唯一(即一对公私钥只能用于加解密或签名验签),则需要进行通信的双方之一有两对非对称密钥,因为至少需要一方使用一对非对称密钥用于加解密,及使用另一对非对称密钥用于签名验签。
因此,按照常规的建立安全通道的流程,至少需要三对公私钥对,若通讯角色多的话,则密钥也相应的要增加较多组,一方面增加通讯双方的存储空间,另一方面也需要向ca申请签发多本证书,增加了签发工作的开销;另外,整个流程,至少需要进行三次私钥运算,由于私钥运算本身占用是时间较长,从而拉长了安全通道建立的时间,降低了通信效率。
技术实现要素:
本发明所要解决的技术问题是:提供一种实现安全通信的方法、终端及系统,能够缩短安全通道建立的时间,提高通信效率。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种实现安全通信的方法,包括步骤:
s1、接收另一终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密所述第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述另一终端;
s2、接收所述另一终端发送的第二加密数据,所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥后的数据,所述第二临时会话密钥由所述另一终端生成;
s3、采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种实现安全通信的方法,包括步骤:
s1、第一终端接收第二终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述第二终端;
s2、第二终端生成第二临时会话密钥,采用所述第二工作证书加密所述第二临时会话密钥,得到第二加密数据,发送所述第二加密数据给所述第一终端;
s3、所述第一终端采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种实现安全通信的终端,包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
s1、接收另一终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密所述第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述另一终端;
s2、接收所述另一终端发送的第二加密数据,所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥后的数据,所述第二临时会话密钥由所述另一终端生成;
s3、采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种实现安全通信的系统,包括第一终端和第二终端,所述第一终端包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序,所述第二终端包括第三存储器、第三处理器及存储在所述第三存储器上并可在所述第三处理器上运行的第三计算机程序,所述第二处理器执行所述第二计算机程序时实现以下步骤:
s1、接收第二终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述第二终端;
s3、接收第二终端发送的第二加密数据,采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
所述第三处理器执行所述第三计算机程序时实现以下步骤:
s2、接收所述第一终端发送的第一加密数据和第二工作证书,生成第二临时会话密钥,采用所述第二工作证书加密所述第二临时会话密钥,得到第二加密数据,发送所述第二加密数据给所述第一终端。
本发明的有益效果在于:进行通信的双方各自生成形成实现安全通信的会话密钥的临时会话密钥,并采用对方的工作证书对生成的临时会话密钥进行加密,只需要各自生成一对公私钥对,并且只需要两次私钥计算就可以实现双方安全通道的建立,不仅降低了对公私钥的存储空间要求,减少对ca中心证书请求的数量,并且也优化了运算流程,提高了建立安全通道的效率。
附图说明
图1为本发明实施例一的一种实现安全通信的方法流程图;
图2为本发明实施例三的一种实现安全通信的方法流程图;
图3为本发明实施例五的一种实现安全通信的终端结构示意图;
图4为本发明实施例七的一种实现安全通信的系统结构示意图;
标号说明:
1、一种实现安全通信的终端;2、第一存储器;3、第一处理器;4、第一终端;5、第二存储器;6、第二处理器;7、第二终端;8、第三存储器;9、第三处理器;10、一种实现安全通信的系统。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:进行通信的双方各自生成形成实现安全通信的会话密钥的临时会话密钥,并采用对方的工作证书对生成的临时会话密钥进行加密,只需要各自生成一对公私钥对,并且只需要两次私钥计算就可以实现双方安全通道的建立。
请参照图1,一种实现安全通信的方法,包括步骤:
s1、接收另一终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密所述第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述另一终端;
s2、接收所述另一终端发送的第二加密数据,所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥后的数据,所述第二临时会话密钥由所述另一终端生成;
s3、采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥。
由上述描述可知,本发明的有益效果在于:进行通信的双方各自生成形成实现安全通信的会话密钥的临时会话密钥,并采用对方的工作证书对生成的临时会话密钥进行加密,只需要各自生成一对公私钥对,并且只需要两次私钥计算就可以实现双方安全通道的建立,不仅降低了对公私钥的存储空间要求,减少对ca中心证书请求的数量,并且也优化了运算流程,提高了建立安全通道的效率。
进一步的,所述步骤s1中生成第一临时会话密钥包括:
采用预制的与所述第一工作证书对应的根证书验证所述第一工作证书是否合法,若是,则生成第一临时会话密钥。
由上述描述可知,根据预制的与所述第一工作证书对应的根证书验证所述第一工作证书的合法性,若合法,才进行后续的操作,一方面提高了安全性,另一方面避免后续无谓的操作。
进一步的,所述步骤s1中还包括:
接收所述另一终端发送的第一随机数;
采用所述第一工作证书加密第一临时会话密钥和第一随机数,得到所述第一加密数据,使得所述另一终端采用与所述第一工作证书对应的第一私钥解密所述第一加密数据后得到第三随机数,并根据所述第一随机数和第三随机数验证第一加密数据发送端的合法性。
由上述描述可知,通过第一随机数的传递实现对第一加密数据发送端的合法性的验证,实现对发送端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
进一步的,所述步骤s2中所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥和实现安全通信的会话密钥的第一校验值后的数据;
所述实现安全通信的会话密钥的第一校验值是所述另一终端根据生成的实现安全通信的会话密钥得到;
所述实现安全通信的会话密钥的生成是所述另一终端根据解密所述第一加密数据后获取的第一临时会话密钥和自身生成的第二临时会话密钥生成;
所述步骤s3包括:
s31、采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值;
s32、根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
s33、根据所述实现安全通信的会话密钥生成对应的第三校验值;
s34、判断所述第二校验值是否等于所述第三校验值,若是,则将所述第三校验值发送给所述另一终端,以使得所述另一终端比对所述第三校验值和第一校验值以判断所述实现安全通信的会话密钥是否正确。
由上述描述可知,通过对实现安全通信的会话密钥的校验值的验证,保证了从另一终端接收到的第二临时会话密钥的正确性,进而保证所生成的实现安全通信的会话密钥的正确性。
进一步的,所述根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥包括:
将所述第一临时会话密钥和第二临时会话密钥异或生成实现安全通信的会话密钥。
由上述描述可知,通过异或方式生成实现安全通信的会话密钥,方便快捷。
进一步的,所述步骤s1中还包括:生成第二随机数,发送所述第二随机数给所述另一终端;
所述步骤s2中所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥、所述第二随机数和实现安全通信的会话密钥的第一校验值后的数据;
所述步骤s31包括:
采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到解密数据,从所述解密数据获取第四随机数;
根据所述第二随机数和第四随机数验证所述另一终端是否合法,若是,则从所述解密数据获取所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值。
由上述描述可知,通过第二随机数的传递实现对所述另一终端的合法性的验证,实现对所述另一终端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
请参照图2,一种实现安全通信的方法,包括步骤:
s1、第一终端接收第二终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述第二终端;
s2、第二终端生成第二临时会话密钥,采用所述第二工作证书加密所述第二临时会话密钥,得到第二加密数据,发送所述第二加密数据给所述第一终端;
s3、所述第一终端采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥。
由上述描述可知,本发明的有益效果在于:进行通信的双方各自生成形成实现安全通信的会话密钥的临时会话密钥,并采用对方的工作证书对生成的临时会话密钥进行加密,只需要各自生成一对公私钥对,并且只需要两次私钥计算就可以实现双方安全通道的建立,不仅降低了对公私钥的存储空间要求,减少对ca中心证书请求的数量,并且也优化了运算流程,提高了建立安全通道的效率。
进一步的,所述步骤s1中所述第一终端生成第一临时会话密钥包括:
采用预制的与所述第一工作证书对应的根证书验证所述第一工作证书是否合法,若是,则生成第一临时会话密钥。
进一步的,所述步骤s2中所述第二终端生成第二临时会话密钥包括:
采用预制的与所述第二工作证书对应的根证书验证所述第二工作证书是否合法,若是,则生成第二临时会话密钥。
由上述描述可知,每一端在生成对应的临时会话密钥时,先对对方的工作证书进行验证,在验证合法的前提下,再进行临时会话密钥的生成,不仅提高了安全性,也避免了后续无谓的操作。
进一步的,所述步骤s1中还包括:
所述第一终端接收所述第二终端发送的第一随机数;
所述第一终端采用所述第一工作证书加密第一临时会话密钥和第一随机数,得到所述第一加密数据;
所述步骤s2所述第二终端生成第二临时会话密钥包括:
所述第二终端采用与所述第一工作证书对应的第一私钥解密所述第一加密数据后得到第三随机数;
所述第二终端根据所述第一随机数和第三随机数验证所述第一终端是否合法,若是,则生成第二临时会话密钥。
由上述描述可知,通过第一随机数的传递实现对所述第一终端的合法性的验证,实现对第一终端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
进一步的,所述步骤s2中生成第二临时会话密钥后还包括:
所述第二终端根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
所述第二终端根据所述实现安全通信的会话密钥生成实现安全通信的会话密钥的第一校验值;
所述采用所述第二工作证书加密所述第二临时会话密钥,得到第二加密数据包括:
采用所述第二工作证书加密所述第二临时会话密钥和实现安全通信的会话密钥的第一校验值,得到所述第二加密数据;
所述步骤s3包括:
s31、所述第一终端采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值;
s32、所述第一终端根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
s33、所述第一终端根据所述实现安全通信的会话密钥生成对应的第三校验值;
s34、所述第一终端判断所述第二校验值是否等于所述第三校验值,若是,则将所述第三校验值发送给所述第二终端;
s35、所述第二终端比对所述第三校验值和第一校验值以判断所述实现安全通信的会话密钥是否正确。
由上述描述可知,通过对实现安全通信的会话密钥的校验值的验证,保证了从另一终端接收到的第二临时会话密钥的正确性,进而保证所生成的实现安全通信的会话密钥的正确性。
进一步的,所述根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥包括:
将所述第一临时会话密钥和第二临时会话密钥异或生成实现安全通信的会话密钥。
由上述描述可知,通过异或方式生成实现安全通信的会话密钥,方便快捷。
进一步的,所述步骤s35之后还包括:
若所述实现安全通信的会话密钥正确,则所述第二终端采用所述实现安全通信的会话密钥加密与第一终端交互的数据。
由上述描述可知,通过验证正确的实现安全通信的会话密钥对两个终端进行交互的数据进行加密,保证了双方通信的安全性。
进一步的,所述步骤s1中还包括:所述第一终端生成第二随机数,发送所述第二随机数给所述第二终端;
所述步骤s2中所述采用所述第二工作证书加密所述第二临时会话密钥和实现安全通信的会话密钥的第一校验值,得到所述第二加密数据包括:
采用所述第二工作证书加密所述第二临时会话密钥、实现安全通信的会话密钥的第一校验值和所述第二随机数,得到所述第二加密数据;
所述步骤s31包括:
所述第一终端采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到解密数据,从所述解密数据获取第四随机数;
根据所述第二随机数和第四随机数验证所述第二终端是否合法,若是,则从所述解密数据获取所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值。
由上述描述可知,通过第二随机数的传递实现对所述另一终端的合法性的验证,实现对所述另一终端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
请参照图3,一种实现安全通信的终端,包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
s1、接收另一终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密所述第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述另一终端;
s2、接收所述另一终端发送的第二加密数据,所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥后的数据,所述第二临时会话密钥由所述另一终端生成;
s3、采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥。
由上述描述可知,本发明的有益效果在于:进行通信的双方各自生成形成实现安全通信的会话密钥的临时会话密钥,并采用对方的工作证书对生成的临时会话密钥进行加密,只需要各自生成一对公私钥对,并且只需要两次私钥计算就可以实现双方安全通道的建立,不仅降低了对公私钥的存储空间要求,减少对ca中心证书请求的数量,并且也优化了运算流程,提高了建立安全通道的效率。
进一步的,所述步骤s1中生成第一临时会话密钥包括:
采用预制的与所述第一工作证书对应的根证书验证所述第一工作证书是否合法,若是,则生成第一临时会话密钥。
由上述描述可知,根据预制的与所述第一工作证书对应的根证书验证所述第一工作证书的合法性,若合法,才进行后续的操作,一方面提高了安全性,另一方面避免后续无谓的操作。
进一步的,所述步骤s1中还包括:
接收所述另一终端发送的第一随机数;
采用所述第一工作证书加密第一临时会话密钥和第一随机数,得到所述第一加密数据,使得所述另一终端采用与所述第一工作证书对应的第一私钥解密所述第一加密数据后得到第三随机数,并根据所述第一随机数和第三随机数验证第一加密数据发送端的合法性。
由上述描述可知,通过第一随机数的传递实现对第一加密数据发送端的合法性的验证,实现对发送端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
进一步的,所述步骤s2中所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥和实现安全通信的会话密钥的第一校验值后的数据;
所述实现安全通信的会话密钥的第一校验值是所述另一终端根据生成的实现安全通信的会话密钥得到;
所述实现安全通信的会话密钥的生成是所述另一终端根据解密所述第一加密数据后获取的第一临时会话密钥和自身生成的第二临时会话密钥生成;
所述步骤s3包括:
s31、采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值;
s32、根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
s33、根据所述实现安全通信的会话密钥生成对应的第三校验值;
s34、判断所述第二校验值是否等于所述第三校验值,若是,则将所述第三校验值发送给所述另一终端,以使得所述另一终端比对所述第三校验值和第一校验值以判断所述实现安全通信的会话密钥是否正确。
由上述描述可知,通过对实现安全通信的会话密钥的校验值的验证,保证了从另一终端接收到的第二临时会话密钥的正确性,进而保证所生成的实现安全通信的会话密钥的正确性。
进一步的,所述根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥包括:
将所述第一临时会话密钥和第二临时会话密钥异或生成实现安全通信的会话密钥。
由上述描述可知,通过异或方式生成实现安全通信的会话密钥,方便快捷。
进一步的,所述步骤s1中还包括:生成第二随机数,发送所述第二随机数给所述另一终端;
所述步骤s2中所述第二加密数据包括所述另一终端采用所述第二工作证书加密第二临时会话密钥、所述第二随机数和实现安全通信的会话密钥的第一校验值后的数据;
所述步骤s31包括:
采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到解密数据,从所述解密数据获取第四随机数;
根据所述第二随机数和第四随机数验证所述另一终端是否合法,若是,则从所述解密数据获取所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值。
由上述描述可知,通过第二随机数的传递实现对所述另一终端的合法性的验证,实现对所述另一终端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
请参照图4,一种实现安全通信的系统,包括第一终端和第二终端,所述第一终端包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序,所述第二终端包括第三存储器、第三处理器及存储在所述第三存储器上并可在所述第三处理器上运行的第三计算机程序,所述第二处理器执行所述第二计算机程序时实现以下步骤:
s1、接收第二终端发送的第一工作证书,生成第一临时会话密钥,采用所述第一工作证书加密第一临时会话密钥,得到第一加密数据,发送所述第一加密数据和第二工作证书给所述第二终端;
s3、接收第二终端发送的第二加密数据,采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥,根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
所述第三处理器执行所述第三计算机程序时实现以下步骤:
s2、接收所述第一终端发送的第一加密数据和第二工作证书,生成第二临时会话密钥,采用所述第二工作证书加密所述第二临时会话密钥,得到第二加密数据,发送所述第二加密数据给所述第一终端。
本发明的有益效果在于:进行通信的双方各自生成形成实现安全通信的会话密钥的临时会话密钥,并采用对方的工作证书对生成的临时会话密钥进行加密,只需要各自生成一对公私钥对,并且只需要两次私钥计算就可以实现双方安全通道的建立,不仅降低了对公私钥的存储空间要求,减少对ca中心证书请求的数量,并且也优化了运算流程,提高了建立安全通道的效率。
进一步的,所述步骤s1中所述第一终端生成第一临时会话密钥包括:
采用预制的与所述第一工作证书对应的根证书验证所述第一工作证书是否合法,若是,则生成第一临时会话密钥。
进一步的,所述步骤s2中生成第二临时会话密钥包括:
采用预制的与所述第二工作证书对应的根证书验证所述第二工作证书是否合法,若是,则生成第二临时会话密钥。
由上述描述可知,每一端在生成对应的临时会话密钥时,先对对方的工作证书进行验证,在验证合法的前提下,再进行临时会话密钥的生成,不仅提高了安全性,也避免了后续无谓的操作。
进一步的,所述步骤s1中还包括:
接收所述第二终端发送的第一随机数;
采用所述第一工作证书加密第一临时会话密钥和第一随机数,得到所述第一加密数据;
所述步骤s2所述第二终端生成第二临时会话密钥包括:
采用与所述第一工作证书对应的第一私钥解密所述第一加密数据后得到第三随机数;
根据所述第一随机数和第三随机数验证所述第一终端是否合法,若是,则生成第二临时会话密钥。
由上述描述可知,通过第一随机数的传递实现对所述第一终端的合法性的验证,实现对第一终端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
进一步的,所述步骤s2中生成第二临时会话密钥后还包括:
根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
根据所述实现安全通信的会话密钥生成实现安全通信的会话密钥的第一校验值;
所述采用所述第二工作证书加密所述第二临时会话密钥,得到第二加密数据包括:
采用所述第二工作证书加密所述第二临时会话密钥和实现安全通信的会话密钥的第一校验值,得到所述第二加密数据;
所述步骤s3包括:
s31、采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值;
s32、根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥;
s33、根据所述实现安全通信的会话密钥生成对应的第三校验值;
s34、判断所述第二校验值是否等于所述第三校验值,若是,则将所述第三校验值发送给所述第二终端;
所述第三处理器执行所述第三计算机程序时实现以下步骤:
s35、接收所述第三校验值,比对所述第三校验值和第一校验值以判断所述实现安全通信的会话密钥是否正确。
由上述描述可知,通过对实现安全通信的会话密钥的校验值的验证,保证了从另一终端接收到的第二临时会话密钥的正确性,进而保证所生成的实现安全通信的会话密钥的正确性。
进一步的,所述根据所述第一临时会话密钥和第二临时会话密钥生成实现安全通信的会话密钥包括:
将所述第一临时会话密钥和第二临时会话密钥异或生成实现安全通信的会话密钥。
由上述描述可知,通过异或方式生成实现安全通信的会话密钥,方便快捷。
进一步的,所述第三处理器执行所述第三计算机程序时实现以下步骤:
所述步骤s35之后还包括:
若所述实现安全通信的会话密钥正确,则采用所述实现安全通信的会话密钥加密与第一终端交互的数据。
由上述描述可知,通过验证正确的实现安全通信的会话密钥对两个终端进行交互的数据进行加密,保证了双方通信的安全性。
进一步的,所述步骤s1中还包括:生成第二随机数,发送所述第二随机数给所述第二终端;
所述步骤s2中所述采用所述第二工作证书加密所述第二临时会话密钥和实现安全通信的会话密钥的第一校验值,得到所述第二加密数据包括:
采用所述第二工作证书加密所述第二临时会话密钥、实现安全通信的会话密钥的第一校验值和所述第二随机数,得到所述第二加密数据;
所述步骤s31包括:
采用与所述第二工作证书对应的第二私钥解密所述第二加密数据,得到解密数据,从所述解密数据获取第四随机数;
根据所述第二随机数和第四随机数验证所述第二终端是否合法,若是,则从所述解密数据获取所述第二临时会话密钥和实现安全通信的会话密钥的第二校验值。
由上述描述可知,通过第二随机数的传递实现对所述另一终端的合法性的验证,实现对所述另一终端的身份验证,通过随机数能够防止重放攻击,进一步提高了安全性与抗攻击性。
实施例一
请参照图1,一种实现安全通信的方法,本实施例是以进行交互的通信双方其中一个终端的角度来描述,包括步骤:
s0、先在进行交互的两个终端分别预制工作证书、与工作证书对应的根证书以及与工作证书对应的私钥,具体的如下:
另一终端:预制根证书crtroot,由所述根证书签发的第一工作证书crt_a_e,与所述第一工作证书对应的第一私钥pri_a_e;
所述终端:预制根证书crtroot,由所述根证书签发的第二工作证书crt_b_e,与所述第二工作证书对应的第二私钥pri_b_e;
其中,根证书用于签发下级证书,即crt_a_e、crt_b_e都是crtroot签发的,典型情况下,使用rsa或sm2算法来实现签发;
s1、接收另一终端发送的第一工作证书crt_a_e,生成第一临时会话密钥rpk1,采用所述第一工作证书crt_a_e加密所述第一临时会话密钥rpk1,得到第一加密数据enc(crt_a_e,rpk1),发送所述第一加密数据和第二工作证书crt_b_e给所述另一终端;
具体的,生成第一临时会话密钥包括:
采用预制的与所述第一工作证书crt_a_e对应的根证书crtroot验证所述第一工作证书crt_a_e是否合法,若是,则生成第一临时会话密钥rpk1,否则,则提示第一工作证书crt_a_e不合法,并退出;
其中,所述临时密钥的生成可以采用密钥生成算法中密钥的最高强度,特别地,若使用tdes算法,则长度为24字节,若使用aes算法,则长度为32字节;
s2、接收所述另一终端发送的第二加密数据enc(crt_b_e,rpk2)所述第二加密数据包括所述另一终端采用所述第二工作证书crt_b_e加密第二临时会话密钥rpk2后的数据,所述第二临时会话密钥rpk2由所述另一终端生成;
s3、采用与所述第二工作证书crt_b_e对应的第二私钥pri_b_e解密所述第二加密数据enc(crt_b_e,rpk2),得到所述第二临时会话密钥rpk2,根据所述第一临时会话密钥rpk1和第二临时会话密钥rpk2生成实现安全通信的会话密钥;
具体的,将所述第一临时会话密钥rpk1和第二临时会话密钥rpk2异或生成实现安全通信的会话密钥rpk。
实施例二
本实施例与实施例一的不同在于:所述步骤s1还包括:接收所述另一终端发送的第一随机数r1,所述随机数r1的长度可以根据实际情况需要进行设定,本实施例中,长度选择32字节;
采用所述第一工作证书crt_a_e加密第一临时会话密钥rpk1和第一随机数r1,得到所述第一加密数据enc(crt_a_e,rpk1+r1),使得所述另一终端采用与所述第一工作证书crt_a_e对应的第一私钥pri_a_e解密所述第一加密数据enc(crt_a_e,rpk1+r1)后得到第三随机数r1’,并根据所述第一随机数r1和第三随机数r1’验证第一加密数据发送端的合法性;
所述步骤s2中所述第二加密数据包括所述另一终端采用所述第二工作证书crt_b_e加密第二临时会话密钥rpk2和实现安全通信的会话密钥rpk的第一校验值kcv后的数据;
其中,校验值是对生成的会话密钥进行校验的值,可以使用所述会话密钥对约定的数据加密,取得到的加密数据的前3个字节作为校验值,通过该校验值,可以确保接收方接收到的密钥内容的正确性;
所述实现安全通信的会话密钥rpk的第一校验值kcv是所述另一终端根据生成的实现安全通信的会话密钥rpk得到;
所述实现安全通信的会话密钥rpk的生成是所述另一终端根据解密所述第一加密数据后获取的第一临时会话密钥rpk1和自身生成的第二临时会话密钥rpk2生成;
所述步骤s3包括:
s31、采用与所述第二工作证书crt_b_e对应的第二私钥pri_b_e解密所述第二加密数据,得到所述第二临时会话密钥rpk2和实现安全通信的会话密钥rpk的第二校验值kcv’;
s32、根据所述第一临时会话密钥rpk1和第二临时会话密钥rpk2生成实现安全通信的会话密钥rpk;
s33、根据所述实现安全通信的会话密钥rpk生成对应的第三校验值kcv”;
s34、判断所述第二校验值kcv’是否等于所述第三校验值kcv”,若是,则将所述第三校验值kcv”发送给所述另一终端,以使得所述另一终端比对所述第三校验值kcv”和第一校验值kcv以判断所述实现安全通信的会话密钥是否正确;
优选的,所述步骤s1中还包括:生成第二随机数r2,发送所述第二随机数r2给所述另一终端,所述随机数r2的长度可以根据实际情况需要进行设定,本实施例中,长度选择32字节;
所述步骤s2中所述第二加密数据包括所述另一终端采用所述第二工作证书crt_b_e加密第二临时会话密钥rpk2、所述第二随机数r2和实现安全通信的会话密钥rpk的第一校验值kcv后的数据;
所述步骤s31包括:
采用与所述第二工作证书crt_b_e对应的第二私钥pri_b_e解密所述第二加密数据,得到解密数据,从所述解密数据获取第四随机数r2’;
根据所述第二随机数r2和第四随机数r2‘验证所述另一终端是否合法,若是,则从所述解密数据获取所述第二临时会话密钥rpk2和实现安全通信的会话密钥的第二校验值kcv’。
实施例三
请参照图2,一种实现安全通信的方法,本实施例是以进行交互的通信双方的角度来描述,包括步骤:
s0、先在进行交互的两个终端分别预制工作证书、与工作证书对应的根证书以及与工作证书对应的私钥,具体的如下:
第二终端:预制根证书crtroot,由所述根证书签发的第一工作证书crt_a_e,与所述第一工作证书对应的第一私钥pri_a_e;
第一终端:预制根证书crtroot,由所述根证书签发的第二工作证书crt_b_e,与所述第二工作证书对应的第二私钥pri_b_e;
其中,根证书用于签发下级证书,即crt_a_e、crt_b_e都是crtroot签发的,典型情况下,使用rsa或sm2算法来实现签发;
s1、所述第一终端接收另一终端发送的第一工作证书crt_a_e,生成第一临时会话密钥rpk1,采用所述第一工作证书crt_a_e加密所述第一临时会话密钥rpk1,得到第一加密数据enc(crt_a_e,rpk1),发送所述第一加密数据enc(crt_a_e,rpk1)和第二工作证书crt_b_e给所述第二终端;
具体的,生成第一临时会话密钥包括:
采用预制的与所述第一工作证书crt_a_e对应的根证书crtroot验证所述第一工作证书crt_a_e是否合法,若是,则生成第一临时会话密钥rpk1,否则,则提示第一工作证书crt_a_e不合法,并退出;
其中,所述临时密钥的生成可以采用密钥生成算法中密钥的最高强度,特别地,若使用tdes算法,则长度为24字节,若使用aes算法,则长度为32字节;
s2、所述第二终端生成第二临时会话密钥rpk2,采用所述第二工作证书crt_b_e加密所述第二临时会话密钥rpk2,得到第二加密数据enc(crt_b_e,rpk2)发送所述第二加密数据给所述第一终端;
具体的,生成第二临时会话密钥包括:
采用预制的与所述第二工作证书crt_b_e对应的根证书crtroot验证所述第二工作证书crt_b_e是否合法,若是,则生成第二临时会话密钥rpk2,否则,则提示第一工作证书crt_b_e不合法,并退出;
s3、所述第一终端采用与所述第二工作证书crt_b_e对应的第二私钥pri_b_e解密所述第二加密数据enc(crt_b_e,rpk2),得到所述第二临时会话密钥rpk2,根据所述第一临时会话密钥rpk1和第二临时会话密钥rpk2生成实现安全通信的会话密钥;
具体的,将所述第一临时会话密钥rpk1和第二临时会话密钥rpk2异或生成实现安全通信的会话密钥rpk。
实施例四
本实施例与实施例一的不同在于:所述步骤s1还包括:所述第一终端接收所述第二终端发送的第一随机数r1,所述随机数r1的长度可以根据实际情况需要进行设定,本实施例中,长度选择32字节;
采用所述第一工作证书crt_a_e加密第一临时会话密钥rpk1和第一随机数r1,得到所述第一加密数据enc(crt_a_e,rpk1+r1);
所述步骤s2所述第二终端生成第二临时会话密钥rpk2包括:
所述第二终端采用与所述第一工作证书crt_a_e对应的第一私钥pri_a_e解密所述第一加密数据enc(crt_a_e,rpk1+r1)后得到第三随机数r1’;
所述第二终端根据所述第一随机数r1和第三随机数r1’验证所述第一终端是否合法,若是,则生成第二临时会话密钥rpk2;
所述步骤s2中生成第二临时会话密钥rpk2后还包括:
所述第二终端根据所述第一临时会话密钥rpk1和第二临时会话密钥rpk2生成实现安全通信的会话密钥rpk;
所述第二终端根据所述实现安全通信的会话密钥rpk生成实现安全通信的会话密钥的第一校验值kcv;
其中,校验值是对生成的会话密钥进行校验的值,可以使用所述会话密钥对约定的数据加密,取得到的加密数据的前3个字节作为校验值,通过该校验值,可以确保接收方接收到的密钥内容的正确性;
所述采用所述第二工作证书crt_b_e加密所述第二临时会话密钥rpk2,得到第二加密数据包括:
采用所述第二工作证书crt_b_e加密所述第二临时会话密钥rpk2和实现安全通信的会话密钥的第一校验值kcv,得到所述第二加密数据enc(crt_b_e,rpk2+kcv);
所述步骤s3包括:
s31、所述第一终端采用与所述第二工作证书crt_b_e对应的第二私钥pri_b_e解密所述第二加密数据enc(crt_b_e,rpk2+kcv),得到所述第二临时会话密钥rpk2和实现安全通信的会话密钥rpk的第二校验值kcv’;
s32、所述第一终端根据所述第一临时会话密钥rpk1和第二临时会话密钥rpk2生成实现安全通信的会话密钥rpk;
s33、所述第一终端根据所述实现安全通信的会话密钥rpk生成对应的第三校验值kcv“;
s34、所述第一终端判断所述第二校验值kcv’是否等于所述第三校验值kcv”,若是,则将所述第三校验值kcv”发送给所述第二终端;
s35、所述第二终端比对所述第三校验值kcv”和第一校验值kcv以判断所述实现安全通信的会话密钥rpk是否正确,若所述会话密钥rpk正确,则所述第二终端采用所述实现安全通信的会话密钥rpk加密与第一终端交互的数据;
优选的,所述步骤s1中还包括:生成第二随机数r2,发送所述第二随机数r2给所述第二终端,所述随机数r2的长度可以根据实际情况需要进行设定,本实施例中,长度选择32字节;
所述步骤s2中所述采用所述第二工作证书加密所述第二临时会话密钥和实现安全通信的会话密钥的第一校验值,得到所述第二加密数据包括:
采用所述第二工作证书crt_b_e加密所述第二临时会话密钥rpk2、实现安全通信的会话密钥的第一校验值kcv和所述第二随机数r2,得到所述第二加密数据enc(crt_b_e,rpk2+kcv+r2);
所述步骤s31包括:
所述第一终端采用与所述第二工作证书crt_b_e对应的第二私钥pri_b_e解密所述第二加密数据,得到解密数据,从所述解密数据获取第四随机数r2’;
根据所述第二随机数r2和第四随机数r2’验证所述另一终端是否合法,若是,则从所述解密数据获取所述第二临时会话密钥rpk2和实现安全通信的会话密钥的第二校验值kcv’。
实施例五
请参照图3,一种实现安全通信的终端1,包括第一存储器2、第一处理器3及存储在所述第一存储器2上并可在所述第一处理器3上运行的第一计算机程序,所述第一处理器3执行所述第一计算机程序时实现实施例一中的步骤。
实施例六
请参照图3,一种实现安全通信的终端1,包括第一存储器2、第一处理器3及存储在所述第一存储器2上并可在所述第一处理器3上运行的第一计算机程序,所述第一处理器3执行所述第一计算机程序时实现实施例二中的步骤。
实施例七
请参照图4,一种实现安全通信的系统10,包括第一终端4和第二终端7,所述第一终端4包括第二存储器5、第二处理器6及存储在所述第二存储器5上并可在所述第二处理器6上运行的第二计算机程序,所述第二终端7包括第三存储器8、第三处理器9及存储在所述第三存储器8上并可在所述第三处理器9上运行的第三计算机程序,所述第二处理器6执行所述第二计算机程序时实现实施例三中第一终端执行的步骤;所述第三处理器9执行所述第二计算机程序时实现实施例三中第二终端执行的步骤。
实施例八
请参照图4,一种实现安全通信的系统10,包括第一终端4和第二终端7,所述第一终端4包括第二存储器5、第二处理器6及存储在所述第二存储器5上并可在所述第二处理器6上运行的第二计算机程序,所述第二终端7包括第三存储器8、第三处理器9及存储在所述第三存储器8上并可在所述第三处理器9上运行的第三计算机程序,所述第二处理器6执行所述第二计算机程序时实现实施例四中第一终端执行的步骤;所述第三处理器9执行所述第二计算机程序时实现实施例四中第二终端执行的步骤。
综上所述,本发明提供的一种实现安全通信的方法、终端及系统,进行通信的双方各自生成形成实现安全通信的会话密钥的临时会话密钥,并采用对方的工作证书对生成的临时会话密钥进行加密,只需要各自生成一对公私钥对,并且只需要两次私钥计算就可以实现双方安全通道的建立,通过证书体系及公钥加密、私钥解密方式完成会话密钥的安全传递,同时比较会话密钥的校验值是否一致,若不一致,则说明接收方没有正确的私钥得到发送方生成的会话密钥,通过这种方式完成通信双方的身份认证,不仅降低了对公私钥的存储空间要求,减少对ca中心证书请求的数量,并且整个交互过程也优化了运算流程,提高了建立安全通道的效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。