一种密钥生成方法及装置与流程

    专利2022-07-07  57


    本申请实施例涉及通信技术领域,尤其涉及一种密钥生成方法及装置。



    背景技术:

    在移动通信网络的车联网场景下,定义了多种终端之间的通信方式。例如,终端1可以通过基站发送数据到用户面功能(userplanefunction,upf),upf通过基站将数据转发给终端2。那么终端1与终端2之间就建立了一个逻辑信道,用于它们之间的业务通信。

    终端1和终端2之间也可以直接通信。在车联网场景下,终端与终端之间可以具有pc5接口。多个终端之间可以通过它们之间的pc5接口直接通信。

    那么,多个终端之间通过pc5接口直接通信时,如何完成密钥协商是需要解决的问题。



    技术实现要素:

    本申请实施例提供一种密钥生成方法及装置,用以解决多个终端之间通过pc5接口直接通信时如何完成密钥协商的问题。

    本申请实施例提供的具体技术方案如下:

    第一方面,提供一种密钥生成方法,该方法应用于多个终端直接通信的系统中,例如,该系统中的任意两个终端用第一终端和第二终端表示,以第一终端和第二终端之间的交互过程来介绍一下本申请提供的密钥生成方法。第一终端向第二终端发送通信请求,第二终端从第一终端接收通信请求,所述通信请求用于请求与所述第二终端建立通信,所述通信请求包括所述第一终端的标识和业务的标识;业务的标识用于指示第一终端与第二终端建立通信的业务。所述第二终端根据共享密钥和所述业务的标识,确定第一安全密钥;所述第二终端根据所述通信请求,向所述第一终端返回通信响应;所述第一终端从所述第二终端接收通信响应,所述通信响应用于响应所述通信请求;所述第一终端根据共享密钥和所述业务的标识,确定第一安全密钥,其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥。通过上述方法,能够实现终端与终端之间直接通信时的密钥协商。并且由于第一终端和第二终端是根据业务的标识确定的第一安全密钥,因此该第一安全密钥是用于该业务的标识所指示的某个特定的业务的,从而能够使得不同的业务之间使用的密钥是不同的,达到不同业务之间密钥隔离的效果。

    在一个可能的设计中,所述通信请求还包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的应用层标识、所述第二终端的应用层标识、所述第一终端的层2标识、所述第二终端的层2标识、用于pc5接口信令传输的指示、用于pc5接口无线资源控制rrc传输的指示、用于pc5接口用户面数据传输的指示、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    在一个可能的设计中,所述通信响应包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的应用层标识、所述第二终端的应用层标识、所述第一终端的层2标识、所述第二终端的层2标识、用于pc5接口信令传输的指示、用于pc5接口rrc传输的指示、用于pc5接口用户面数据传输的指示、drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识、所述第二终端的pc5单播链接的标识或终端到终端通信群组的标识。

    在一个可能的设计中,如果通信请求中携带上述一个或多个信息,那么所述第一终端根据共享密钥和所述业务的标识,确定第一安全密钥,还可以通过以下方式实现:所述第一终端根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。这样第一终端根据通信请求中携带的信息来确定第一安全密钥,不仅能够实现不同业务之间的密钥隔离,还能够实现针对该信息的参数之间的密钥隔离。例如,通信请求中包括用于pc5接口无线资源控制rrc传输的指示,第一终端可以基于共享密钥和通信请求中包括的用于pc5接口无线资源控制rrc传输的指示,来确定第一安全密钥,则确定的第一安全密钥用于保护第一终端与第二终端在通过pc5接口传输rrc时的安全性。

    在一个可能的设计中,如果通信响应中携带上述一个或多个信息,那么所述第一终端根据共享密钥和所述业务的标识,确定第一安全密钥,还可以通过以下方式实现:所述第一终端根据共享密钥、所述业务的标识和所述通信响应中包括的所述一种或多种信息,确定第一安全密钥。这样第一终端根据通信响应中携带的信息来确定第一安全密钥,不仅能够实现不同业务之间的密钥隔离,还能够实现针对该信息的参数之间的密钥隔离。例如,通信请求中包括用于pc5接口无线资源控制rrc传输的指示,第一终端可以基于共享密钥和通信响应中携带的用于pc5接口无线资源控制rrc传输的指示,来确定第一安全密钥,则确定的第一安全密钥用于保护第一终端与第二终端在通过pc5接口传输rrc时的安全性。

    需要说明的是,所述第一终端从所述第二终端接收通信响应,以及所述第一终端确定第一安全密钥,这两个步骤之间没有严格的执行顺序。可以互相交换顺序。第一终端可以根据共享密钥和通信请求中的参数来生成第一安全密钥,这样就不用在接收到通信响应后再确定第一安全密钥。还有一种情况是在接收到通信响应后,根据通信响应中的参数来确定第一安全密钥,这样需要再接收到通信响应后,再执行确定第一安全密钥的步骤。

    类似的,在一个可能的设计中,所述第二终端根据共享密钥和所述业务的标识,确定第一安全密钥,可以通过以下方式实现:所述第二终端根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。这样第二终端根据通信请求中携带的信息来确定第一安全密钥,不仅能够实现不同业务之间的密钥隔离,还能够实现针对该信息的参数之间的密钥隔离。例如,通信请求中包括用于pc5接口无线资源控制rrc传输的指示,第二终端可以基于共享密钥和通信请求中包括的用于pc5接口无线资源控制rrc传输的指示,来确定第一安全密钥,则确定的第一安全密钥用于保护第一终端与第二终端在通过pc5接口传输rrc时的安全性。

    在一个可能的设计中,所述第二终端根据共享密钥和所述业务的标识,确定第一安全密钥,可以通过以下方式实现:所述第二终端根据共享密钥、所述业务的标识和所述通信响应中包括的所述一种或多种信息,确定第一安全密钥。这样第二终端根据通信响应中携带的信息来确定第一安全密钥,不仅能够实现不同业务之间的密钥隔离,还能够实现针对该信息的参数之间的密钥隔离。例如,通信请求中包括用于pc5接口无线资源控制rrc传输的指示,第二终端可以基于共享密钥和通信响应中携带的用于pc5接口无线资源控制rrc传输的指示,来确定第一安全密钥,则确定的第一安全密钥用于保护第一终端与第二终端在通过pc5接口传输rrc时的安全性。

    这样第一终端与第二终端之间协商的密钥可以是针对某一个参数的,比如针对业务标识所指示的业务的,或者是针对pc5接口rrc传输的,或者针对drb的标识所指示的drb的。这样,第一终端与第二终端之间协商的密钥可以是以参数为粒度的不同参数之间在应用密钥时是隔离的。

    在一个可能的设计中,所述通信请求中还包括第一消息验证码mac和/或第一指示,所述第一mac用于校验所述通信请求是否为合法请求,所述第一指示用于指示所述第二终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    在一个可能的设计中,所述第二终端根据所述第一终端的标识,判断所述第一终端和所述第二终端是否属于同一网络。通过判断第一终端和第二终端是否属于同一网络,能够确定通过应用层获取共享密钥还是通过运营商网络获取共享密钥。可以拓展获取共享密钥的途径。

    在一个可能的设计中,所述第二终端确定所述第一终端和所述第二终端属于同一网络,向第一网络功能nf发送非接入层nas请求,所述nas请求用于请求所述共享密钥。这样,可以通过运营商网络获取共享密钥,例如,可能根据amfkey完成第一终端和第二终端之间的密钥协商。

    在一个可能的设计中,所述nas请求中包括以下至少一种信息:所述第一终端的标识、消息验证码mac或第一指示;所述第一指示用于指示所述nas请求用于车联网通信。

    在一个可能的设计中,所述第二终端从所述第一nf接收nas响应,所述nas响应中包括所述共享密钥。这样,可以通过运营商网络获取共享密钥,例如,第一nf为amf,第一nf提供的共享密钥为amfkey,第一终端和第二终端可以根据amfkey完成密钥协商。

    在一个可能的设计中,所述通信响应中还携带第二指示,所述第二指示用于指示所述第一终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    在一个可能的设计中,所述第一终端向网络设备发送注册请求,所述注册请求用于请求注册所述第一终端的标识,所述注册请求中包括第三指示,所述第三指示用于指示所述第一终端请求使用终端与终端之间通信的业务;所述第一终端从所述网络设备接收所述第一终端的标识。例如,这里的网络设备可以是核心网设备,比如为amf。第一终端通过向网络设备发送注册请求,能够请求注册用于协商密钥的标识。网络设备向第一终端返回第一终端的标识,可以是根据注册请求分配的用于协商密钥的标识。当第一终端采用该用于协商密钥的标识与第二终端之间进行密钥协商时,由于该标识是网络侧分配的用于协商密钥的,能够避免泄露其他类型的标识(例如5g-guti),5g-guti使用次数越少,越能提高安全性能。

    第二方面,提供一种密钥生成方法,该方法的执行主体为nf,例如记为第一nf。该方法可以通过以下方式实现:第一网络功能nf接收密钥请求,所述密钥请求包括所述第一终端的标识;所述第一nf根据所述第一终端的标识,确定共享密钥;所述第一nf向所述第二终端发送所述共享密钥。所述共享密钥用于第一终端生成第一安全密钥。第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥。这样,可以通过运营商网络来向终端提供共享密钥,例如,第一nf为amf,第一nf提供的共享密钥为amfkey,第一终端和第二终端可以根据amfkey完成密钥协商。

    在一个可能的设计中,所述密钥请求是第二终端发送的。第二终端向第一nf发送密钥请求,第一nf从第二终端接收该密钥请求。第二终端是归属于该第一nf的。

    或者,所述密钥请求是所述第二终端通过第二nf发送的。即第二终端向第二nf发送密钥请求,第二nf向第一nf发送该密钥请求。这种情况下可能第二终端是归属于第二nf的,第一终端是归属于第一nf的。

    在一个可能的设计中,所述密钥请求还包括消息验证码mac;所述第一nf校验所述mac,确定所述mac校验通过。

    在一个可能的设计中,所述密钥请求还包括以下一种或多种信息:所述共享密钥的标识、业务的标识、业务的类型、所述第一终端的应用层标识、所述第二终端的应用层标识、所述第一终端的层2标识、所述第二终端的层2标识、用于pc5接口信令传输的指示、用于pc5接口无线资源控制rrc传输的指示、用于pc5接口用户面数据传输的指示、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。密钥请求中包括的这些信息可能携带于一个container中。由第一终端将该container发送至第二终端,第二终端发送至第一nf;或者,由第一终端将该container发送至第二终端,第二终端将该container发送至第二nf,第二nf将该container发送至第一nf。

    在一个可能的设计中,所述第一nf根据所述第一终端的标识以及所述密钥请求中的所述一种或多种信息,确定所述共享密钥。

    在一个可能的设计中,第一nf在确定共享密钥后,向所述第二终端发送所述共享密钥,可能是通过以下方式实现的:第一nf向第二nf发送共享密钥,第二nf将共享密钥发送给第二终端,或者第二nf根据共享密钥再生成一个密钥,将生成的密钥发送给第二终端。或者,第一nf直接将共享密钥发送给第二终端。

    第三方面,提供一种装置,该装置可以是终端,也可以是终端中的装置,或者是能够和终端匹配使用的装置。一种设计中,该装置可以包括执行第一方面中所描述的第一终端执行的方法/操作/步骤/动作所一一对应的模块,或者,该装置可以包括执行第一方面中所描述的第二终端执行的方法/操作/步骤/动作所一一对应的模块。该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种设计中,该装置可以包括处理模块和通信模块。

    示例性地,当该装置用于执行第一方面中的第一终端所执行的操作时:通信模块,用于向第二终端发送通信请求,所述通信请求用于请求与所述第二终端建立通信,所述通信请求包括所述第一终端的标识和业务的标识;所述通信模块,还用于从所述第二终端接收通信响应;所述通信响应用于响应所述通信请求;处理模块,用于根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥。

    在一个可能的设计中,所述处理单元用于:根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    在一个可能的设计中,所述通信模块还用于:向网络设备发送注册请求,所述注册请求用于请求注册所述第一终端的标识,所述注册请求中包括第三指示,所述第三指示用于指示所述第一终端请求使用终端与终端之间通信的业务;以及用于从所述网络设备接收所述第一终端的标识。

    示例性地,当该装置用于执行第一方面中的第一终端所执行的操作时:通信模块,用于从第一终端接收通信请求,所述通信请求包括所述第一终端的标识id和业务的标识;处理模块,用于根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥;所述通信模块,还用于根据所述通信请求,向所述第一终端返回通信响应。

    在一个可能的设计中,所述处理模块用于:根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    在一个可能的设计中,所述处理模块还用于:根据所述第一终端的标识,判断所述第一终端和所述第二终端是否属于同一网络;确定所述第一终端和所述第二终端属于同一网络;所述通信模块还用于向第一网络功能nf发送非接入层nas请求,所述nas请求用于请求所述共享密钥。

    在一个可能的设计中,所述nas请求中包括以下至少一种信息:所述第一终端的标识、消息验证码mac或第一指示;所述第一指示用于指示所述nas请求用于车联网通信;所述通信模块还用于,从所述第一nf接收nas响应,所述nas响应中包括所述共享密钥。

    无论该装置用于执行第一方面中的第一终端所执行的操作,还是用于执行第一方面中的第二终端所执行的操作,还可以有以下可选的实施方式:

    可选的,所述通信请求还包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    可选的,所述通信请求中还包括第一消息验证码mac和/或第一指示,所述第一mac用于校验所述通信请求是否为合法请求,所述第一指示用于指示所述第二终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    可选的,所述通信响应中携带第二指示,所述第二指示用于指示所述第一终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    第四方面,提供一种装置,该装置可以是网络功能nf,记为第一nf,也可以是nf中的装置,或者是能够和nf匹配使用的装置。一种设计中,该装置可以包括执行第二方面中所描述的第一nf执行的方法/操作/步骤/动作所一一对应的模块。该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种设计中,该装置可以包括处理模块和通信模块。

    示例性地,通信模块,用于接收密钥请求,所述密钥请求是第二终端发送的,或者,所述密钥请求是所述第二终端通过第二nf发送的,所述密钥请求包括所述第一终端的标识;处理模块,用于根据所述第一终端的标识,确定共享密钥;所述通信模块还用于向所述第二终端发送所述共享密钥,或者,还用于通过所述第二nf向所述第二终端发送所述共享密钥。

    在一个可能的设计中,所述密钥请求还包括消息验证码mac;所述处理模块还用于:校验所述mac,确定所述mac校验通过。

    在一个可能的设计中,所述密钥请求还包括以下一种或多种信息:所述共享密钥的标识、业务的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    在一个可能的设计中,所述处理模块用于:根据所述第一终端的标识以及所述密钥请求中的所述一种或多种信息,确定所述共享密钥。

    第五方面,本申请实施例提供一种装置,所述装置包括通信接口和处理器,所述通信接口用于该装置与其它设备进行通信,例如数据或信号的收发。示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口;其它设备可以为其它终端或者nf。处理器用于执行上述第一方面描述的第一终端或第二终端执行的方法。所述装置还可以包括存储器,用于存储处理器调用的指令。所述存储器与所述处理器耦合,所述处理器执行所述存储器中存储的指令时,可以实现上述第一方面描述的第一终端或第二终端执行的方法。

    在一个可能的设计中,当该装置用于执行第一方面中的第一终端所执行的操作时:通信接口,用于向第二终端发送通信请求,所述通信请求用于请求与所述第二终端建立通信,所述通信请求包括所述第一终端的标识和业务的标识;所述通信接口,还用于从所述第二终端接收通信响应;所述通信响应用于响应所述通信请求;处理器,用于根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥。

    在一个可能的设计中,所述处理单元用于:根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    在一个可能的设计中,所述通信接口还用于:向网络设备发送注册请求,所述注册请求用于请求注册所述第一终端的标识,所述注册请求中包括第三指示,所述第三指示用于指示所述第一终端请求使用终端与终端之间通信的业务;以及用于从所述网络设备接收所述第一终端的标识。

    示例性地,当该装置用于执行第一方面中的第一终端所执行的操作时:通信接口,用于从第一终端接收通信请求,所述通信请求包括所述第一终端的标识id和业务的标识;处理器,用于根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥;所述通信接口,还用于根据所述通信请求,向所述第一终端返回通信响应。

    在一个可能的设计中,所述处理器用于:根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    在一个可能的设计中,所述处理器还用于:根据所述第一终端的标识,判断所述第一终端和所述第二终端是否属于同一网络;确定所述第一终端和所述第二终端属于同一网络;所述通信接口还用于向第一网络功能nf发送非接入层nas请求,所述nas请求用于请求所述共享密钥。

    在一个可能的设计中,所述nas请求中包括以下至少一种信息:所述第一终端的标识、消息验证码mac或第一指示;所述第一指示用于指示所述nas请求用于车联网通信;所述通信接口还用于,从所述第一nf接收nas响应,所述nas响应中包括所述共享密钥。

    无论该装置用于执行第一方面中的第一终端所执行的操作,还是用于执行第一方面中的第二终端所执行的操作,还可以有以下可选的实施方式:

    可选的,所述通信请求还包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    可选的,所述通信请求中还包括第一消息验证码mac和/或第一指示,所述第一mac用于校验所述通信请求是否为合法请求,所述第一指示用于指示所述第二终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    可选的,所述通信响应中携带第二指示,所述第二指示用于指示所述第一终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    第六方面,提供一种装置,所述装置包括通信接口和处理器,所述通信接口用于该装置与其它设备进行通信,例如数据或信号的收发。示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口;其它设备可以为终端或其他nf。处理器用于执行上述第二方面描述的方法。所述装置还可以包括存储器,用于存储处理器调用的指令。所述存储器与所述处理器耦合,所述处理器执行所述存储器中存储的指令时,可以实现上述第二方面描述的方法。

    示例性地,通信接口,用于接收密钥请求,所述密钥请求是第二终端发送的,或者,所述密钥请求是所述第二终端通过第二nf发送的,所述密钥请求包括所述第一终端的标识;处理器,用于根据所述第一终端的标识,确定共享密钥;所述通信接口还用于向所述第二终端发送所述共享密钥,或者,还用于通过所述第二nf向所述第二终端发送所述共享密钥。

    在一个可能的设计中,所述密钥请求还包括消息验证码mac;所述处理器还用于:校验所述mac,确定所述mac校验通过。

    在一个可能的设计中,所述密钥请求还包括以下一种或多种信息:所述共享密钥的标识、业务的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    在一个可能的设计中,所述处理器用于:根据所述第一终端的标识以及所述密钥请求中的所述一种或多种信息,确定所述共享密钥。

    第七方面,本申请实施例中还提供一种计算机可读存储介质,所述计算机存储介质中存储有计算机可读指令,当所述计算机可读指令在计算机上运行时,使得计算机执行如第一方面或第一方面中任一种可能的设计中所述的方法。

    第八方面,本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第二方面或第二方面中任一种可能的设计中所述的方法。

    第九方面,本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面中任一种可能的设计中所述的方法,或者执行如第二方面或第二方面中任一种可能的设计中所述的方法。

    第十方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面或第一方面中任一种可能的设计中所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

    第十一方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第二方面或第二方面中任一种可能的设计中所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

    第十二方面,本申请实施例提供了一种通信系统,所述通信系统包括第三方面或者第五方面所述的装置、和第四方面或者第六方面所述的装置。

    附图说明

    图1为本申请实施例中通信系统架构示意图之一;

    图2为本申请实施例中密钥生成方法流程示意图之一;

    图3a为本申请实施例中通过运营商获取共享密钥的方式示意图;

    图3b为本申请实施例密钥生成方法流程示意图之二;

    图4为本申请实施例中第一终端注册该用于协商密钥的标识流程示意图;

    图5为本申请实施例中装置结构示意图之一;

    图6为本申请实施例中装置结构示意图之二;

    图7为本申请实施例中通信系统架构示意图之二。

    具体实施方式

    下面将结合附图,对本申请实施例进行详细描述。

    本申请实施例提供一种密钥生成方法及装置,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。本申请实施例的描述中,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请中所涉及的至少一个是指一个或多个;多个,是指两个或两个以上。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。本申请实施例中消息或请求或响应中“包括”信息,可以理解为消息或请求或响应中“携带”信息。

    本申请实施例提供的通信方法可以应用于第四代(4thgeneration,4g)通信系统、第五代(5thgeneration,5g)通信系统或未来的各种通信系统。具体的,可以应用于车联网的通信场景,可以应用于终端到终端通信的系统,例如车辆对外界(vehicletoeverything,v2x)通信系统。

    图1示出了本申请实施例提供的密钥生成方法适用的一种可能的通信系统的架构。图1示出了该通信系统为一种v2x通信系统。

    参阅图1所示,v2x通信系统中包括一个或多个终端。v2x通信系统中的终端又称之为用户设备(userequipment,ue)、移动台(mobilestation,ms)、移动终端(mobileterminal,mt)等,是一种向用户提供语音或数据连通性的设备,也可以是物联网设备。例如,终端包括具有无线连接功能的手持式设备、车载设备等。目前,终端可以是:手机(mobilephone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternetdevice,mid)、可穿戴设备(例如智能手表、智能手环、计步器等),车辆、车载设备(例如,汽车、自行车、电动车、飞机、船舶、火车、高铁等)、虚拟现实(virtualreality,vr)设备、增强现实(augmentedreality,ar)设备、工业控制(industrialcontrol)中的无线终端、智能家居设备(例如,冰箱、电视、空调、电表等)、智能机器人、车间设备、无人驾驶(selfdriving)中的无线终端、远程手术(remotemedicalsurgery)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端,或智慧家庭(smarthome)中的无线终端、飞行设备(例如,智能机器人、热气球、无人机、飞机)等。

    图1中的终端以ue为例,包括uea、ueb、uec和ued。v2x通信系统中,终端与终端之间通过pc5接口建立连接,可以直接进行通信。如图1中所示,uea、ueb、uec和ued中,两个ue之间通过pc5接口连接。终端还可以与接入网设备通过uu口连接,图1中接入网设备用下一代无线接入网(nextgenerationradioaccessnetwork,ng-ran)表示。接入网设备为无线接入网(radioaccessnetwork,ran)中的节点,又可以称为基站,还可以称为ran节点(或设备)。接入网设备与核心网连接。

    图1中核心网用5g核心网(5gcore,5gc)表示,5gc中包括一个或多个网络功能(networkfunction,nf),nf也可以称为网络功能实体或网络功能网元。图1中5gc中以包括认证管理功能(authenticationmanagementfunction,amf)、会话管理功能(sessionmanagementfunction,smf)、统一数据存储(unifieddatarepository,udr)、统一的数据管理功能(unifieddatamanagement,udm)、策略控制功能(policycontrolfunction,pcf)、网络开放功能(networkexposurefunction,nef)、应用功能(applicationfunction,af)和用户面功能(userplanefunction,upf)几种网络功能为例。其中,amf用于接入和移动管理功能,ausf用于认证服务器功能;

    每一个终端都有可能产生v2x应用的数据。终端与终端之间通信的链路方式可以包括多种。例如,终端与终端基于pc5接口直接建立通信,即终端基于无线能力进行直连的通信。图1中所示的uea与ueb通过pc5接口之间建立通信。又例如,终端可以基于uu接口向基站传输v2x应用的数据。例如uea通过基站发送v2x应用的数据至upf,之后upf再将v2x应用的数据通过基站转发至ued。此时uea与ued建立了一个逻辑信道,用于它们之间的v2x业务通信。还包括另一种可能,就是ue通过基站和upf发送v2x应用的数据到v2x应用服务器,v2x应用服务器再经过upf和基站发送v2x应用的数据至ued。还包括另一种可能,就是ue通过基站发送v2x应用的数据到另一个基站,再由另一个基站发送v2x应用的数据至ued。这里两个ue连接的基站可以相同也可以不同。

    在v2x通信系统中,终端与终端之间的通信模式包括:单播、组播或广播。

    当一个终端向另一个终端发送v2x应用的数据时,需要进行pc5接口的密钥协商,以保证pc5通信的安全性。

    图1所示的通信系统为本申请实施例适用的一种可能的系统。本申请实施例还可以应用到除v2x通信系统之外的其它系统中。本申请实施例的方法包括两个终端之间的密钥协商,当应用到v2x通信系统中时,可以为两个终端之间对pc5接口的密钥协商。该方法还可以扩展到任意两个设备之间的密钥协商。

    下面将详细介绍一下本申请实施例提供的密钥生成方法。

    如图2所示,本申请实施例提供的密钥生成方法的具体流程如下所述。该方法以任意两个终端之间的通信为例,介绍生成密钥的方法。通信双方的这两个终端可以称为第一终端和第二终端。

    s201、第一终端向第二终端发送通信请求,第二终端从第一终端接收该通信请求。

    该通信请求包括以下一种或多种信息:

    1)第一终端的标识。第一终端的标识用于识别第一终端的身份。例如,该标识可以为永久标识(identity,id)、也可以为其它标识,例如5g-全球唯一临时标识符(globaluniquetemporaryidentifier,guti)、通用公共订阅标识符(genericpublicsubscriptionidentifier,gpsi)或注册的专用于密钥协商的临时标识(记为ueid)。

    可选的,第二终端会保存有第一终端的id。

    2)业务的标识或者应用程序的标识,用于标识第一终端与第二终端之间交互的业务或应用程序。举例来说,该标识可以用于指示第一终端与第二终端之间交互的业务为v2x业务,或该标识可以用于指示第一终端与第二终端之间交互的应用程序为v2x应用。例如,业务的标识或者应用程序的标识为智能交通系统应用程序标识(intelligenttransportsystemsapplicationidentifier,its-aid)。

    3)业务的类型。举例来说,业务的类型可以用于指示该业务为v2x业务。例如,该业务的类型为服务提供者标识(providerserviceid,psid),表示该业务的类型为服务提供者。

    4)共享密钥的标识。用于标识第一终端预先保存的或者确定的共享密钥,共享密钥为第一终端与第二终端之间共享的密钥。这里第二终端的共享密钥可以为后续第二终端在接收到通信请求后,从第一nf获得的。

    5)第一终端的应用层标识(applicationlayerid)。例如记为applicationlayerid1。

    6)第二终端的应用层标识(applicationlayerid)。例如记为applicationlayerid2。

    7)第一终端的层2标识(layer2id1)。其中,层2可以为应用层与物理层之间的层。或者也可以称为源侧层2(sourcelayer2)id。例如第一终端的层2标识为layer2id1,或者第一终端的源侧层2id为sourcelayer2id1。

    8)第二终端的层2标识(layer2id2)。或者也可以称为源侧层2(sourcelayer2)id。例如第二终端的层2标识为layer2id2,或者第二终端的源侧层2id为sourcelayer2id2。

    9)用于pc5接口信令传输(signaling)的指示(即pc5-s的指示),即用于指示第一终端与第二终端之间的信令传输。

    10)用于pc5接口无线资源控制(radioresourcecontrol,rrc)传输的指示(pc5-rrc的指示),用于指示第一终端与第二终端之间的rrc传输。

    11)用于pc5接口用户面(userplane,up)数据传输的指示(pc5-u的指示),即用于指示第一终端与第二终端之间的用户面传输。

    12)数据无线承载(dataradiobearer,drb)的标识。

    13)数据流的标识(flowid),用于区分不同的flow或用于标识flow的类型。例如,该flowid用于标识该数据流为业务质量(qualityofservice,qos)flow。

    14)第一终端的pc5单播链接的标识(pc5unicastlinkid),例如记为pc5unicastlinkid1。

    15)群组的标识或群组的指示。群组的标识用于标识第一终端希望接入的群组,群组的指示用于指示第一终端希望接入的群组。群组为终端到终端通信的群组。

    s202、第二终端确定第一安全密钥。

    第二终端确定要建立与第一终端之间的通信,则确定安全密钥,这里记为第一安全密钥。

    具体地,第二终端确定的第一安全密钥为第一终端与第二终端之间通信保护的安全密钥。第二终端可以基于共享密钥和通信请求包括的信息所指示的生成参数,来确定第一安全密钥。第二终端确定的第一安全密钥是以通信请求中包括的信息所指示的生成参数为粒度的,不同的生成参数对应不同的密钥,以达到密钥隔离的效果。

    举例来说,通信请求中包括业务的标识,第二终端可以基于共享密钥和业务的标识来确定第一安全密钥,那么确定的第一安全密钥是仅用于该业务的标识所指示的业务的,不同的业务的标识确定出来的第一安全密钥是不同的。

    又例如,通信请求中包括业务的类型,第二终端可以基于共享密钥和业务的类型来确定第一安全密钥,那么确定的第一安全密钥是仅用于该业务的类型,不同的业务的类型确定出来的第一安全密钥是不同的。

    又例如,通信请求中包括drb的标识,第二终端可以基于共享密钥和drb的标识来确定第一安全密钥,那么确定的第一安全密钥是仅用于该drb的标识所指示的drb的,不同的drb的标识确定出来的第一安全密钥是不同的。

    又例如,第二终端可以基于共享密钥和flow的标识来确定第一安全密钥,那么确定的第一安全密钥是仅用于该flow的标识所指示的flow的,不同的flow的标识确定出来的第一安全密钥是不同的。

    又例如,通信请求中包括用于pc5接口信令传输的指示,第二终端可以基于共享密钥和该用于pc5接口信令传输的指示来确定第一安全密钥,则确定的第一安全密钥用于保护第一终端与第二终端在通过pc5接口传输信令的安全性。

    又例如,通信请求中包括用于pc5接口无线资源控制rrc传输的指示,第二终端可以基于共享密钥和该用于pc5接口无线资源控制rrc传输的指示来确定第一安全密钥,则确定的第一安全密钥用于保护第一终端与第二终端在通过pc5接口传输rrc时的安全性。

    又例如,第二终端可以基于共享密钥,以及第一终端的pc5单播链接的标识和/或第二终端的pc5单播链接的标识来确定第一安全密钥,那么确定的第一安全密钥是仅用于该及第一终端的pc5单播链接的标识和/或第二终端的pc5单播链接的标识的。第二终端基于共享密钥和通信请求中的其它信息所指示的生成参数来确定第一安全密钥,可以参照上述几个举例的过程和效果,在此不再赘述。

    s203、第二终端向第一终端返回通信响应,第一终端从第二终端接收通信响应。

    通信响应用于响应第一终端发送的通信请求。可选的,通信响应中可以包括一种或多种信息:

    (1)、第二终端的标识。该标识可以为永久标识id、也可以为其它标识,例如5g-guti、gpsi或注册的专用于密钥协商的临时标识。

    可选的,第一终端会保存有第二终端的id。

    (2)、业务的标识,该业务的标识用于标识第一终端与第二终端交互的业务。也可以是应用程序的标识。可以参照上述对第2)点的描述。

    (3)、业务的类型,可以参照上述第3)点的描述。

    (4)、共享密钥的标识。用于标识第二终端预先保存的或者确定的共享密钥,共享密钥为第一终端与第二终端之间共享的密钥。

    (5)、第一终端的应用层标识。例如记为applicationlayerid1。

    (6)、第二终端的应用层标识。例如记为applicationlayerid2。

    (7)、第一终端的层2标识。或者也可以称为源侧层2(sourcelayer2)id。例如第一终端的层2标识为layer2id1,或者第一终端的源侧层2id为sourcelayer2id1。

    (8)、第二终端的层2标识。或者也可以称为源侧层2(sourcelayer2)id。例如第二终端的层2标识为layer2id2,或者第二终端的源侧层2id为sourcelayer2id2。

    (9)、用于pc5接口信令传输的指示。(即pc5-s的指示)。用于指示第一终端与第二终端之间的信令传输。

    (10)、用于pc5接口rrc传输(signalling)的指示(pc5-rrc的指示),用于指示第一终端与第二终端之间的rrc传输。

    (11)、用于pc5接口用户面数据传输的指示(pc5-u的指示),即用于指示第一终端与第二终端之间的用户面传输。

    (12)、drb的标识。可以是第一终端发送的通信请求中携带的drb的标识,也可以为第二终端接收到通信请求后选择的drb的标识。

    (13)、数据流flow的标识。用于区分不同的flow或用于标识flow的类型。例如,该flowid用于标识该数据流为qosflow。

    (14)、第一终端的pc5单播链接的标识(pc5unicastlinkid),例如记为pc5unicastlinkid1。

    (15)、第二终端的pc5单播链接的标识(pc5unicastlinkid),例如记为pc5unicastlinkid2。

    (16)、群组的标识或群组的指示。群组的标识用于标识第一终端希望接入的群组,群组的指示用于指示第一终端希望接入的群组。群组为终端到终端通信的群组。

    上述通信响应中包括信息可以根据通信请求中包括的信息确定,例如,可以是对应的相同的信息。

    s204、第一终端确定第一安全密钥。

    本步骤可以与s202和s203之间没有严格的执行顺序,可以在s201之后立即执行。步骤s204也可以在步骤s201之后立即执行。

    第一终端可以根据共享密钥和生成参数确定第一安全密钥。在一种情况下,该生成参数可以是通信请求包括的信息所指示的生成参数,这种情况下,第一终端可以在s201之后无需等待接收到通信响应就可以执行,当然也可以在接收到通信响应后执行。在另一种情况下,该生成参数可以是通信请求和/或通信响应中包括的信息所指示的生成参数,这种情况下,第一终端在接收到通信响应后根据通信响应中的信息所指示的生成参数,来确定第一安全密钥。第一终端根据共享密钥和生成参数确定第一安全密钥的方法和效果可以参考s202中第二终端执行的操作。第一终端确定出来的第一安全密钥是第一终端与第二终端之间通信保护的安全密钥,具体可以用于以生成参数为粒度的通信保护的安全密钥。

    例如,第一终端可以基于共享密钥和业务的标识来确定第一安全密钥,那么确定的第一安全密钥是仅用于该业务的标识所指示的业务的,不同的业务的标识确定出来的第一安全密钥是不同的。

    上述第一终端和第二终端均基于共享密钥来确定第一安全密钥。共享密钥可以为第一终端和第二终端认证或协商得到的,也可以是预定义的。其中认证过程可以为基于分对称(例如证书或者基于身份密码技术)的认证,也可以是基于对称密钥的认证,或者为基于因特网密钥交换版本2(internetkeyexchangeversion2,ikev2)的认证,ip安全(ipsecurity,ipsec)认证,或者为基于传输层安全(transportlayersecurity,tls)的认证,或者为基于用户名口令的认证。在s201之前,第一终端和第二终端还需要执行认证或协商共享密钥的过程,第一终端和第二终端分别保存共享密钥。在后续步骤中该共享密钥用于生成或确定第一安全密钥。

    第一终端和/或第二终端可以通过应用层获取共享密钥,也可以通过运营商网络获取共享密钥。若通过应用层获取共享密钥,则第一终端/第二终端可以通过上述的认证或协商方式获得共享密钥,或者预定义共享密钥。若通过运营商网络获取共享密钥,则需要第一终端和第二终端属于同一运营商,第一终端/第二终端可以向网络设备获取。在一个可能的实施方式中,在s201第一终端向第二终端发送通信请求中还可以携带指示1,用于指示第二终端通过应用层获取共享密钥还是通过运营商网络获取共享密钥。第二终端根据该指示1确定获取共享密钥的方式。类似的,在s203第二终端向第一终端返回通信响应中携带指示2,用于指示第一终端通过应用层获取共享密钥还是通过运营商网络获取共享密钥。第一终端根据该指示2确定获取共享密钥的方式。

    以第二终端为例,可选的通过运营商网络获取共享密钥的方式以及确定第一安全密钥的方式如下所述。

    在图2所示的密钥生成方法的基础上,如图3a所示,通过运营商获取共享密钥的方式以及确定第一安全密钥的方式如下所述。图3a所示的实施例中的任意多个连续或非连续的步骤可以形成本申请需要保护的方案,因为图3a所示的实施例中涉及多个执行主体,任意一个执行主体涉及的部分或全部操作可以形成针对该执行主体的方案。例如,s303~s309可以形成本申请实施例需要保护的方案,其余步骤为可选步骤。

    s301、第一终端向第二终端发送通信请求,第二终端从第一终端接收该通信请求。

    该通信请求可以包括的信息如上述1)~15)所述的信息中的一种或多种,该通信请求中的第一终端的标识可以包括第一终端的id,这里第一终端的id可以为,第一终端的5g-guti,或者ueid,或者gpsi,或者suci。ueid为用于此密钥协商业务的ue标识。

    该通信请求中还可以包括第一nf的地址。也可能第一终端的标识中包括第一nf的地址信息。

    第一终端和第一nf事先共享一些参数,例如第一终端和第一nf分别保存了第一终端的标识、密钥k和密钥标识keyid。这里k为第一终端与第一nf之间共享的密钥,例如,第一nf为amf,则这里k可以包括amfkey(记为kamf)、naskey(包括加密密钥knasenc和完整性保护密钥knasint)、或者锚密钥中的任一种或多种。此时安全锚功能(securityanchorfunction,seaf)部署在amf内。例如,第一nf可以为安全锚点功能(securityanchorfunction,seaf),则这里的k可以为seafkey(记为k_seaf)。例如,第一nf为认证服务器功能(authenticationserverfunction,ausf),则这里k可以包括ausfkey(记为k_ausf)、naskey(包括加密密钥knasenc和完整性保护密钥knasint)、或者锚密钥中的任一种或多种。例如,第一nf可以为基站,基站用gnb表示,则这里的k可以为gnbkey(记为k_gnb)、naskey(包括加密密钥knasenc和完整性保护密钥knasint)、或者锚密钥中的任一种或多种。这里密钥标识(keyid)为第一终端与第一nf之间共享密钥指示,例如该密钥标识为ngksi,ausf密钥标识,seaf密钥标识,基站密钥标识。

    nf为amf时,第一nf为第一amf,第二nf为第二amf;

    nf为ausf时,第一nf为第一ausf,第二nf为第二ausf;

    nf为基站时,第一nf为第一基站,第二nf为第二基站。

    可选的,也可以为第一nf为第一ausf,第二nf为第二amf。

    可选的,也可以为第一nf为第一amf,第二nf为第二基站。

    其他可能性,第二nf可以为amf,seaf,ausf,或者基站;第一nf可以为amf,seaf,ausf,或者基站等不做限制。

    第一终端向第二终端发送的通信请求中还可以包括消息认证码(messageauthenticationcode,mac),这里可以记为mac1。mac1可以用于网络功能校验通信请求中包括的参数的认证。

    mac1的计算可以为基于密钥k,或者基于密钥k推衍得到的完整性保护密钥计算的,或者基于第一终端与第一amf之间共享的nas保护密钥计算的;或者基于第一终端与第一基站之间共享的rrc保护密钥计算的。除上述各种密钥之外,mac1的计算还可以基于上述通信请求中包括的信息。例如,计算mac1的值可以基于nas保护密钥推演得到的完整性保护密钥knasint计算的。本申请实施例中其它mac的计算方式可以参照这里计算mac1的方式。

    通信请求中可以包括一个容器(container),在该container中携带5g-guti1和/或ngksi,该container中还可以包括mac1和通信请求中携带的其他参数。其它参数可以参照图2所示实施例中通信请求中携带的参数。或者在通信请求中包括一个container的基础上,在通信请求中container外还携带一份与container中相同的信息;也可以在通信请求中container外携带一部分信息,如携带5g-guti1和/或ngksi。或者,将container通过一个消息发送给第二终端,将上述通信请求中container外的信息通过另一个消息发送给第二终端。也可能,container中携带通信请求中其他参数的一部分。可选的,container中还可以包括一个指示,用于指示所有container的内容用于请求端到端的密钥协商。后续处理container的网元,可以通过这个指示确定container的请求。

    第二终端可以根据通信请求中携带的5g-guti1执行后续的操作,而container会由第二终端发送至第一nf。这里不限制5g-guti是在container内部还是外部。

    s302、可选的,第二终端判断第一终端与第二终端是否属于同一网络。

    这里通过第一终端的标识和或第一nf所在的地址的判断可以分为两种可能性。可能性1:判断第一终端和第二终端接入的服务网络是否相同。可能性2:判断第一终端和第二终端所在的归属网络是否相同。例如通过suci中的网络标识确定第一终端所在的归属网络,进行判断;通过5g-guti中的网络标识进行判断是否属于同一个服务网络;通过ueid确定服务网络或者归属网络;通过gpsi确定归属网络等;通过第一nf所在的地址判定服务网络或者归属网络相同。如果存在其他标识的可能性,也可以进行判断。

    如果第一终端与第二终端不属于同一网络,则拒绝通信请求,并发送拒绝消息至第一终端。可选的拒绝消息包括拒绝指示,指示拒绝的原因。又或者,如果第一终端与第二终端不属于同一网络,则通过应用层获取共享密钥,并继续与第一终端协商安全密钥,可以按照图2所示的方法协商第一安全密钥。

    如果第一终端与第二终端属于同一网络,则继续执行s303。

    第二终端可以通过第一终端的标识来判断第一终端与第二终端是否属于同一网络,例如通过第一终端的5g-guti来判断第一终端与第二终端是否属于同一运营商。

    例如可以是第二终端根据5g-guti1中的网络标识,判断该网络标识与自身接入的网络是否属于同一个网络。如第二终端根据5g-guti1中包括的网络的移动设备网络代码(mobilenetworkcode,mnc)和移动设备国家代码(mobilecountrycode,mcc),判断是否与自己接入的服务网络的mnc和mcc相同。

    可能性,这里是否同一网络可以理解为同一运营商网络。

    可选的,这里网络标识也可以由第一终端在通信请求中单独发送给第二终端。第二终端根据接收到的网络标识判定归属网络和/或服务网络,再执行上述判断。

    s303、第二终端向第一nf发送第一终端的标识,第一nf获取第一终端的标识。

    第二终端向第一nf发送第一终端的标识时,还可以向第一nf发送其它的参数或信息。

    可选的,第二终端向第一nf发送请求消息,例如记为请求消息1,在请求消息1中携带第一终端的标识、其它的参数或信息。在请求消息1中还可以携带指示信息,该指示信息用于指示该请求消息1是终端与终端之间通信相关的请求,例如,指示该请求消息1是车联网密钥协商相关的请求或者是v2x密钥协商相关的请求。

    可选的,第二终端可能直接向第一nf发送密钥请求,该密钥请求可以是nas消息,该nas消息中携带第一终端的标识。例如,第一nf为第一终端和第二终端服务的场景下,第二终端可以直接向第一nf发送第一终端的标识。可选的,nas消息携带container。

    可选的,第二终端可能通过第二nf向第一nf发送第一终端的标识,例如该方法可以通过s304~s306实现。例如,当第一nf为第一终端服务,第二nf为第二终端服务,这种场景下,第二终端可以通过第二nf向第一nf发送第一终端的标识。

    s304、第二终端向第二nf发送请求消息(记为请求消息2),第二nf从第二终端接收该请求消息2。

    该请求消息2中可以包括上述第一终端发送的通信请求中的container。可选的,该请求消息2中在container外还可以包括第二终端的id。第二终端的id记为ueid2。可选的,该请求消息2中还可以包括一个指示信息,该指示信息用于指示该请求消息2是指示终端与终端之间通信相关的请求,例如,指示该请求消息2是车联网密钥协商相关的请求或者是v2x密钥协商相关的请求。

    第二nf可以是为第二终端服务的amf,也可以是第二终端发送给基站后,由基站选择的amf。

    s305、第二nf校验该请求消息2,并确定第一nf。

    第二nf校验从第二终端接收到的请求消息2的正确性。校验动作可选。第二nf可以自己校验,也可以通过请求其他nf进行校验。例如,第二nf可以通过第二终端的id确定ueid2的安全上下文来进行校验,验证请求消息2的完整性保护。例如,第二nf通过ueid2确定另一个之前为第二终端服务的nf,请求此nf校验并返回结果。校验通过后,继续后续步骤。这里校验的动作为可选动作,不做限制。

    可选的,如果该请求消息2中包括指示信息,则第二nf根据该指示信息确定此请求消息2和终端与终端之间通信相关,例如,指示该请求消息2是车联网密钥协商相关的请求或者是v2x密钥协商相关的请求。

    第二nf根据该请求消息2中携带的第一终端的标识(例如5g-guti1)和/或第一nf的地址,确定为第一终端服务的第一nf。

    第二nf可以根据请求消息2中携带的第一nf的地址确定第一nf。第二nf也可以发送第一终端的标识(例如,gpsi)至其他nf(例如,udm,udr),从其他nf获取第一nf的地址,进而确定第一nf。

    可选的,也可以第二nf确定第一终端与第二终端是否属于同一网络。具体判定方法与上面的判定相同。

    s306、第二nf向第一nf发送密钥请求;第一nf从第二nf接收密钥请求。

    密钥请求中携带从第二终端接收的container。或者,密钥请求中在container外还携带与container中相同的部分或全部信息,也可以携带container中没有携带的其他参数,其他参数可以参考图2所示的实施例中的通信请求中携带的信息或参数。

    s307、第一nf确定密钥k1,该密钥k1可以作为上述共享密钥。

    若第一nf从第二终端接收到的请求消息(上述请求消息1或请求消息2)中携带消息验证码mac1,则第一nf还会校验mac1,确定校验mac1通过后,执行确定共享密钥的过程。

    以nf为amf为例,第一nf根据container中的5g-guti1和ngksi确认第一终端的安全上下文,例如确定kamf。并基于kamf推衍得到k1。具体可以基于kamf和生成参数推衍得到k1。

    可选的,第一nf还从container中接收到指示信息,根据指示信息确定此消息用于车联网密钥协商相关的请求或者是v2x密钥协商相关的请求,或者端到端的密钥协商。

    可选的,这些生成参数也可以通过第二终端和第二nf发送至第一nf。例如,生成参数可以参照上文中通信请求或通信响应中的包括的信息;

    可选的,生成k1还可能使用以下参数的至少一项:nas上行或下行计数值,端到端通信指示,业务的标识,业务的类型。业务的标识和类型可以在container中发送给第一nf。

    可选的,第一nf根据第一终端的安全上下文校验container内参数的认证性。例如校验mac1的正确性。例如校验方式可以基于nas安全密钥校验的方式,该校验方式本申请实施例不做限制。

    s308、第一nf向第二终端发送共享密钥k1,第二终端获取共享密钥k1。

    可选的,第一nf可以直接向第二终端发送请求消息1的响应消息1,第二终端从该响应消息1中获取共享密钥。

    或者,第一nf通过第二nf向第二终端发送k1,这种方式可以通过s309~s311实现。

    s309、第一nf向第二nf返回密钥响应,第二nf从第一nf接收该密钥响应。

    该密钥响应用于响应密钥请求。密钥响应中携带k1。

    s310、第二nf根据k1确定密钥k2。

    确定密钥k2的方式可以参照确定k1的方式,即第二nf根据k1和生成参数推演k2,生成参数可以参照上文中通信请求或通信响应中携带的信息。

    该步骤可以省略。

    s311、第二nf向第二终端发送请求消息2的响应消息2,第二终端从第二nf接收响应消息2。

    该响应消息2携带密钥k2。密钥k2即共享密钥。

    如果s310省略,则响应消息2携带密钥k1即可,密钥k1即共享密钥。

    可选的,第二nf可以通过第二nf与第二终端之间的安全上下文加密保护k1或k2的发送。

    s312、第二终端确定第一安全密钥k3。

    第二终端可能会根据响应消息2中携带的密钥k1或者k2,进一步推演得到k3。或者第二终端根据响应消息1中携带的密钥k1推演得到k3。这种情况下,密钥k1或者k2作为共享密钥,k3为第一安全密钥,确定第一安全密钥的方法可以参照图2所示的实施例的描述。

    第二终端也可能直接将响应消息2中携带的密钥k1或者k2作为第一安全密钥;或者,第二终端也可能直接将响应消息1中携带的密钥k1作为第一安全密钥。

    可选的,第二终端根据第一安全密钥k3计算消息验证码mac2的值,或者根据k3推衍得到完整性保护密钥k3int之后,基于k3int对通信响应做完整性保护,得到mac2的值。

    s313、第二终端向第一终端返回通信响应。第一终端从第二终端接收通信响应。

    该步骤可以参考图2所示的实施例中的s203步骤中的描述。

    可选的,该通信响应中还可以包括mac2。

    s314、第一终端确定第一安全密钥k3。

    第一安全密钥即为图2所示的实施例中的第一安全密钥。

    这里第一终端采用上述第一nf相同的方式生成k1,再生成k3;或者根据k1生成k2后,再生成k3。生成方式与上面描述的相同。

    以nf为amf为例,第一终端根据kamf推衍得到k3。例如:第一终端根据kamf推衍得到k1,可以参照第一nf确定k1的操作。根据k1确定k2,可以参照第一nf确定k2的操作;第一终端再根据k2得到k3,可以参照第二终端确定k3的操作。

    若通信响应中携带mac2,第一终端根据第一密钥k3校验mac2的正确性,或者根据k3推衍得到k3int后,采用k3int校验mac2的正确性。如果校验不通过,则发送校验失败响应至第二终端。可选发送失败指示给第二终端,指示mac2校验失败。校验成功则完成密钥协商。

    s315、可选的,第一终端确定mac3,并将mac3发送给第二终端,第二终端从第一终端接收mac3。

    第一终端根据k3或者k3int计算mac3。mac3的输入参数还可以包括上述通信请求或通信响应中携带的信息中的至少一项。

    s316、可选的,第二终端校验mac3。

    第二终端根据k3或者k3int校验mac3。如果校验通过,则代表第一终端与第二终端之间完成双向认证。

    可选的,上述第一终端的标识除了可以是5g-guti之外,还可以是gpsi,若第一终端的标识为gpsi,则可将上述实施例中5g-guti替换为gpsi,形成的方案也属于本申请实施例所保护的范围。

    可选的,上述第一终端的标识还可以是用于协商密钥的标识(记为ueid)。则可将图3a所述的实施例中5g-guti替换为该用于协商密钥的标识,形成的方案也属于本申请实施例所保护的范围。图3a中第一终端的标识用5g-guti/ueid/gpsi来表示,表明第一终端的标识可以是这三种中的任意一种,可以理解的是,第一终端的标识还可以有其它表现形式。

    可选的,也可以除发送ue标识之外,还发送第一终端所在的服务网络标识,此时第二终端可以根据接收到第一终端所在的服务网络标识,确定是否属于同一个服务网络。如果不属于,则拒绝通信请求。如果属于,则继续执行。

    可选的,也可以发送ue标识之外,再发送第一终端所在的归属网络标识,此时第二终端可以根据接收到第一终端所在的归属网络标识,确定是否属于同一个归属网络。如果不属于,则拒绝通信请求。如果属于,则继续执行。

    可选的,也可以发送ue标识包括第一终端所在的服务网络标识,此时第二终端可以根据接收到第一终端所在的服务网络标识,确定是否属于同一个服务网络。如果不属于,则拒绝通信请求。如果属于,则继续执行。

    可选的,也可以发送ue标识包括第一终端所在的归属网络标识,此时第二终端可以根据接收到第一终端所在的归属网络标识,确定是否属于同一个归属网络。如果不属于,则拒绝通信请求。如果属于,则继续执行。

    可选的,上述ue的标识也可以为suci。此时第二终端可以根据suci中的网络标识确实是否属于同一个归属网络。如果不属于,则拒绝通信请求。如果属于,则继续执行。

    可选的,第二nf为amf。第二nf校验mac通过后,再发送container消息中的第一终端的标识至第一nf。还可能发送指示信息,密钥标识等至少一项。此时第一nf不需校验mac。

    基于图3a所描述的实施例,若nf为amf时,第一nf为第一amf,第二nf为第二amf,这种情况下,如图3b所示,本申请实施例提供的密钥生成方法如下所述。

    s301b、第一终端向第二终端发送通信请求,第二终端从第一终端接收该通信请求。

    该通信请求可以包括的信息如上述1)~15)所述的信息中的一种或多种,该通信请求中的第一终端的标识可以包括第一终端的id,这里第一终端的id可以为,第一终端的5g-guti,或者ueid,或者gpsi,或者suci。ueid为用于此密钥协商业务的ue标识。

    该通信请求中还可以包括第一amf的地址。也可能第一终端的标识中包括第一amf的地址信息。

    通信请求中还可以包括消息认证码(messageauthenticationcode,mac),这里可以记为mac1。mac1可以用于网络功能校验通信请求中包括的参数的认证。

    通信请求中可以包括一个nas容器(container),在该container中携带5g-guti1和/或ngksi,该container中还可以包括mac1和通信请求中携带的其他参数。其它参数可以参照图2所示实施例中通信请求中携带的参数。或者在通信请求中包括一个container的基础上,在通信请求中container外还携带一份与container中相同的信息;也可以在通信请求中container外携带一部分信息,如携带5g-guti1和/或ngksi。或者,将container通过一个消息发送给第二终端,将上述通信请求中container外的信息通过另一个消息发送给第二终端。也可能,container中携带通信请求中其他参数的一部分。可选的,container中还可以包括一个指示,用于指示所有container的内容用于请求端到端的密钥协商。后续处理container的网元,可以通过这个指示确定container的请求。

    本步骤的其它相关描述还可以参照上述s301的描述,重复之处不再赘述。

    s302b、第二终端向第二amf发送第一nas消息,第二amf从第二终端接收该第一nas消息。

    第一nas消息携带第一终端的标识,还可以携带从第一终端接收到的nascontainer。

    这里的第一nas消息即图3a中s303中所述的请求消息2,相关描述可以参照请求消息2的描述,在此不再赘述。

    s303b、第二amf向第一amf发送密钥请求(keyrequest),第一amf从第二amf接收该密钥请求。

    本步骤可以参照上述s306的描述,密钥请求可以参照s306中的密钥请求的描述。

    s304b、第一amf确定密钥k1。

    第一amf可以先验证nascontainer,例如,nascontainer中携带的mac1,第一amf校验mac1,确定校验mac1通过后,确定密钥k1。

    s305b、第一amf向第二amf返回密钥响应,第二amf从第一amf接收该密钥响应。

    s306b、第二nf向第二终端发送密钥k1,第二终端从第二nf接收密钥k1。

    s307b、第二终端确定第一安全密钥k3。参考s312。

    s308b、第二终端向第一终端返回通信响应。第一终端从第二终端接收通信响应。

    同s313。

    s309b、第一终端确定第一安全密钥k3。同s313。

    图3b中第一终端和第二终端的其它未描述的操作可以参照图3a中对第一终端和第二终端的描述。图3b中对第一amf的其它未描述的操作可以参照图3a中对第一nf的描述。图3b中对第二amf的其它未描述的操作可以参照图3a中对第二nf的描述。消息和信令中携带的参数或信息也可以对应图3a中的相关描述,不再赘述。第一amf与第二amf也可以为同一个amf。

    第一终端的标识为ueid这种情况下,第一终端需要注册该用于协商密钥的标识。如图4所示,以下给出一种可能的注册流程。图4所述的实施例中的任意多个连续或不连续的步骤均可形成一种方案,属于本申请实施例保护的范围。在下述描述中,第一终端的标识可以是用于协商密钥的标识,或者也可以理解为用于确定终端与终端之间通信保护的密钥推演的标识,或者作其它理解。

    s401、第一终端发送注册请求至amf,amf从第一终端接收该注册请求。

    其中该注册请求携带该第一终端的身份标识。例如该身份标识为订阅封装标识(subscriptionconcealedidentifier,suci)。第一终端的真实身份称为订阅永久标识(subscriptionpermanentidentifier,supi),supi通过密钥加密后的密文为suci。又或者,该身份标识为5g-guti。

    可选的,该注册请求还携带指示(例如记为indicator1),用于指示该第一终端需要使用终端与终端之间通信的业务,例如车联网业务;或者,用于指示该注册请求用于请求注册与车辆网相关的标识。

    可选的,该注册请求还携带应用标识(id),用于指示该第一终端会使用的终端与终端之间通信的业务标识,例如v2x应用id。

    可选的,该注册请求还携带业务的类型,用于指示该第一终端会使用的终端与终端之间通信的业务的类型。

    s402、amf向ausf发送该第一终端的身份标识和服务网络标识,ausf从amf接收该第一终端的身份标识和服务网络标识。

    amf向ausf发送的第一终端的身份标识来自于注册请求中携带的身份标识,例如,该身份标识为suci。

    可选的,amf还可以向ausf发送指示(例如为indicator1)。

    可选的,amf还可以向ausf发送应用id。

    可选的,amf还可以向ausf发送业务的类型。

    amf根据注册请求,向ausf发送指示和应用id,例如从注册请求中获取该指示和该应用id。

    s403、ausf向udm发送第一终端的身份标识和服务网络标识,udm从ausf接收该第一终端的身份标识和服务网络标识。

    ausf将从amf接收到的第一终端的身份标识和服务网络标识发送给udm。

    可选的,ausf还向udm发送该indicator1;

    可选的,ausf还向udm发送该应用id。

    可选的,ausf还可以向udm发送业务的类型。

    可选的,udm根据该第一终端的签约数据和indicator1,判断是否允许该第一终端使用该终端与终端之间通信的业务,例如车联网业务;

    可选的,udm根据该第一终端的签约数据,以及应用id和/或业务的类型,判断是否允许该第一终端使用终端与终端之间通信的业务,例如v2x应用id指示的业务。

    s404、udm向ausf发送认证向量,ausf从udm接收该认证向量supi。

    可选的,udm还向ausf发送supi,ausf还从udm接收supi。

    可选的,如果udm判定允许该第一终端使用该终端与终端之间通信的业务,则向ausf发送指示(记为indicator2)。ausf从udm接收该指示。

    s405、ausf向amf发送认证向量,amf从ausf接收该认证向量。

    可选的,ausf还向amf发送supi,amf还从ausf接收supi。

    s406、第一终端、amf与ausf之间执行双向认证。

    认证例如包括5gaka,eapaka’。认证成功后,执行s407。

    s407、ausf向amf发送kseaf和supi,amf从ausf接收kseaf和supi。

    可选的,ausf还向amf发送indicator2,amf从ausf接收该indicator2。

    s408、amf向udm发送请求消息(request),请求获得ue的签约信息。

    s409、udm向amf发送响应(response),amf从udm接收该响应。

    该响应中携带该第一终端的签约数据。

    可选的,amf判断是否允许该第一终端使用该终端与终端之间通信的业务。例如,amf可以根据该第一终端的签约数据和indicator1,判断是否允许该第一终端使用该终端与终端之间通信的业务。可选的,amf根据该第一终端的签约数据,以及应用id和/或业务的类型判断是否允许该第一终端使用终端与终端之间通信的业务。

    如上所述,判断是否允许该第一终端使用该终端与终端之间通信的业务,该操作可能由udm执行,也可能由amf来执行。

    不管是amf执行该判断还是udm执行该判断,如果确定该第一终端被允许使用该终端与终端之间通信的业务,则后续步骤可能分为以下几种可能性。

    其他可能性,上述认证流程为可选的。也可以为ue已认证并注册到5g网络。此时ue仅发起注册流程,或者其他nas请求;请求从网络获得第一终端的标识,用于端到端之间通信。amf接收到ue的请求之后,则执行以下可能性。可选的,amf根据签约信息确定ue允许使用终端与终端之间通信的业务。

    第一种可能性:

    s410a、amf生成第一终端的标识(ueid)和/或密钥指示。

    这里ueid为第一终端的临时标识,可以包括amf的位置或名称信息。例如第一终端的临时标识可以包括以下至少一项:amf所在的网络标识、amf所在的mnc、amf所在的mcc、amf所在的区域地址、amf所在的群组id、amf所在的集合地址、amf的指针、amf的ip地址、完整的域名(fullyqualifieddomainname,fqdn)、实例(instance)id、nai地址。以使第一终端可以通过该第一终端的临时标识找到为该第一终端服务的amf。密钥指示可以用来表示当前第一终端认证中的amfkey(kamf)。例如上文所述的实施例中的amfkey(kamf)。

    s411a、amf向第一终端发送生成的第一终端的标识,第一终端从amf接收该第一终端的标识。

    amf还可以向第一终端发送该密钥指示。第一终端从amf接收该密钥指示。

    上述流程还可能,amf和ue根据amfkey推衍得到基础密钥。这里密钥指示用来指示此基础密钥。基础密钥的推衍不做限制。例如,推衍参数可以包括,以下至少一项,端到端通信标识,ue发送的业务类型,应用标识等。

    第二种可能性:

    s410b、amf向基站发送指示(记为indicator3),基站从amf接收该指示。

    该indicator3用于指示基站为该第一终端分配第一终端的临时标识和/或密钥指示。

    amf也会生成基站密钥,并向基站发送该基站密钥。

    s411b、基站生成第一终端的标识(ueid)和/或密钥指示。

    这里第一终端的标识为第一终端的临时标识,可以包括基站的位置或名称信息。例如第一终端的标识包括以下的至少一项:基站所在的网络标识,基站所在的mnc,基站所在的mcc;基站所在的区域地址;基站所在的群组id;基站所在的集合地址;基站的指针;基站的ip地址,fqdn,instanceid,nai地址等。第一终端可以通过第一终端的标识找到为第一终端服务的基站。密钥指示可以用来表示当前第一终端认证中的基站key,例如上文所述的实施例中描述的gnbkey(k_gnb)。

    s412b、基站向第一终端发送生成的第一终端的标识和/或密钥指示,第一终端从基站接收第一终端的标识和/或密钥指示。

    上述流程还可能,基站和ue根据gnbkey推衍得到基础密钥。这里密钥指示用来指示此基础密钥。基础密钥的推衍不做限制。例如,推衍参数可以包括,以下至少一项,端到端通信标识,ue发送的业务类型,应用标识等。

    上述第一种可能性和第二种可能性,分别介绍了由amf和基站生成第一终端的标识和/或密钥指示的情况,下面给出第三种可能性。在第三种可能性中由ausf生成第一终端的标识和/或密钥指示。第三种可能性可以是在udm确定该第一终端被允许使用该终端与终端之间通信的业务之后执行的。

    第三种可能性:

    在s406amf与ausf之间执行双向认证之后,ausf生成第一终端的标识和/或密钥指示。在s407发送给amf。在第一终端与amf之间建立安全连接过程中或者建立安全连接之后,amf将从ausf接收到的第一终端的标识和/或密钥指示发送给第一终端。这里第一终端的标识包括ausf的位置或名称信息,例如第一终端的标识包括以下至少一项:ausf所在的网络标识;路由指示;ausf所在的mnc,ausf所在的mcc;ausf所在的区域地址;ausf所在的群组id;ausf所在的集合地址;ausf的指针;ausf的ip地址,fqdn,instanceid,nai地址等等。第一终端可以通过该第一终端的标识找到为第一终端服务的ausf。密钥指示可以用来表示当前第一终端认证中的ausfkey。例如上文所述的实施例中描述的ausfkey(k_ausf)。

    上述流程还可能,ausf和ue根据ausfkey推衍得到基础密钥。这里密钥指示用来指示此基础密钥。基础密钥的推衍不做限制。例如,推衍参数可以包括,以下至少一项,端到端通信标识,ue发送的业务类型,应用标识等。

    在一种可能的实施方式中,若5g-guti更新,上述第一终端的标识也需要更新,那么可以按照上述方法执行更新的过程。

    需要说明的是,本申请实施例中所涉及的一些消息或信令的名称只是示例性的称呼,还可以称作其它名称,本申请不作限定。例如请求消息1、请求消息2、密钥请求、响应消息1、响应消息2或密钥响应等均可以称为其它名称。另外,上述是围绕车联网场景密钥协商做的描述,也可以为具体密钥协商的场景,不做限制。

    上述本申请提供的实施例中,分别从第一终端、第二终端、第一nf以及第二nf之间交互的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,终端和nf可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。

    如图5所示,基于同一技术构思,本申请实施例还提供了一种装置500,该装置500可以是第一终端、第二终端或第一nf,也可以是第一终端、第二终端或第一nf中的装置,或者是能够和第一终端、第二终端或第一nf匹配使用的装置。一种设计中,该装置500可以包括执行上述方法实施例中第一终端、第二终端或第一nf执行的方法/操作/步骤/动作所一一对应的模块,该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种设计中,该装置可以包括处理模块501和通信模块502。

    当用于执行第一终端执行的方法时:

    通信模块502,用于向第二终端发送通信请求,通信请求用于请求与第二终端建立通信,通信请求包括第一终端的标识和业务的标识。

    该通信模块502,还用于从第二终端接收通信响应;通信响应用于响应通信请求;

    处理模块501,用于根据共享密钥和业务的标识,确定第一安全密钥;其中,第一安全密钥为第一终端与第二终端之间通信保护的安全密钥。

    当用于执行第二终端执行的方法时:

    通信模块502,用于从第一终端接收通信请求,通信请求包括第一终端的标识id和业务的标识;

    处理模块501,用于根据共享密钥和业务的标识,确定第一安全密钥;其中,第一安全密钥为第一终端与第二终端之间通信保护的安全密钥;

    通信模块502,还用于根据通信请求,向第一终端返回通信响应。

    当用于执行第一nf执行的方法时:

    通信模块502,用于接收密钥请求,密钥请求是第二终端发送的,或者,密钥请求是第二终端通过第二nf发送的,密钥请求包括第一终端的标识;

    处理模块501,用于根据第一终端的标识,确定共享密钥;

    通信模块502还用于向第二终端发送共享密钥,或者,还用于通过第二nf向第二终端发送共享密钥。

    处理模块501和通信模块502还可以用于执行上述方法实施例第一终端、第二终端或第一nf执行的其它对应的步骤或操作,在此不再一一赘述。

    本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

    如图6所示为本申请实施例提供的装置600,用于实现上述方法中第一终端、第二终端或第一nf的功能。该装置600可以是第一终端、第二终端或第一nf,也可以是第一终端、第二终端或第一nf中的装置,或者是能够和第一终端、第二终端或第一nf匹配使用的装置。

    其中,该装置可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。装置600包括至少一个处理器620,用于实现本申请实施例提供的方法中第一终端、第二终端或第一nf的功能。装置600还可以包括通信接口610。

    在本申请实施例中,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口,用于通过传输介质和其它设备进行通信。例如,通信接口610用于装置600中的装置可以和其它设备进行通信。

    示例性地,装置600是第一终端时,该其它设备可以是第二终端。装置600是第二终端时,该其它装置可以是第一终端或第一nf。装置600是第一nf时,该其它设备可以是第二终端或第二nf。处理器620利用通信接口610收发数据,并用于实现上述方法实施例所述的方法。

    示例性地,当实现第一终端的功能时,通信接口610用于向第二终端发送通信请求,通信请求用于请求与第二终端建立通信,通信请求包括第一终端的标识和业务的标识。通信接口610还用于从第二终端接收通信响应;通信响应用于响应通信请求。处理器620用于根据共享密钥和业务的标识,确定第一安全密钥;其中,第一安全密钥为第一终端与第二终端之间通信保护的安全密钥。

    当实现第二终端的功能时,通信接口610用于从第一终端接收通信请求,通信请求包括第一终端的标识id和业务的标识;处理器620用于根据共享密钥和业务的标识,确定第一安全密钥;其中,第一安全密钥为第一终端与第二终端之间通信保护的安全密钥;通信接口610还用于根据通信请求,向第一终端返回通信响应。

    当实现第一nf的功能时,通信接口610用于接收密钥请求,密钥请求是第二终端发送的,或者,密钥请求是第二终端通过第二nf发送的,密钥请求包括第一终端的标识;处理器620,用于根据第一终端的标识,确定共享密钥;通信接口610还用于向第二终端发送共享密钥,或者,还用于通过第二nf向第二终端发送共享密钥。

    处理器620和通信接口610还可以用于执行上述方法实施例第一终端、第二终端或第一nf执行的其它对应的步骤或操作,在此不再一一赘述。

    装置600还可以包括至少一个存储器630,用于存储程序指令和/或数据。存储器630和处理器620耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器620可能和存储器630协同操作。处理器620可能执行存储器630中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。

    本申请实施例中不限定上述通信接口610、处理器620以及存储器630之间的具体连接介质。本申请实施例在图6中以存储器630、通信接口620以及收发器610之间通过总线640连接,总线在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

    在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

    在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

    在本申请上述实施例提供的方法中,所描述的第一终端、第二终端、第一nf或第二nf所执行的操作和功能中的部分或全部,可以用芯片或集成电路来完成。

    为了实现上述图5或图6所述的装置的功能,本申请实施例还提供一种芯片,该芯片包括处理器,用于支持该装置实现上述方法实施例中第一终端、第二终端、第一nf或第二nf所涉及的功能。在一种可能的设计中,该芯片与存储器连接或者该芯片包括存储器,该存储器用于保存该装置必要的程序指令和数据。

    本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述实施例提供的方法实施例的指令。

    本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的方法实施例。

    基于同一技术构思,本申请实施例还提供一种通信系统。如图7所示,通信系统包括第一终端701、第二终端702和第一nf703中的至少一个。第一nf可能是接入网设备,例如基站,也可能是核心网设备,例如amf。其中:

    第一终端701向第二终端702发送通信请求,第二终端702从第一终端701接收通信请求。该通信请求用于第一终端701请求与第二终端702建立通信,该通信请求包括第一终端701的标识和业务的标识;

    第二终端702根据共享密钥和该业务的标识,确定第一安全密钥;其中,第一安全密钥为第一终端与所述第二终端之间通信保护的安全密钥。

    第二终端702根据通信请求,向第一终端701返回通信响应。第一终端701从第二终端702接收通信响应。该通信响应用于响应该通信请求。

    第一终端701根据共享密钥和该业务的标识,确定安全密钥,这里第一终端701所确定的安全密钥也是第一终端701与第二终端702之间通信保护的安全密钥,且与上述第一安全密钥相同,也可以记为第一安全密钥。

    可选的,第二终端702根据第一终端701的标识,判断第一终端701和第二终端702是否属于同一网络。

    若第二终端702确定第一终端701和第二终端702属于同一网络,则第二终端702向第一网络功能nf703发送请求消息,所述请求消息用于请求共享密钥。

    第一网络功能nf703接收请求消息,该请求消息可以称为密钥请求,密钥请求是第二终端发送的,或者,该通信系统还包括第二nf,该密钥请求是第二终端通过第二nf发送的,密钥请求包括第一终端的标识;

    第一nf703根据第一终端的标识,确定共享密钥;

    第一nf703向第二终端发送共享密钥,或者,第一nf703通过第二nf向第二终端发送共享密钥。

    可选的,第一终端701还可以执行上述方法实施例中第一终端所执行的其它操作。第二终端702还可以执行上述方法实施例中第二终端所执行的其它操作。第一nf703可以执行上述方法实施例中第一nf703所执行的其它操作。第二nf可以执行上述方法实施例中第二nf所执行的其它操作。

    该通信系统包括的第一终端701、第二终端702或第一nf703均可以是上述图5所示的装置,当然,该通信系统包括的第一终端701、第二终端702或第一nf703均可以是上述图6所示的装置。

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

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

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

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

    尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

    显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。


    技术特征:

    1.一种密钥生成方法,其特征在于,包括:

    第一终端向第二终端发送通信请求,所述通信请求用于请求与所述第二终端建立通信,所述通信请求包括所述第一终端的标识和业务的标识;

    所述第一终端从所述第二终端接收通信响应;所述通信响应用于响应所述通信请求;

    所述第一终端根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥。

    2.如权利要求1所述的方法,其特征在于,所述通信请求还包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    3.如权利要求2所述的方法,其特征在于,所述第一终端根据共享密钥和所述业务的标识,确定第一安全密钥,包括:

    所述第一终端根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    4.如权利要求1~3任一项所述的方法,其特征在于,所述通信请求中还包括第一消息验证码mac和/或第一指示,所述第一mac用于校验所述通信请求是否为合法请求,所述第一指示用于指示所述第二终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    5.如权利要求1~4任一项所述的方法,其特征在于,所述通信响应中携带第二指示,所述第二指示用于指示所述第一终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    6.如权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:

    所述第一终端向网络设备发送注册请求,所述注册请求用于请求注册所述第一终端的标识,所述注册请求中包括第三指示,所述第三指示用于指示所述第一终端请求使用终端与终端之间通信的业务;

    所述第一终端从所述网络设备接收所述第一终端的标识。

    7.一种密钥生成方法,其特征在于,包括:

    第二终端从第一终端接收通信请求,所述通信请求包括所述第一终端的标识id和业务的标识;

    所述第二终端根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥;

    所述第二终端根据所述通信请求,向所述第一终端返回通信响应。

    8.如权利要求7所述的方法,其特征在于,所述通信请求还包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    9.如权利要求8所述的方法,其特征在于,所述第二终端根据共享密钥和所述业务的标识,确定第一安全密钥,包括:

    所述第二终端根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    10.如权利要求7~9任一项所述的方法,其特征在于,所述方法还包括:

    所述第二终端根据所述第一终端的标识,判断所述第一终端和所述第二终端是否属于同一网络;所述第二终端确定所述第一终端和所述第二终端属于同一网络,向第一网络功能nf发送请求消息,所述请求消息用于请求所述共享密钥。

    11.如权利要求10所述的方法,其特征在于,所述请求消息中包括以下至少一种信息:所述第一终端的标识、消息验证码mac或第一指示;所述第一指示用于指示所述请求消息用于车联网通信;

    所述第二终端从所述第一nf接收所述请求消息的响应消息,所述响应消息中包括所述共享密钥。

    12.一种密钥生成方法,其特征在于,包括:

    第一网络功能nf接收密钥请求,所述密钥请求是第二终端发送的,或者,所述密钥请求是所述第二终端通过第二nf发送的,所述密钥请求包括所述第一终端的标识;

    所述第一nf根据所述第一终端的标识,确定共享密钥;

    所述第一nf向所述第二终端发送所述共享密钥,或者,所述第一nf通过所述第二nf向所述第二终端发送所述共享密钥。

    13.如权利要求12所述的方法,其特征在于,所述密钥请求还包括消息验证码mac;

    所述方法还包括:所述第一nf校验所述mac,确定所述mac校验通过。

    14.如权利要求12或13所述的方法,其特征在于,所述密钥请求还包括以下一种或多种信息:所述共享密钥的标识、业务的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    15.如权利要求14所述的方法,其特征在于,所述第一nf根据所述第一终端的标识,确定共享密钥,包括:

    所述第一nf根据所述第一终端的标识以及所述密钥请求中的所述一种或多种信息,确定所述共享密钥。

    16.一种密钥生成装置,应用于第一终端,其特征在于,包括:

    通信模块,用于向第二终端发送通信请求,所述通信请求用于请求与所述第二终端建立通信,所述通信请求包括所述第一终端的标识和业务的标识;

    所述通信模块,还用于从所述第二终端接收通信响应;所述通信响应用于响应所述通信请求;

    处理模块,用于根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥。

    17.如权利要求16所述的装置,其特征在于,所述通信请求还包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    18.如权利要求17所述的装置,其特征在于,所述处理单元用于:

    根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    19.如权利要求16~18任一项所述的装置,其特征在于,所述通信请求中还包括第一消息验证码mac和/或第一指示,所述第一mac用于校验所述通信请求是否为合法请求,所述第一指示用于指示所述第二终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    20.如权利要求16~19任一项所述的装置,其特征在于,所述通信响应中携带第二指示,所述第二指示用于指示所述第一终端通过应用层获取所述共享密钥或者通过运营商网络获取所述共享密钥。

    21.如权利要求16~20任一项所述的装置,其特征在于,所述通信模块还用于:

    向网络设备发送注册请求,所述注册请求用于请求注册所述第一终端的标识,所述注册请求中包括第三指示,所述第三指示用于指示所述第一终端请求使用终端与终端之间通信的业务;以及用于从所述网络设备接收所述第一终端的标识。

    22.一种密钥生成装置,应用于第二终端,其特征在于,包括:

    通信模块,用于从第一终端接收通信请求,所述通信请求包括所述第一终端的标识id和业务的标识;

    处理模块,用于根据共享密钥和所述业务的标识,确定第一安全密钥;其中,所述第一安全密钥为所述第一终端与所述第二终端之间通信保护的安全密钥;

    所述通信模块,还用于根据所述通信请求,向所述第一终端返回通信响应。

    23.如权利要求22所述的装置,其特征在于,所述通信请求还包括以下一种或多种信息:所述共享密钥的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    24.如权利要求23所述的装置,其特征在于,所述处理模块用于:

    根据共享密钥、所述业务的标识和所述通信请求中包括的所述一种或多种信息,确定第一安全密钥。

    25.如权利要求22~24任一项所述的装置,其特征在于,所述处理模块还用于:

    根据所述第一终端的标识,判断所述第一终端和所述第二终端是否属于同一网络;确定所述第一终端和所述第二终端属于同一网络;所述通信模块还用于向第一网络功能nf发送非接入层nas请求,所述nas请求用于请求所述共享密钥。

    26.如权利要求25所述的装置,其特征在于,所述nas请求中包括以下至少一种信息:所述第一终端的标识、消息验证码mac或第一指示;所述第一指示用于指示所述nas请求用于车联网通信;

    所述通信模块还用于,从所述第一nf接收nas响应,所述nas响应中包括所述共享密钥。

    27.一种密钥生成装置,应用于第一网络功能nf,其特征在于,包括:

    通信模块,用于接收密钥请求,所述密钥请求是第二终端发送的,或者,所述密钥请求是所述第二终端通过第二nf发送的,所述密钥请求包括所述第一终端的标识;

    处理模块,用于根据所述第一终端的标识,确定共享密钥;

    所述通信模块还用于向所述第二终端发送所述共享密钥,或者,还用于通过所述第二nf向所述第二终端发送所述共享密钥。

    28.如权利要求27所述的装置,其特征在于,所述密钥请求还包括消息验证码mac;

    所述处理模块还用于:校验所述mac,确定所述mac校验通过。

    29.如权利要求27或28所述的装置,其特征在于,所述密钥请求还包括以下一种或多种信息:所述共享密钥的标识、业务的标识、业务的类型、所述第一终端的层2标识、所述第二终端的层2标识、数据无线承载drb的标识、数据流flow的标识、所述第一终端的pc5单播链接的标识或终端到终端通信群组的标识。

    30.如权利要求29所述的装置,其特征在于,所述处理模块用于:

    根据所述第一终端的标识以及所述密钥请求中的所述一种或多种信息,确定所述共享密钥。

    31.一种通信系统,其特征在于,包括第一终端、第二终端和第一网络功能nf中的至少一项;

    其中,所述第一终端用于执行如权利要求1~6任一项所述的方法;或者,

    所述第二终端用于执行如权利要求7~11任一项所述的方法;或者,

    所述第一nf用于执行如权利要求12~15任一项所述的方法。

    32.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有计算机可读指令,当所述计算机可读指令在计算机上运行时,使得计算机执行权利要求1至15任一项所述的方法。

    技术总结
    本申请实施例公开了一种密钥生成方法及装置,用以在终端与终端之间通过PC5接口直接通信时完成密钥协商,以第一终端和第二终端之间的密钥协商为例,该方法包括:第一终端向第二终端发送通信请求,该通信请求用于请求与第二终端建立通信,该通信请求包括该第一终端的标识和业务的标识;第一终端从第二终端接收该通信请求的通信响应;第一终端获取共享密钥,根据共享密钥和业务的标识,确定安全密钥;该安全密钥为第一终端与第二终端之间通信保护的安全密钥,通过该协商过程,能够完成第一终端与第二终端之间的密钥协商。

    技术研发人员:张博
    受保护的技术使用者:华为技术有限公司
    技术研发日:2019.09.12
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8898.html

    最新回复(0)