一种密钥传递方法及装置与流程

文档序号:14943126发布日期:2018-07-13 21:35

本发明涉及通信领域,尤其涉及一种密钥传递方法及装置。



背景技术:

第三代合作伙伴计划(3GPP,3rd Generation Partnership Project)提出了一种移动网络认证方案,如图1所示,该认证方案的流程包括如下步骤:

步骤101:核心网网元(比如移动网络实体MME)向归属网网元(比如归属签约服务HSS)发送认证数据请求,比如发送Authentication Data Request消息,消息携带要认证的用户的标识,比如国际移动台标识IMSI,并携带核心网网元的公钥PubK;

步骤102:归属网网元(比如HSS),获取一个或一组用户的认证向量,认证向量由如下4部分组成:随机数RAND,网络认证参数AUTN,期望响应XRES,以及密钥Knp;归属网网元生成一个加密密钥Ks,并用其加密认证向量中的Knp以防止Knp在传输过程中被泄漏出去,然后再用PubK加密Ks得到EPubK(Ks),用于接收方解密认证向量中的密钥,并防止其传输过程中被泄漏出去;

步骤103:归属网网元(比如HSS)向核心网网元(比如MME)发送认证数据响应,比如发送Authentication Data Response消息,消息携带处理过的认证向量以及被PubK加密过的Ks——EPubK(Ks);

步骤104:核心网网元,比如MME,使用自己的私钥解密EPubK(Ks),获得Ks,并使用Ks解密收到的认证向量中的被Ks加密过的密钥;

步骤105:核心网网元(比如MME),向终端UE发送用户认证请求,比如发送User Authentication Request消息,携带收到的一个认证向量中的部分信息组成认证参数,比如RAND和AUTN;

步骤106:终端UE基于AUTN验证网络;终端UE基于RAND计算出响应值RES,并向核心网网元(比如MME),发送用户认证响应,比如发送User Authentication Response消息,消息携带认证信息,即RES;核心网网元比对RES和该认证向量中的XRES,如果RES=XRES则网络验证用户通过。

图1的流程中,认证向量中的AUTN用于终端UE验证网络,RAND用于网络验证终端UE的用户。

相关技术中,如果核心网网元和归属网网元的信令传输路径中存在其他中间传输网元,并且该网元被黑客攻破可以窃取传递的信令信息,则该传输网元可以修改信令信息中的任何字段内容,导致接收方收到的信息实际上并不是发送方发送的信息,如果其将PubK改为自己的公钥,归属网网元会使用修改的公钥加密Ks,该传输网元收到认证数据响应后,可以使用自己的私钥解密出Ks,从而可以使用Ks解密认证向量中的密钥,导致这些密钥被泄漏,从而影响安全性,这种攻击方式属于中间人(man-in-the-middle)攻击。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种密钥传递方法及装置。

本发明实施例提供的密钥传递方法,包括:

第一网络功能实体接收到来自第二网络功能实体的第一密文密钥和第一内容信息;

所述第一网络功能实体向终端发送所述第一内容信息;

所述第一网络功能实体接收到来自终端的第二内容信息,使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥。

本发明实施例中,所述方法还包括:

所述第一网络功能实体向所述第二网络功能实体发送公钥。

本发明实施例中,所述使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥,包括:

所述第一网络功能实体使用私钥解密所述第一密文密钥,生成第二密文密钥;

所述第一网络功能实体使用所述第二内容信息与所述第二密文密钥,生成所述第二密文密钥中的密钥。

本发明实施例中,所述第一网络功能实体使用所述第二内容信息与所述第二密文密钥,生成所述第二密文密钥中的密钥,包括:

所述第一网络功能实体基于所述第二内容信息和所述第二密文密钥进行异或操作,得到所述第二密文密钥中的密钥;或者,

所述第一网络功能实体基于所述第二内容信息和所述第二密文密钥进行解密操作,得到所述第二密文密钥中的密钥。

本发明实施例中,所述方法还包括:

所述第一网络功能实体接收到来自所述第二网络功能实体的第四内容信息;

所述第一网络功能实体基于所述公钥和所述第一密文密钥中的密钥校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述公钥以及所述第二内容信息进行运算的计算结果校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述公钥、所述第一内容信息、以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

本发明实施例中,所述使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥,包括:

所述第一网络功能实体基于所述第二内容信息和所述第一密文密钥进行异或操作,得到所述第一密文密钥中的密钥;或者,

所述第一网络功能实体基于所述第二内容信息和所述第一密文密钥进行解密操作,得到所述第一密文密钥中的密钥。

本发明实施例中,所述方法还包括:

所述第一网络功能实体接收到来自所述第二网络功能实体的第三内容信息,所述第三内容信息用于校验所述第一内容信息;

所述第一网络功能实体向所述终端发送所述第三内容信息。

本发明实施例中,所述方法还包括:

所述第一网络功能实体接收到来自所述第二网络功能实体的第四内容信息;

所述第一网络功能实体基于所述第二内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

本发明另一实施例提供的密钥传递方法,包括:

第二网络功能实体向第一网络功能实体发送第一密文密钥和第一内容信息,其中,所述第一密文密钥基于第五内容信息和第一密文密钥中的密钥生成,所述第五内容信息基于所述第一内容信息生成。

本发明实施例中,所述方法还包括:

所述第二网络功能实体收到来自所述第一网络功能实体的公钥。

本发明实施例中,所述第一密文密钥基于第五内容信息和第一密文密钥中的密钥生成,包括:

所述第二网络功能实体使用所述第五内容信息与所述第一密文密钥中的密钥,生成第二密文密钥;

所述第二网络功能实体使用所述公钥加密所述第二密文密钥,生成第一密文密钥。

本发明实施例中,所述第二网络功能实体使用所述第五内容信息与所述第一密文密钥中的密钥,生成所述第二密文密钥,包括:

所述第二网络功能实体基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作,得到所述第二密文密钥;或者,

所述第二网络功能实体基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作,得到所述第二密文密钥。

本发明实施例中,所述方法还包括:

所述第二网络功能实体向所述第一网络功能实体发送第四内容信息;

所述第四内容信息基于所述公钥和所述第一密文密钥中的密钥生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第五内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥、所述第五内容信息、以及所述第一内容信息进行运算的计算结果生成。

本发明实施例中,所述第一密文密钥基于所述第五内容信息和所述第一密文密钥中的密钥生成,包括:

基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作;或者,

基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作。

本发明实施例中,所述方法还包括:

所述第二网络功能实体向所述第一网络功能实体发送第三内容信息,所述第三内容信息基于所述第一内容信息生成。

本发明实施例中,所述方法还包括:

所述第二网络功能实体向所述第一网络功能实体发送第四内容信息;

所述第四内容信息基于所述第五内容信息和所述第一密文密钥中的密钥生成;或者,

所述第四内容信息基于所述第一内容信息和所述第一密文密钥中的密钥生成;或者,

所述第四内容信息基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第五内容信息进行运算的计算结果生成。

本发明另一实施例提供的密钥传递方法,包括:

终端接收到来自网络的第一内容信息和第三内容信息;

所述终端基于所述第一内容信息和所述第三内容信息决定是否发送第二内容信息,其中,所述第二内容信息基于所述第一内容信息生成。

本发明实施例中,所述终端基于所述第一内容信息和所述第三内容信息决定是否发送第二内容信息,包括:

基于所述第一内容信息生成期望校验码;如果所述期望校验码等于所述第三内容信息,则发送所述第二内容信息;如果所述期望校验码不等于所述第三内容信息,则不发送所述第二内容信息;或者,

基于所述第三内容信息生成期望信息值;如果所述期望信息值等于所述第一内容信息,则发送所述第二内容信息;如果所述期望信息值不等于所述第一内容信息,则不发送所述第二内容信息。

本发明实施例提供的密钥传递装置,包括:

接收单元,用于接收到来自第二网络功能实体的第一密文密钥和第一内容信息;

发送单元,用于向终端发送所述第一内容信息;

所述接收单元,还用于接收到来自终端的第二内容信息;

处理单元,用于使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥。

本发明实施例中,所述发送单元,还用于向所述第二网络功能实体发送公钥。

本发明实施例中,所述处理单元,具体用于:使用私钥解密所述第一密文密钥,生成第二密文密钥;使用所述第二内容信息与所述第二密文密钥,生成所述第二密文密钥中的密钥。

本发明实施例中,所述处理单元,具体用于:基于所述第二内容信息和所述第二密文密钥进行异或操作,得到所述第二密文密钥中的密钥;或者,基于所述第二内容信息和所述第二密文密钥进行解密操作,得到所述第二密文密钥中的密钥。

本发明实施例中,所述接收单元,还用于接收到来自所述第二网络功能实体的第四内容信息;

所述装置还包括:校验单元,用于基于所述公钥和所述第一密文密钥中的密钥校验所述第四内容信息;或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第二内容信息进行运算的计算结果校验所述第四内容信息;或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果校验所述第四内容信息;或者,基于所述第一密文密钥中的密钥和使用所述公钥、所述第一内容信息、以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

本发明实施例中,所述处理单元,具体用于:基于所述第二内容信息和所述第一密文密钥进行异或操作,得到所述第一密文密钥中的密钥;或者,基于所述第二内容信息和所述第一密文密钥进行解密操作,得到所述第一密文密钥中的密钥。

本发明实施例中,所述接收单元,还用于接收到来自所述第二网络功能实体的第三内容信息,所述第三内容信息用于校验所述第一内容信息;

所述发送单元,还用于向所述终端发送所述第三内容信息。

本发明实施例中,所述接收单元,还用于接收到来自所述第二网络功能实体的第四内容信息;

所述装置还包括:校验单元,用于基于所述第二内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,用于基于所述第一内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,用于基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

本发明另一实施例提供的密钥传递装置,包括:

发送单元,用于向第一网络功能实体发送第一密文密钥和第一内容信息,其中,所述第一密文密钥基于第五内容信息和第一密文密钥中的密钥生成,所述第五内容信息基于所述第一内容信息生成。

本发明实施例中,所述装置还包括:

接收单元,用于接收到来自所述第一网络功能实体的公钥。

本发明实施例中,所述装置还包括:

处理单元,用于使用所述第五内容信息与所述第一密文密钥中的密钥,生成第二密文密钥;使用所述公钥加密所述第二密文密钥,生成第一密文密钥。

本发明实施例中,所述处理单元,具体用于:基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作,得到所述第二密文密钥;或者,基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作,得到所述第二密文密钥。

本发明实施例中,所述发送单元,还用于向所述第一网络功能实体发送第四内容信息;

所述第四内容信息基于所述公钥和所述第一密文密钥中的密钥生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第五内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥、所述第一内容信息、以及所述第五内容信息进行运算的计算结果生成。

本发明实施例中,所述装置还包括:

处理单元,用于基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作,得到所述第一密文密钥;或者,基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作,得到所述第一密文密钥。

本发明实施例中,所述发送单元,还用于向所述第一网络功能实体发送第三内容信息,所述第三内容信息基于所述第一内容信息生成。

本发明实施例中,所述发送单元,还用于向所述第一网络功能实体发送第四内容信息;所述第四内容信息基于所述第五内容信息和所述第一密文密钥中的密钥生成,或者,基于所述第一内容信息和所述第一密文密钥中的密钥生成,或者,基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第五内容信息进行运算的计算结果生成。

本发明另一实施例提供的密钥传递装置,包括:

接收单元,用于接收到来自网络的第一内容信息和第三内容信息;

决策单元,用于基于所述第一内容信息和所述第三内容信息决定是否发送第二内容信息,其中,所述第二内容信息基于所述第一内容信息生成;

发送单元,用于当所述决策单元的决策结果为发送时,发送所述第二内容信息。

本发明实施例中,所述决策单元,具体用于:基于所述第一内容信息生成期望校验码;如果所述期望校验码等于所述第三内容信息,则发送所述第二内容信息;如果所述期望校验码不等于所述第三内容信息,则不发送所述第二内容信息;或者,

基于所述第三内容信息生成期望信息值;如果所述期望信息值等于所述第一内容信息,则发送所述第二内容信息;如果所述期望信息值不等于所述第一内容信息,则不发送所述第二内容信息。

本发明实施例的技术方案中,第一网络功能实体接收到来自第二网络功能实体的第一密文密钥和第一内容信息;所述第一网络功能实体向终端发送所述第一内容信息;所述第一网络功能实体接收到来自终端的第二内容信息,使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥。采用本发明实施例的技术方案,一方面防止了中间人攻击导致的密钥泄漏,另一个方面能够识别发生了中间人攻击,从而做出相应的决定,比如发生了中间人攻击的情况时,网络通知终端发生了中间人攻击,由终端决定是否继续,或网络根据安全级别决定是否继续,保障了网络的安全性。

附图说明

附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。

图1为现有技术中密钥传递方法的流程示意图;

图2为本发明实施例的密钥传递方法的流程示意图一;

图3为本发明实施例的密钥传递方法的流程示意图二;

图4为本发明实施例的密钥传递方法的流程示意图三;

图5为本发明实施例的基于核心网的密钥传递方法的流程示意图一;

图6为本发明实施例的基于接入网的密钥传递方法的流程示意图;

图7为本发明实施例的基于核心网的密钥传递方法的流程示意二;

图8为本发明实施例的基于核心网的密钥传递方法的流程示意图三;

图9为本发明实施例的密钥传递装置的结构组成示意图一;

图10为本发明实施例的密钥传递装置的结构组成示意图二;

图11为本发明实施例的密钥传递装置的结构组成示意图三。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。

本发明实施例的技术方案包括两个方面,一个方面是防止中间人攻击导致的密钥泄漏,另一个方面是识别发生了中间人攻击,从而做出相应的决定,比如发生了中间人攻击的情况时,网络通知终端发生了中间人攻击,由终端决定是否继续,或网络根据安全级别决定是否继续。

图2为本发明实施例的密钥传递方法的流程示意图一,如图2所示,该流程包括:

步骤201:第一网络功能实体接收到来自第二网络功能实体的第一密文密钥和第一内容信息。

这里,第一网络功能实体可以为核心网网元或者接入网网元,将第一网络功能实体标识为NF1。第二网络功能实体为认证向量下发网元,将第二网络功能实体标识为NF2。

这里,第一密文密钥标识为EK1,第一内容信息标识为RAND,RAND可以是随机数。

步骤202:所述第一网络功能实体向终端发送所述第一内容信息。

步骤203:所述第一网络功能实体接收到来自终端的第二内容信息,使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥。

这里,第一密文密钥中的密钥标识为Ks或者Knp。其中,Ks为生成的密钥,Knp为认证向量中的密钥。第二内容信息标识为RES,RES代表响应值。

本发明实施例中,所述方法还包括:所述第一网络功能实体向所述第二网络功能实体发送公钥。

这里,公钥标识为PubK。

本发明实施例中,所述使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥,包括:

所述第一网络功能实体使用私钥解密所述第一密文密钥,生成第二密文密钥;

所述第一网络功能实体使用所述第二内容信息与所述第二密文密钥,生成所述第二密文密钥中的密钥。

这里,第二密文密钥标识为EK2。

其中,所述第一网络功能实体使用所述第二内容信息与所述第二密文密钥,生成所述第二密文密钥中的密钥,包括:

所述第一网络功能实体基于所述第二内容信息和所述第二密文密钥进行异或操作,得到所述第二密文密钥中的密钥;或者,

所述第一网络功能实体基于所述第二内容信息和所述第二密文密钥进行解密操作,得到所述第二密文密钥中的密钥。

本发明实施例中,所述方法还包括:

所述第一网络功能实体接收到来自所述第二网络功能实体的第四内容信息;

所述第一网络功能实体基于所述公钥和所述第一密文密钥中的密钥校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述公钥以及所述第二内容信息进行运算的计算结果校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述公钥、所述第一内容信息、以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

本发明实施例中,所述使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥,包括:

所述第一网络功能实体基于所述第二内容信息和所述第一密文密钥进行异或操作,得到所述第一密文密钥中的密钥;或者,

所述第一网络功能实体基于所述第二内容信息和所述第一密文密钥进行解密操作,得到所述第一密文密钥中的密钥。

本发明实施例中,所述方法还包括:

所述第一网络功能实体接收到来自所述第二网络功能实体的第三内容信息,所述第三内容信息用于校验所述第一内容信息;

所述第一网络功能实体向所述终端发送所述第三内容信息。

本发明实施例中,所述方法还包括:

所述第一网络功能实体接收到来自所述第二网络功能实体的第四内容信息;

所述第一网络功能实体基于所述第二内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,

所述第一网络功能实体基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

图3为本发明实施例的密钥传递方法的流程示意图二,如图3所示,该流程包括:

步骤301:第二网络功能实体向第一网络功能实体发送第一密文密钥和第一内容信息,其中,所述第一密文密钥基于第五内容信息和第一密文密钥中的密钥生成,所述第五内容信息基于所述第一内容信息生成。

本发明实施例中,所述方法还包括:

所述第二网络功能实体收到来自所述第一网络功能实体的公钥。

本发明实施例中,所述第一密文密钥基于第五内容信息和第一密文密钥中的密钥生成,包括:

所述第二网络功能实体使用所述第五内容信息与所述第一密文密钥中的密钥,生成第二密文密钥;

所述第二网络功能实体使用所述公钥加密所述第二密文密钥,生成第一密文密钥。

本发明实施例中,所述第二网络功能实体使用所述第五内容信息与所述第一密文密钥中的密钥,生成所述第二密文密钥,包括:

所述第二网络功能实体基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作,得到所述第二密文密钥;或者,

所述第二网络功能实体基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作,得到所述第二密文密钥。

本发明实施例中,所述方法还包括:

所述第二网络功能实体向所述第一网络功能实体发送第四内容信息;

所述第四内容信息基于所述公钥和所述第一密文密钥中的密钥生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第五内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥、所述第五内容信息、以及所述第一内容信息进行运算的计算结果生成。

本发明实施例中,所述第一密文密钥基于所述第五内容信息和所述第一密文密钥中的密钥生成,包括:

基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作;或者,

基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作。

本发明实施例中,所述方法还包括:

所述第二网络功能实体向所述第一网络功能实体发送第三内容信息,所述第三内容信息基于所述第一内容信息生成。

本发明实施例中,所述方法还包括:

所述第二网络功能实体向所述第一网络功能实体发送第四内容信息;

所述第四内容信息基于所述第五内容信息和所述第一密文密钥中的密钥生成;或者,

所述第四内容信息基于所述第一内容信息和所述第一密文密钥中的密钥生成;或者,

所述第四内容信息基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第五内容信息进行运算的计算结果生成。

图4为本发明实施例的密钥传递方法的流程示意图三,如图4所示,该流程包括:

步骤401:终端接收到来自网络的第一内容信息和第三内容信息。

步骤402:所述终端基于所述第一内容信息和所述第三内容信息决定是否发送第二内容信息,其中,所述第二内容信息基于所述第一内容信息生成。

本发明实施例中,所述终端基于所述第一内容信息和所述第三内容信息决定是否发送第二内容信息,包括:

基于所述第一内容信息生成期望校验码;如果所述期望校验码等于所述第三内容信息,则发送所述第二内容信息;如果所述期望校验码不等于所述第三内容信息,则不发送所述第二内容信息;或者,

基于所述第三内容信息生成期望信息值;如果所述期望信息值等于所述第一内容信息,则发送所述第二内容信息;如果所述期望信息值不等于所述第一内容信息,则不发送所述第二内容信息。

下面结合具体应用场景对本发明实施例的方案做进一步详细描述。

实施例一

图5为本发明实施例的基于核心网的密钥传递方法的流程示意图一,如图5所示,该流程包括:

步骤501:核心网网元(比如移动管理功能MMF,或安全锚点功能SEAF,或移动管理实体MME等)向认证向量下发网元(比如认证服务功能AUSF,或认证授权记账AAA,或认证向量存储功能ARPF,或HSS等)发送认证数据请求,比如发送Authentication Data Request消息,消息携带要认证的用户的标识,比如国际移动台标识IMSI,并可以携带核心网网元的公钥PubK;

步骤502:认证向量下发网元获取一个或一组用户的认证向量,或在网络提供其他途径的认证通道时(比如图6中的基于接入网的认证),仅仅获取一个或一组密钥Knp;认证向量下发网元生成一个加密密钥Ks,并用其加密所有Knp以防止Knp在传输过程中被泄漏出去,后续两个操作可选其中任意一个执行,或两个都执行,如果不执行A,则使用图1中的步骤102中的方法加密Ks:

A、防密钥泄漏:认证向量下发网元生成内容信息RAND2,可以是随机数也可以是任何内容,并基于RAND2计算出期望响应XRES2=f1(RAND2),再基于XRES2和Ks计算F=f2(XRES2,Ks),其中,f2可使用XRES2和Ks的异或操作(或称为比特位加法),或使用其他信息与XRES2运算后,再用运算结果与Ks异或,或使用XRES2加密Ks,或使用其他信息与XRES2嵌套加密Ks,或使用其他信息与XRES2运算后,再用运算结果与Ks计算F等方法;认证向量下发网元可以再基于PubK加密F得到EK=EPubK(F)(比如直接用PubK加密,或基于PubK生成密钥,再用此密钥加密),因此EK=EPubK(f2(XRES2,Ks))=EPubK(f2(f1(RAND2),Ks)),认证向量下发网元还可计算MAC3=f4(RAND2)用于防止RAND2在传递过程中被中间人修改;

B、识别攻击:认证向量下发网元基于Ks以及PubK或XRES2,或RAND2,或RAND2和XRES2的运算结果计算验证码MAC2=f3(Ks,PubK)或MAC2=f3(Ks,XRES2)或MAC2=f3(Ks,RAND2)或MAC2=f3(Ks,f4(XRES2,RAND2)),其中,f3是基于Ks的加密运算,或基于Ks的签名运算,f4是基于XRES2的加密或签名运算,或f4是异或运算或字符串拼接运算;或基于Ks、PubK和XRES2计算验证码MAC2=f3(Ks,f4(XRES2,PubK));或基于Ks、PubK和RAND2计算验证码MAC2=f3(Ks,f5(RAND2,PubK)),其中f5可以与f4类似;或基于Ks、PubK、RAND2和XRES2计算验证码MAC2=f3(Ks,f6(XRES2,RAND2,PubK)),其中f6可以是基于XRES2、RAND2、PubK的字符串拼接,或者其他可能的运算方式;

步骤503,认证向量下发网元向核心网网元发送认证数据响应,比如发送Authentication Data Response消息,消息携带以下几种信息组合:

A、RAND2和F;

B、RAND2和EK;

C、MAC3及上述A或B中的信息;

D、MAC2;

E、MAC2及上述A、B、或C中的信息;

还可携带处理过的认证向量;

步骤504:对于携带EK的情况,核心网网元基于私钥解密EK(比如直接用私钥解密,或基于私钥生成密钥,再用此密钥解密),获得F=f2(XRES2,Ks);此步骤可以在步骤506之后,也可以不执行(即网络没有执行防泄漏操作,此情况下步骤502中的A也不会执行);

如果核心网网元和认证向量下发网元间存在进行中间人攻击的网元,则此网元只能获得F,而无法获得Ks,因为其无法获得XRES2。

步骤505,核心网网元向终端UE发送用户认证请求,比如发送User Authentication Request消息,可携带收到的一个认证向量中的部分信息组成认证参数,比如RAND(只需要网络认证用户的情况),或RAND和AUTN(需要网络和用户双向认证的情况),或不带认证参数(网络提供其他途径的认证通道时),消息还可携带RAND2如果核心网网元收到了RAND2;

步骤506:终端UE收到AUTN,则基于AUTN验证网络;终端UE收到RAND,则基于RAND计算出响应值RES;终端UE收到RAND2,则基于RAND2计算出RES2=f1(RAND2),如果还收到MAC3,则基于RAND2计算出XMAC3=f4(RAND2),并验证XMAC3是否等于MAC3,如果不等于则不执行后续步骤,或从MAC3中解算出XRAND2,判断XRAND2是否等于RAND2,如果不等于则不执行后续步骤;终端UE向核心网网元发送用户认证响应,比如发送User Authentication Response消息,如果终端UE收到RAND,则消息携带认证信息,即RES;如果终端UE收到RAND2,则消息携带RES2;

步骤507:核心网网元如果收到RES,则比对RES和认证向量中的XRES,如果RES=XRES则网络验证用户通过;核心网网元如果收到RES2,则使用RES2(终端UE收到的RAND2和认证向量下发网元生成的RAND2相同则RES2=XRES2)和F计算Ks(F=f2(XRES2,Ks)),其中f2为异或操作时,则基于RES2与F的异或操作得到Ks,如果f2为加密操作时,则使用RES2解密F得到Ks,其他方式亦可相应地解算Ks;核心网网元如果收到MAC2,则基于Ks计算XMAC2=f3(Ks,PubK)或XMAC2=f3(Ks,RES2)或XMAC2=f3(Ks,RAND2)或XMAC2=f3(Ks,f4(RES2,RAND2))或XMAC2=f3(Ks,f4(RES2,PubK))或XMAC2=f3(Ks,f5(RAND2,PubK))或XMAC2=f3(Ks,f7(RAND2,RES2,PubK)),或基于Ks从MAC2中计算XPubK或XRES2或f4(XRES2,PubK)或f4(XRES2,RAND2)或f5(RAND2,PubK)或f6(RAND2,XRES2,PubK),或基于RES2从f4(XRES2,PubK)中计算XPbuK,或f5(RAND2,PubK)中计算XPbuK,如果MAC2=XMAC2或XPubK=PubK或XRES2=RES2或f4(XRES2,PubK)=f4(RES2,PubK)或f4(XRES2,RAND2)=f4(RES2,RAND2)或f5(RAND2,PubK)=f5(RAND2,PubK)或f6(RAND2,XRES2,PubK)=f6(RAND2,RES2,PubK)则可识别出没有发生中间人攻击,否则可识别出发生了中间人攻击;

如果中间人修改了发送给终端UE的RAND2为RAND2#,则终端计算的XMAC3#=f4(RAND2#)就不会和MAC3相等;如果修改了发送给认证向量下发网元的PubK为PubK#,则基于Ks和PubK#计算的XMAC2#=f3(Ks,PubK#)就不会和MAC2相等。

实施例二

图6为本发明实施例的基于接入网的密钥传递方法的流程示意图,如图6所示,该流程包括:

步骤601:下一代基站系统(比如下一代基站节点gNB,或增强的演进基站节点evolved eNB等)向核心网网元(比如移动管理功能MMF,或安全锚点功能SEAF,或移动管理实体MME等)发送认证数据请求,比如发送NG2Authentication Data Request消息,消息可以携带下一代基站系统的公钥PubK,还可携带与要认证的用户相关的标识,比如国际移动台标识IMSI,或临时用户标识等(如果有其他途径携带与用户相关的标识,则该消息可不携带,比如通过跟踪区更新TAU消息携带);

步骤602:核心网网元没有缓存的认证向量及相关信息时,核心网网元向认证向量下发网元(比如认证服务功能AUSF,或认证授权记账AAA,或认证向量存储功能ARPF,或HSS等)发送接入网认证数据请求,比如发送AN Authentication Data Request消息,消息携带要步骤601中收到的信息,并携带要认证的用户的标识,比如国际移动台标识IMSI,该标识可以通过步骤601中收到的信息中关联得到,比如通过认证数据请求中的承载标识关联TAU消息,或通过临时用户标识关联IMSI;核心网网元有缓存的认证向量及步骤604中的信息时(缓存的是F不是EK),跳过步骤603~604,执行步骤605;

步骤603:认证向量下发网元获取一个或一组用户的认证向量,或在网络提供其他途径的认证通道时(比如图7中的基于核心网的认证),仅仅获取一个或一组密钥Knp;认证向量下发网元生成一个加密密钥Ks,并用其加密所有Knp以防止Knp在传输过程中被泄漏出去,后续两个操作可选其中任意一个执行,或两个都执行,如果不执行A,则使用图1中的步骤102中的方法加密Ks:

A、防密钥泄漏:认证向量下发网元生成随机数RAND2,并基于RAND2计算出期望响应XRES2=f1(RAND2),再基于XRES2和Ks计算F=f2(XRES2,Ks),其中,f2可使用XRES2和Ks的异或操作(或称为比特位加法),或使用其他信息与XRES2运算后,再用运算结果与Ks异或,或使用XRES2加密Ks,或使用其他信息与XRES2嵌套加密Ks,或使用其他信息与XRES2运算后,再用运算结果与Ks计算F等方法;认证向量下发网元可以再基于PubK加密F得到EK=EPubK(F)(比如直接用PubK加密,或基于PubK生成密钥,再用此密钥加密),因此EK=EPubK(f2(XRES2,Ks))=EPubK(f2(f1(RAND2),Ks)),认证向量下发网元还可计算MAC3=f4(RAND2)用于防止RAND2在传递过程中被中间人修改;

B、识别攻击:认证向量下发网元基于Ks以及PubK或XRES2,或RAND2,或RAND2和XRES2的运算结果计算验证码MAC2=f3(Ks,PubK)或MAC2=f3(Ks,XRES2)或MAC2=f3(Ks,RAND2)或MAC2=f3(Ks,f4(XRES2,RAND2)),其中,f3是基于Ks的加密运算,或基于Ks的签名运算,f4是基于XRES2的加密或签名运算,或f4是异或运算或字符串拼接运算;或基于Ks、PubK和XRES2计算验证码MAC2=f3(Ks,f4(XRES2,PubK));或基于Ks、PubK和RAND2计算验证码MAC2=f3(Ks,f5(RAND2,PubK)),其中f5可以与f4类似;或基于Ks、PubK、RAND2和XRES2计算验证码MAC2=f3(Ks,f6(XRES2,RAND2,PubK)),其中f6可以是基于XRES2、RAND2、PubK的字符串拼接,或者其他可能的运算方式;

步骤604:认证向量下发网元向核心网网元发送接入网认证数据响应,比如发送AN Authentication Data Response消息,消息携带以下几种信息组合:

A、RAND2和F;

B、RAND2和EK;

C、MAC3及上述A或B中的信息;

D、MAC2;

E、MAC2及上述A、B、或C中的信息;

还可携带处理过的认证向量;

步骤605:核心网网元向下一代基站系统发送认证数据响应,核心网网元没有缓存的认证向量及相关信息时,携带步骤604中收到的信息;核心网网元有缓存时,可以使用PubK加密F得到EK=EPubK(F),然后根据缓存的信息情况,携带以下几种信息组合:

A、RAND2和F;

B、RAND2和EK;

C、MAC3及上述A或B中的信息;

D、MAC2;

E、MAC2及上述A、B、或C中的信息;

还可携带缓存的认证向量;

步骤606:对于携带EK的情况,下一代基站系统基于私钥解密EK(比如直接用私钥解密,或基于私钥生成密钥,再用此密钥解密),获得F=f2(XRES2,Ks);此步骤可以在步骤608之后,也可以不执行(即网络没有执行防泄漏操作,此情况下步骤603中的A也不会执行);

如果下一代基站系统和认证向量下发网元间存在进行中间人攻击的网元,比如核心网网元,则此网元只能获得F,而无法获得Ks,因为其无法获得XRES2。

步骤607:下一代基站系统向终端UE发送用户认证请求,比如发送AS User Authentication Request消息,可携带收到的一个认证向量中的部分信息组成认证参数,比如RAND(只需要网络认证用户的情况),或RAND和AUTN(需要网络和用户双向认证的情况),或不带认证参数(网络提供其他途径的认证通道时),消息还可携带RAND2如果下一代基站系统收到了RAND2;

步骤608:终端UE收到AUTN,则基于AUTN验证网络;终端UE收到RAND,则基于RAND计算出响应值RES;终端UE收到RAND2,则基于RAND2计算出RES2=f1(RAND2),如果还收到MAC3,则基于RAND2计算出XMAC3=f4(RAND2),并验证XMAC3是否等于MAC3,如果不等于则不执行后续步骤,或从MAC3中解算出XRAND2,判断XRAND2是否等于RAND2,如果不等于则不执行后续步骤;终端UE向下一代基站系统发送用户认证响应,比如发送AS User Authentication Response消息,如果终端UE收到RAND,则消息携带认证信息,即RES;如果终端UE收到RAND2,则消息携带RES2;步骤609:下一代基站系统如果收到RES,则比对RES和认证向量中的XRES,如果RES=XRES则网络验证用户通过;下一代基站系统如果收到RES2,则使用RES2(终端UE收到的RAND2和认证向量下发网元生成的RAND2相同则RES2=XRES2)和F计算Ks(F=f2(XRES2,Ks)),其中f2为异或操作时,则基于RES2与F的异或操作得到Ks,如果f2为加密操作时,则使用RES2解密F得到Ks,其他方式亦可相应地解算Ks;下一代基站系统如果收到MAC2,则基于Ks计算XMAC2=f3(Ks,PubK)或XMAC2=f3(Ks,RES2)或XMAC2=f3(Ks,RAND2)或XMAC2=f3(Ks,f4(RES2,RAND2))或XMAC2=f3(Ks,f4(RES2,PubK))或XMAC2=f3(Ks,f5(RAND2,PubK))或XMAC2=f3(Ks,f7(RAND2,RES2,PubK)),或基于Ks从MAC2中计算XPubK或XRES2或f4(XRES2,PubK)或f4(XRES2,RAND2)或f5(RAND2,PubK)或f6(RAND2,XRES2,PubK),或基于RES2从f4(XRES2,PubK)中计算XPbuK,或f5(RAND2,PubK)中计算XPbuK,如果MAC2=XMAC2或PubK=XPubK或RES2=XRES2或f4(XRES2,PubK)=f4(RES2,PubK)或f4(XRES2,RAND2)=f4(RES2,RAND2)或f5(RAND2,PubK)=f5(RAND2,PubK)或f6(RAND2,XRES2,PubK)=f6(RAND2,RES2,PubK)则可识别出没有发生中间人攻击,否则可识别出发生了中间人攻击。

实施例三

图7为本发明实施例的基于核心网的密钥传递方法的流程示意图二,如图7所示,该流程包括:

步骤701:核心网网元(比如移动管理功能MMF,或安全锚点功能SEAF,或移动管理实体MME等)向认证向量下发网元(比如认证服务功能AUSF,或认证授权记账AAA,或认证向量存储功能ARPF,或HSS等)发送认证数据请求,比如发送Authentication Data Request消息,消息携带要认证的用户的标识,比如国际移动台标识IMSI,并可以携带核心网网元的公钥PubK;

步骤702:认证向量下发网元获取一个或一组用户的认证向量,或在网络提供其他途径的认证通道时(比如图6中的基于接入网的认证),仅仅获取一个或一组密钥Knp,后续两个操作可选其中任意一个执行,或两个都执行,如果不执行A,则使用图1中的步骤102中的方法加密Ks:

A、防密钥泄漏:认证向量下发网元生成内容信息RAND2,可以是随机数也可以是任何内容,并基于RAND2计算出期望响应XRES2=f1(RAND2),再基于XRES2和Knp计算F=f2(XRES2,Knp),其中,f2可使用XRES2和Knp的异或操作(或称为比特位加法),或使用其他信息与XRES2运算后,再用运算结果与Ks异或,或使用XRES2加密Knp,或使用其他信息与XRES2嵌套加密Knp,或使用其他信息与XRES2运算后,再用运算结果与Knp计算F等方法;认证向量下发网元可以再基于PubK加密F得到EK=EPubK(F)(比如直接用PubK加密,或基于PubK生成密钥,再用此密钥加密),因此EK=EPubK(f2(XRES2,Knp))=EPubK(f2(f1(RAND2),Knp)),认证向量下发网元用F或EK替换Knp,认证向量下发网元还可计算MAC3=f4(RAND2)用于防止RAND2在传递过程中被中间人修改;

B、识别攻击:认证向量下发网元基于Knp以及PubK或XRES2,或RAND2,或RAND2和XRES2的运算结果计算验证码MAC2=f3(Knp,PubK)或MAC2=f3(Knp,XRES2)或MAC2=f3(Knp,RAND2)或MAC2=f3(Knp,f4(RAND2,XRES2)),其中,f3是基于Knp的加密或签名运算,f4是基于XRES2的加密或签名运算,或f4是异或运算或字符串拼接运算;或基于Knp、PubK和XRES2计算验证码MAC2=f3(Knp,f4(XRES2,PubK));或基于Knp、PubK和RAND2计算验证码MAC2=f3(Knp,f5(RAND2,PubK)),其中f5可以与f4类似;或基于Knp、PubK、RAND2和XRES2计算验证码MAC2=f3(Knp,f6(XRES2,RAND2,PubK)),其中f6可以是基于XRES2、RAND2、PubK的字符串拼接,或者其他可能的运算方式;

步骤703:认证向量下发网元向核心网网元发送认证数据响应,比如发送Authentication Data Response消息,消息携带以下几种信息组合:

A、RAND2和F

B、RAND2和EK;

C、MAC3及上述A或B中的信息;

D、MAC2;

E、MAC2及上述A、B、或C中的信息;

还可携带认证向量中除密钥外的其他部分;

步骤704:对于携带EK的情况,核心网网元基于私钥解密EK(比如直接用私钥解密,或基于私钥生成密钥,再用此密钥解密),获得F=f2(XRES2,Knp);此步骤可以在步骤706之后,也可以不执行(即网络没有执行防泄漏操作,此情况下步骤702中的A也不会执行);

如果核心网网元和认证向量下发网元间存在进行中间人攻击的网元,则此网元只能获得F,而无法获得Knp,因为其无法获得XRES2。

步骤705,核心网网元向终端UE发送用户认证请求,比如发送User Authentication Request消息,可携带收到的一个认证向量中的部分信息组成认证参数,比如RAND(只需要网络认证用户的情况),或RAND和AUTN(需要网络和用户双向认证的情况),或不带认证参数(网络提供其他途径的认证通道时),消息还可携带RAND2如果核心网网元收到了RAND2;

步骤706:终端UE收到AUTN,则基于AUTN验证网络;终端UE收到RAND,则基于RAND计算出响应值RES;终端UE收到RAND2,则基于RAND2计算出RES2=f1(RAND2),如果还收到MAC3,则基于RAND2计算出XMAC3=f4(RAND2),并验证XMAC3是否等于MAC3,如果不等于则不执行后续步骤,或从MAC3中解算出XRAND2,判断XRAND2是否等于RAND2,如果不等于则不执行后续步骤;终端UE向核心网网元发送用户认证响应,比如发送User Authentication Response消息,如果终端UE收到RAND,则消息携带认证信息,即RES;如果终端UE收到RAND2,则消息携带RES2;

步骤707:核心网网元如果收到RES,则比对RES和认证向量中的XRES,如果RES=XRES则网络验证用户通过;核心网网元如果收到RES2,则使用RES2(终端UE收到的RAND2和认证向量下发网元生成的RAND2相同则RES2=XRES2)和F计算Knp(F=f2(XRES2,Knp)),其中f2为异或操作时,则基于RES2与F的异或操作得到Knp,如果f2为加密操作时,则使用RES2解密F得到Knp,其他方式亦可相应地解算Knp;核心网网元如果收到MAC2,则基于Knp计算XMAC2=f3(Knp,PubK)或XMAC2=f3(Knp,RES2)或XMAC2=f3(Knp,RAND2)或XMAC2=f3(Knp,f4(RES2,RAND2))或XMAC2=f3(Knp,f4(RES2,PubK))或XMAC2=f3(Knp,f5(RAND2,PubK))或XMAC2=f3(Knp,f7(RAND2,RES2,PubK)),或基于Knp从MAC2中计算XPubK或XRES2或f4(XRES2,PubK)或f4(XRES2,RAND2)或f5(RAND2,PubK)或f6(RAND2,XRES2,PubK),或基于RES2从f4(XRES2,PubK)中计算XPbuK,或f5(RAND2,PubK)中计算XPbuK,如果MAC2=XMAC2或PubK=XPubK或RES2=XRES2或f4(XRES2,PubK)=f4(RES2,PubK)或f4(XRES2,RAND2)=f4(RES2,RAND2)或f5(RAND2,PubK)=f5(RAND2,PubK)或f6(RAND2,XRES2,PubK)=f6(RAND2,RES2,PubK)则可识别出没有发生中间人攻击,否则可识别出发生了中间人攻击。

实施例四

图8为本发明实施例的基于核心网的密钥传递方法的流程示意图三,如图8所示,该流程包括:

步骤801:核心网网元(比如移动管理功能MMF,或安全锚点功能SEAF,或移动管理实体MME等)向认证向量下发网元(比如认证服务功能AUSF,或认证授权记账AAA,或认证向量存储功能ARPF,或HSS等)发送认证数据请求,比如发送Authentication Data Request消息,消息携带要认证的用户的标识,比如国际移动台标识IMSI,并可以携带核心网网元的公钥PubK;

步骤802:认证向量下发网元获取一个或一组用户的认证向量,或在网络提供其他途径的认证通道时(比如图6中的基于接入网的认证),仅仅获取一个或一组密钥Knp,后续两个操作可选其中任意一个执行,或两个都执行,如果不执行A,则使用图1中的步骤102中的方法加密Ks:

A、防密钥泄漏:认证向量下发网元生成内容信息RAND,可以是随机数也可以是任何内容,并基于RAND计算出期望响应XRES=f4(RAND),再基于XRES和Knp计算F=f2(XRES,Knp),其中,f2可使用XRES和Knp的异或操作(或称为比特位加法),或使用其他信息与XRES运算后,再用运算结果与Ks异或,或使用XRES加密Knp,或使用其他信息与XRES嵌套加密Knp,或使用其他信息与XRES运算后,再用运算结果与Knp计算F等方法;认证向量下发网元可以再基于PubK加密F得到EK=EPubK(F)(比如直接用PubK加密,或基于PubK生成密钥,再用此密钥加密),因此EK=EPubK(f2(XRES,Knp))=EPubK(f2(f4(RAND),Knp)),认证向量下发网元用F或EK替换Knp;

B、识别攻击:认证向量下发网元基于Knp以及PubK或XRES,或RAND,或RAND和XRES2的运算结果计算验证码MAC2=f3(Knp,PubK)或MAC2=f3(Knp,XRES)或MAC2=f3(Knp,RAND)或MAC2=f3(Knp,f4(RAND,XRES2)),其中,f3是基于Knp的加密或签名运算,f4是基于XRES2的加密或签名运算,或f4是异或运算或字符串拼接运算;或基于Knp、PubK和XRES2计算验证码MAC2=f3(Ks,f4(XRES2,PubK));或基于Knp、PubK和RAND计算验证码MAC2=f3(Knp,f5(RAND,PubK)),其中f5可以与f4类似;或基于Knp、PubK、RAND和XRES2计算验证码MAC2=f3(Knp,f6(XRES2,RAND,PubK)),其中f6可以是基于XRES2、RAND、PubK的字符串拼接,或者其他可能的运算方式;

步骤803:认证向量下发网元向核心网网元发送认证数据响应,比如发送Authentication Data Response消息,消息携带以下几种信息组合:

A、RAND和F

B、RAND和EK;

C、MAC2;

D、MAC2及上述A或B中的信息;

还可携带认证向量中除密钥外的其他部分;

步骤804:对于携带EK的情况,核心网网元基于私钥解密EK(比如直接用私钥解密,或基于私钥生成密钥,再用此密钥解密),获得F=f2(XRES2,Knp);此步骤可以在步骤806之后,也可以不执行(即网络没有执行防泄漏操作,此情况下步骤802中的A也不会执行);

如果核心网网元和认证向量下发网元间存在进行中间人攻击的网元,则此网元只能获得F,而无法获得Knp,因为其无法获得XRES。

步骤805:核心网网元向终端UE发送用户认证请求,比如发送User Authentication Request消息,可携带收到的一个认证向量中的部分信息组成认证参数,比如RAND(只需要网络认证用户的情况),或RAND和AUTN(需要网络和用户双向认证的情况);

步骤806:终端UE收到AUTN,则基于AUTN验证网络;终端UE收到RAND,则基于RAND计算出RES=f4(RAND);终端UE向核心网网元发送用户认证响应,比如发送User Authentication Response消息,携带RES;

步骤807:核心网网元收到RES,则使用RES(终端UE收到的RAND和认证向量下发网元生成的RAND相同则RES=XRES)和F计算Knp(F=f2(XRES,Knp)),其中f2为异或操作时,则基于RES与F的异或操作得到Knp,如果f2为加密操作时,则使用RES解密F得到Knp,其他方式亦可相应地解算Knp;再基于Knp计算XMAC2=f3(Knp,PubK)或XMAC2=f3(Knp,RES)或XMAC2=f3(Knp,RAND)或XMAC2=f3(Knp,f4(RES2,RAND))或XMAC2=f3(Ks,f4(RES2,PubK))或XMAC2=f3(Knp,f5(RAND,PubK))或XMAC2=f3(Knp,f7(RAND,RES2,PubK)),或基于Knp从MAC2中计算XPubK或XRES或f4(XRES2,PubK)或f4(XRES2,RAND)或f5(RAND,PubK)或f6(RAND,XRES2,PubK),或基于RES2从f4(XRES2,PubK)中计算XPbuK,或f5(RAND,PubK)中计算XPbuK,如果MAC2=XMAC2或PubK=XPubK或RES=XRES或f4(XRES2,PubK)=f4(RES2,PubK)或f4(XRES2,RAND)=f4(RES2,RAND)或f5(RAND,PubK)=f5(RAND,PubK)或f6(RAND,XRES2,PubK)=f6(RAND,RES2,PubK)则验证终端通过,且可识别出没有发生中间人攻击,否则验证不通过,或可识别出发生了中间人攻击。

图9为本发明实施例的密钥传递装置的结构组成示意图一,如图9所示,所述装置包括:

接收单元901,用于接收到来自第二网络功能实体的第一密文密钥和第一内容信息;

发送单元902,用于向终端发送所述第一内容信息;

所述接收单元901,还用于接收到来自终端的第二内容信息;

处理单元903,用于使用所述第二内容信息和所述第一密文密钥生成所述第一密文密钥中的密钥。

本发明实施例中,所述发送单元902,还用于向所述第二网络功能实体发送公钥。

本发明实施例中,所述处理单元903,具体用于:使用私钥解密所述第一密文密钥,生成第二密文密钥;使用所述第二内容信息与所述第二密文密钥,生成所述第二密文密钥中的密钥。

本发明实施例中,所述处理单元903,具体用于:基于所述第二内容信息和所述第二密文密钥进行异或操作,得到所述第二密文密钥中的密钥;或者,基于所述第二内容信息和所述第二密文密钥进行解密操作,得到所述第二密文密钥中的密钥。

本发明实施例中,所述接收单元901,还用于接收到来自所述第二网络功能实体的第四内容信息

所述装置还包括:校验单元904,用于基于所述公钥和所述第一密文密钥中的密钥校验所述第四内容信息;或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第二内容信息进行运算的计算结果校验所述第四内容信息;或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果校验所述第四内容信息;或者,基于所述第一密文密钥中的密钥和使用所述公钥、所述第一内容信息、以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

本发明实施例中,所述处理单元903,具体用于:基于所述第二内容信息和所述第一密文密钥进行异或操作,得到所述第一密文密钥中的密钥;或者,基于所述第二内容信息和所述第一密文密钥进行解密操作,得到所述第一密文密钥中的密钥。

本发明实施例中,所述接收单元901,还用于接收到来自所述第二网络功能实体的第三内容信息,所述第三内容信息用于校验所述第一内容信息;

所述发送单元902,还用于向所述终端发送所述第三内容信息。

本发明实施例中,所述接收单元901,还用于接收到来自所述第二网络功能实体的第四内容信息;

所述装置还包括:校验单元904,用于基于所述第二内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,用于基于所述第一内容信息和所述第一密文密钥中的密钥校验所述第四内容信息;或者,用于基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第二内容信息进行运算的计算结果校验所述第四内容信息。

本领域技术人员应当理解,图9所示的密钥传递装置中的各单元的实现功能可参照前述密钥传递方法的相关描述而理解。图9所示的密钥传递装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。

图10为本发明实施例的密钥传递装置的结构组成示意图二,如图10所示,所述装置包括:

发送单元1001,用于向第一网络功能实体发送第一密文密钥和第一内容信息,其中,所述第一密文密钥基于第五内容信息和第一密文密钥中的密钥生成,所述第五内容信息基于所述第一内容信息生成。

本发明实施例中,所述装置还包括:接收单元1002,用于接收到来自所述第一网络功能实体的公钥。

本发明实施例中,所述装置还包括:

处理单元1003,用于使用所述第五内容信息与所述第一密文密钥中的密钥,生成第二密文密钥;使用所述公钥加密所述第二密文密钥,生成第一密文密钥。

本发明实施例中,所述处理单元1003,具体用于:基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作,得到所述第二密文密钥;或者,基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作,得到所述第二密文密钥。

本发明实施例中,所述发送单元1001,还用于向所述第一网络功能实体发送第四内容信息;

所述第四内容信息基于所述公钥和所述第一密文密钥中的密钥生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第五内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥以及所述第一内容信息进行运算的计算结果生成,或者,基于所述第一密文密钥中的密钥和使用所述公钥、所述第一内容信息、以及所述第五内容信息进行运算的计算结果生成。

本发明实施例中,所述装置还包括:

处理单元1003,用于基于所述第五内容信息和所述第一密文密钥中的密钥进行异或操作,得到所述第一密文密钥;或者,基于所述第五内容信息和所述第一密文密钥中的密钥进行加密操作,得到所述第一密文密钥。

本发明实施例中,所述发送单元1001,还用于向所述第一网络功能实体发送第三内容信息,所述第三内容信息基于所述第一内容信息生成。

本发明实施例中,所述发送单元1001,还用于向所述第一网络功能实体发送第四内容信息;所述第四内容信息基于所述第五内容信息和所述第一密文密钥中的密钥生成,或者,基于所述第一内容信息和所述第一密文密钥中的密钥生成,或者,基于所述第一密文密钥中的密钥和使用所述第一内容信息以及所述第五内容信息进行运算的计算结果生成。

本领域技术人员应当理解,图10所示的密钥传递装置中的各单元的实现功能可参照前述密钥传递方法的相关描述而理解。图10所示的密钥传递装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。

图11为本发明实施例的密钥传递装置的结构组成示意图三,如图11所示,所述装置包括:

接收单元1101,用于接收到来自网络的第一内容信息和第三内容信息;

决策单元1102,用于基于所述第一内容信息和所述第三内容信息决定是否发送第二内容信息,其中,所述第二内容信息基于所述第一内容信息生成;

发送单元1103,用于当所述决策单元的决策结果为发送时,发送所述第二内容信息。

本发明实施例中,所述决策单元1102,具体用于:基于所述第一内容信息生成期望校验码;如果所述期望校验码等于所述第三内容信息,则发送所述第二内容信息;如果所述期望校验码不等于所述第三内容信息,则不发送所述第二内容信息;或者,

基于所述第三内容信息生成期望信息值;如果所述期望信息值等于所述第一内容信息,则发送所述第二内容信息;如果所述期望信息值不等于所述第一内容信息,则不发送所述第二内容信息。

本领域技术人员应当理解,图11所示的密钥传递装置中的各单元的实现功能可参照前述密钥传递方法的相关描述而理解。图11所示的密钥传递装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1