一种基于DH棘轮算法的5G网络认证方法及系统转让专利

申请号 : CN202110072503.X

文献号 : CN112399407B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 焦显伟朱敏

申请人 : 北京电信易通信息技术股份有限公司

摘要 :

本发明涉及一种基于DH棘轮算法的5G网络认证方法及系统。该方法包括:首先用户设备通过棘轮密钥加密身份信息发送给服务器进行验证,保证了身份信息的机密性;对于5G网络中的每个实体都产生棘轮密钥对,保证了每个实体在传输信息时通过自身的棘轮密钥加密传输信息,保证了信息的安全性,每个实体通过产生各自的身份令牌,保证了各个实体之间的相互验证,避免了假冒攻击;通过棘轮步进使得每个实体在会话过程中产生不同的棘轮密钥,使得每次会话使用不同的棘轮密钥进行加密,使得消息传输过程中更加安全;5G中的会话密钥通过棘轮密钥产生,不再通过共享密钥K来产生,避免了因为共享密钥K的泄露造成的安全问题。

权利要求 :

1.一种基于DH棘轮算法的5G网络认证方法,其特征在于,包括:在初始化阶段,用户设备UE和认证凭据存储和处理功能ARPF通过秘钥交换算法DH分别生成当前的棘轮密钥对;并由所述认证凭据存储和处理功能ARPF向所述用户设备UE发送棘UE UE ARPF ARPF

轮公钥;所述棘轮密钥对包括私钥SK0 和公钥PK0 ,以及私钥SK0 和公钥PK0 ;

ARPF UE

当所述用户设备UE接收所述公钥PK0 时,所述用户设备UE计算得到新的根密钥RK0UE UE

和发送消息密钥CK0 ;所述用户设备UE选择一个随机数RUE,并使用所述发送消息密钥CK0UE

对用户永久标识符SUPI以及随机数RUE进行加密得到用户隐藏标识符SUCI=CK0 (SUPI,RUE);生成认证消息MACUE=  (SUCI,RUE),并将所述用户隐藏标识符SUCI、随机数RUE、所UE

述公钥PK0 和所述认证消息MACUE作为认证数据发送给安全锚功能SEAF; 为第一次生UE

成的发送消息密钥CK0 的单向密钥加密函数;

所述安全锚功能SEAF接收所述用户设备UE发送的认证数据,计算得到棘轮密钥SEAF UE

=DH(SK0 ,PK0 ),保存棘轮密钥 ,将接收的所述认证数据和服务标识SNname携带在身份验证数据请求消息中发送给认证服务器功能AUSF进行进一步验证;其中,棘轮密钥 中0表示用户设备UE,1表示安全锚功能SEAF, 表示安全锚功能SEAF使用安全锚功能SEAF的私钥和用户设备UE的公钥通过DH算法生成的密钥;

SEAF

SK0 为安全锚功能SEAF的私钥;

接收身份验证数据请求消息后,所述认证服务器功能AUSF将接收的服务标识SNname与期望的网络名称进行比较以进行验证,通过DH生成当前的棘轮密钥对,并运算得到认证服务AUSF AUSF

器功能AUSF内的棘轮密钥,其中,所述棘轮密钥对包括私钥SK0 以及公钥PK0 ;所述认AUSF UE

证服务器功能AUSF内的棘轮密钥包括第一棘轮密钥 =DH(SK0 ,PK0 )以及第二AUSF SEAF

棘轮密钥 =DH(SK0 ,PK0 );保存认证服务器功能AUSF内的棘轮密钥AUSF

,将所述公钥PK0 和接收的所述认证数据和服务标识SNname发送AUSF SEAF

给所述认证凭据存储和处理功能ARPF;其中,SK0 为认证服务器功能AUSF的私钥;PK0为安全锚功能SEAF的公钥;第一棘轮密钥 和第二棘轮密钥 中0表示用户设备UE,2表示认证服务器功能AUSF;

当所述认证凭据存储和处理功能ARPF接收身份验证请求消息后,计算得到新的根密钥ARPF ARPF

RK0 和接收消息密钥CK0 ,解密所述用户隐藏标识符SUCI得到所述用户永久标识符SUPI;所述认证凭据存储和处理功能ARPF通过计算验证所述认证消息MACUE;通过DH生成新ARPF ARPF ARPF

的棘轮密钥对,计算得到新的根密钥RK1 和发送消息密钥CK1 ,通过根密钥RK1 代替ARPF

长期密钥K派生KAUSF,产生随机数RARPF;所述新的棘轮密钥对包括私钥SK1 以及公钥ARPF

PK1 ;计算消息认证码MACARPF= (RARPF,RUE,SNname),身份验证令牌AUTN=(RARPF,ARPF AUSF

MACARPF);同时作DH运算得到密钥 =DH(SK1 ,PK0 ),计算 =(RARPF);所述 为通过认证凭据存储和处理功能ARPF和认证服务器功能AUSF生成的棘轮密钥 进行加密得到的值;并使用棘轮密钥 对所述用户永久标识符SUPI以及所述KAUSF加密得到加密后的用户永久标识符SUPI*以及加密后的 ;发送所述随机数RARPF、所述随机数RUE、所述身份验证令牌AUTN、所述加密后的用户永久标识符ARPF

SUPI*、所述加密后的 、所述 以及所述新的棘轮密钥对中包括的公钥PK1 到所述认证服务器功能AUSF;其中,棘轮密钥 中的2表示认证服务器功能AUSF,3表ARPF

示认证凭据存储和处理功能ARPF; 为第一次生成的发送消息密钥CK1 的单向密钥加密函数;

接收所述认证凭据存储和处理功能ARPF的消息后,所述认证服务器功能AUSF作DH运算AUSF ARPF

得到密钥 =DH(SK0 , PK1 ),计算 = (RARPF);所述 为通过认证凭据存储和处理功能ARPF和认证服务器功能AUSF生成的密钥 进行加密得到的值;判断 与 比较是否相等,若 与 相等,确定所述认证凭据存储和处理功能ARPF认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后的 得到所述用户永久标识符SUPI以及所述KAUSF,产生随机数RAUSF,计算= (RAUSF)、消息认证码MACAUSF= (RAUSF,RUE,RARPF,SNname);所述为通过认证服务器功能AUSF和安全锚功能SEAF生成的密钥 进行加密得到的值;通过所述KAUSF派生锚密钥KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname),使用所述加密所述用户永久标识符SUPI以及所述锚密钥KSEAF生成所述加密后的用户永久标识符SUPI*以及加密后的锚密钥 ,生成认证令牌AUTNAUSF=(RAUSF, MACAUSF),并将所述随机数RARPF、所述随机数RAUSF、所述随机数RUE、所述认证令牌AUTNAUSF、所述身份验证令牌AUTN、所述 、所述加密后的用户永久标识符SUPI*、所述加密后的锚密钥 、所ARPF

述公钥PK1 一起发送到安全锚功能SEAF;其中,KDF为密钥推导函数; 为第一次生成的第一棘轮密钥 的单向密钥加密函数;

接收所述认证服务器功能AUSF的消息后,所述安全锚功能SEAF运算得到棘轮密钥SEAF AUSF

=DH(SK0 , PK0 ),计算 = (RAUSF);判断 与 比较是否相等,若所述 与所述 相等,确定所述认证服务器功能AUSF认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后的锚密钥 得到所述用户永久标识符SUPI以及所述锚密钥KSEAF,产生随机数RSEAF,计算 = (RSEAF)、消息认证码MACSEAF= (RSEAF,RAUSF,RUE,RARPF,SNname),生成认证令牌AUTNSEAF=(RSEAF,MACSEAF),并将所述随机数RARPF、所述随机数RAUSF、所述随机数RSEAF、所述认证令牌AUTNSEAF、所ARPF

述认证令牌AUTNAUSF、所述身份验证令牌AUTN、所述 以及所述公钥PK1 一起发送给所述用户设备UE;所述 为通过安全锚功能SEAF和用户设备UE生成的密钥进行加密得到的值;

UE

所述用户设备UE接收信息后,所述用户设备UE计算得到新的根密钥RK2 和接收消息密UE

钥CK2 ,检查所述身份验证令牌AUTN,计算得到消息认证码MAC’ARPF;判断所述消息认证码MAC’ARPF与所述消息认证码MACARPF是否相等,若所述消息认证码MAC’ARPF与所述消息认证码MACARPF相等,确定所述用户设备UE成功认证所述认证凭据存储和处理功能ARPF;所述用户设备UE通过运算得到密钥 以及密钥 ,检查所述认证令牌AUTNSEAF以及所述UE

认证令牌AUTNAUSF;所述用户设备UE通过第二次生成的根密钥RK2 代替所述长期密钥K派生KAUSF,并得到KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname);所述用户设备UE生成新的棘轮密钥对, 执行一次DH棘轮步进生成密钥 以及密钥 ,计算哈希值SRES=(RSEAF,RUE,SNname)、哈希值ARES= (RAUSF,RUE,SNname),并由所述用户设备UE发送用户UE

设备第二次生成的私钥SK1 、所述哈希值SRES以及所述哈希值ARES给所述安全锚功能SEAF;所述 为通过UE的公钥和安全锚功能SEAF的私钥生成的密钥;所述 为通过UE的公钥和AUSF的私钥生成的密钥; 为第二次生成的密钥 的单向密钥加密函数; 为第二次生成的密钥 的单向密钥加密函数;

接收所述用户设备UE发送的消息后,所述安全锚功能SEAF计算生成棘轮密钥,计算加密后的哈希值SRES*,并判断加密后的哈希值SRES*与所述哈希值SRES是否相等,若所述加密后的哈希值SRES*与所述哈希值SRES相等,确定所述安全锚功能SEAFUE

认证成功,并将所述第二次生成的私钥SK1 以及所述哈希值ARES发送给所述认证服务器功能AUSF;

UE

所述认证服务器功能AUSF接收所述第二次生成的私钥SK1 以及所述哈希值ARES后,所述认证服务器功能AUSF生成 ,计算加密后的哈希值ARES*,并判断加密后的哈希值ARES*与所述哈希值ARES是否相等,若所述加密后的哈希值ARES*与所述哈希值ARES相等,向所述安全锚功能SEAF发送一个身份验证成功消息。

2.根据权利要求1所述的基于DH棘轮算法的5G网络认证方法,其特征在于,所述用户设备UE和所述安全锚功能SEAF共享一个密钥作为一个锚密钥KSEAF。

3.根据权利要求1所述的基于DH棘轮算法的5G网络认证方法,其特征在于,所述用户设备UE、所述安全锚功能SEAF、所述认证服务器功能AUSF以及所述认证凭据存储和处理功能ARPF这四个实体产生了各自的棘轮密钥,上述实体对要发送的信息进行加密后发送。

4.根据权利要求3所述的基于DH棘轮算法的5G网络认证方法,其特征在于,参与认证的每个实体相互认证。

5.根据权利要求1所述的基于DH棘轮算法的5G网络认证方法,其特征在于,每次认证过程中产生不同的棘轮密钥;基于不同的棘轮密钥,使得每次认证过程均不相同。

6.一种基于DH棘轮算法的5G网络认证系统,其特征在于,包括:用户设备UE、安全锚功能SEAF、认证服务器功能AUSF以及认证凭据存储和处理功能ARPF;

在初始化阶段,用户设备UE和认证凭据存储和处理功能ARPF通过秘钥交换算法DH分别生成当前的棘轮密钥对;并由所述认证凭据存储和处理功能ARPF向所述用户设备UE发送棘UE UE ARPF ARPF

轮公钥;所述棘轮密钥对包括私钥SK0 和公钥PK0 ,以及私钥SK0 和公钥PK0 ;

ARPF UE

当所述用户设备UE接收所述公钥PK0 时,所述用户设备UE计算得到新的根密钥RK0UE UE

和发送消息密钥CK0 ;所述用户设备UE选择一个随机数RUE,并使用所述发送消息密钥CK0UE

对用户永久标识符SUPI以及随机数RUE进行加密得到用户隐藏标识符SUCI=CK0 (SUPI,RUE);生成认证消息MACUE= (SUCI,RUE),并将所述用户隐藏标识符SUCI、随机数RUE、所UE

述公钥PK0 和所述认证消息MACUE作为认证数据发送给安全锚功能SEAF; 为第一次生UE

成的发送消息密钥CK0 的单向密钥加密函数;

所述安全锚功能SEAF接收所述用户设备UE发送的认证数据,计算得到棘轮密钥SEAF UE

=DH(SK0 ,PK0 ),保存棘轮密钥 ,将接收的所述认证数据和服务标识SNname携带在身份验证数据请求消息中发送给认证服务器功能AUSF进行进一步验证;其中,棘轮密钥 中0表示用户设备UE,1表示安全锚功能SEAF, 表示安全锚功能SEAF使用安全锚功能SEAF的私钥和用户设备UE的公钥通过DH算法生成的密钥;

SEAF

SK0 为安全锚功能SEAF的私钥;

接收身份验证数据请求消息后,所述认证服务器功能AUSF将接收的服务标识SNname与期望的网络名称进行比较以进行验证,通过DH生成当前的棘轮密钥对,并运算得到认证服务AUSF AUSF

器功能AUSF内的棘轮密钥,其中,所述棘轮密钥对包括私钥SK0 以及公钥PK0 ;所述认AUSF UE

证服务器功能AUSF内的棘轮密钥包括第一棘轮密钥 =DH(SK0 ,PK0 )以及第二AUSF SEAF

棘轮密钥 =DH(SK0 ,PK0 );保存认证服务器功能AUSF内的棘轮密钥AUSF

,将所述公钥PK0 和接收的所述认证数据和服务标识SNname发送AUSF SEAF

给所述认证凭据存储和处理功能ARPF;其中,SK0 为认证服务器功能AUSF的私钥;PK0为安全锚功能SEAF的公钥;第一棘轮密钥 和第二棘轮密钥 中0表示用户设备UE,2表示认证服务器功能AUSF;

当所述认证凭据存储和处理功能ARPF接收身份验证请求消息后,计算得到新的根密钥ARPF ARPF

RK0 和接收消息密钥CK0 ,解密所述用户隐藏标识符SUCI得到所述用户永久标识符SUPI;所述认证凭据存储和处理功能ARPF通过计算验证所述认证消息MACUE;通过DH生成新ARPF ARPF ARPF

的棘轮密钥对,计算得到新的根密钥RK1 和发送消息密钥CK1 ,通过根密钥RK1 代替ARPF

长期密钥K派生KAUSF,产生随机数RARPF;所述新的棘轮密钥对包括私钥SK1 以及公钥ARPF

PK1 ;计算哈希值MACARPF= (RARPF,RUE,SNname),身份验证令牌AUTN=(RARPF,MACARPF);

ARPF AUSF

同时作DH运算得到密钥 =DH(SK1 ,PK0 ),计算 = (RARPF);所述 为通过认证凭据存储和处理功能ARPF和认证服务器功能AUSF生成的棘轮密钥进行加密得到的值;并使用棘轮密钥 对所述用户永久标识符SUPI以及所述KAUSF加密得到加密后的用户永久标识符SUPI*以及加密后的 ;发送所述随机数RARPF、所述随机数RUE、所述身份验证令牌AUTN、所述加密后的用户永久标识符SUPI*、所述ARPF

加密后的 、所述 以及所述新的棘轮密钥对中包括的公钥PK1 到所述认证服务器功能AUSF;其中,棘轮密钥 中的2表示认证服务器功能AUSF,3表示认证凭据ARPF

存储和处理功能ARPF; 为第一次生成的发送消息密钥CK1 的单向密钥加密函数;

接收所述认证凭据存储和处理功能ARPF的消息后,所述认证服务器功能AUSF作DH运算AUSF ARPF

得到密钥 =DH(SK0 , PK1 ),计算  = (RARPF);所述为通过认证凭据存储和处理功能ARPF和认证服务器功能生成的密钥 进行加密得到的值;判断 与 比较是否相等,若 与 相等,确定所述认证凭据存储和处理功能ARPF认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后的 得到所述用户永久标识符SUPI以及所述KAUSF,产生随机数RAUSF,计算= (RAUSF)、消息认证码MACAUSF= (RAUSF,RUE,RARPF,SNname);所述为通过认证服务器功能AUSF和安全锚功能生成的密钥 进行加密得到的值;通过所述KAUSF派生锚密钥KSEAF= KDF (KAUSF,RAUSF,RARPF,RUE,SNname),使用所述加密所述用户永久标识符SUPI以及所述锚密钥KSEAF生成所述加密后的用户永久标识符SUPI*以及加密后的锚密钥 ,生成认证令牌AUTNAUSF=(RAUSF, MACAUSF),并将所述随机数RARPF、所述随机数RAUSF、所述随机数RUE、所述认证令牌AUTNAUSF、所述身份验证令牌AUTN、所述 、所述加密后的用户永久标识符SUPI*、所述加密后的锚密钥 、所述公钥ARPF

PK1 一起发送到安全锚功能SEAF;其中,KDF为密钥推导函数; 为第一次生成的第一棘轮密钥 的单向密钥加密函数;

接收所述认证服务器功能AUSF的消息后,所述安全锚功能SEAF运算得到棘轮密钥SEAF AUSF

=DH(SK0 , PK0 ),计算 = (RAUSF);所述 为通过ARPF和AUSF生成的密钥 进行加密得到的值;判断 与 比较是否相等,若所述 与所述 相等,确定所述认证服务器功能AUSF认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后的锚密钥 得到所述用户永久标识符SUPI以及所述锚密钥KSEAF,产生随机数RSEAF,计算 = (RSEAF)、消息认证码MACSEAF= (RSEAF,RAUSF, RUE,RARPF,SNname),生成认证令牌AUTNSEAF=(RSEAF,MACSEAF),并将所述随机数RARPF、所述随机数RAUSF、所述随机数RSEAF、所述认证令牌AUTNSEAF、所述认证令ARPF

牌AUTNAUSF、所述身份验证令牌AUTN、所述 以及所述公钥PK1 一起发送给所述用户设备UE;所述 为通过安全锚功能SEAF和用户设备UE生成的密钥 进行加密得到的值;

UE

所述用户设备UE接收信息后,所述用户设备UE计算得到新的根密钥RK2 和接收消息密UE

钥CK2 ,检查所述身份验证令牌AUTN,计算得到消息认证码MAC’ARPF;判断所述消息认证码MAC’ARPF与所述消息认证码MACARPF是否相等,若所述消息认证码MAC’ARPF与所述消息认证码MACARPF相等,确定所述用户设备UE成功认证所述认证凭据存储和处理功能ARPF;所述用户设备UE通过运算得到密钥 以及密钥 ,检查所述认证令牌AUTNSEAF以及所述UE

认证令牌AUTNAUSF;所述用户设备UE通过第二次生成的根密钥RK2 代替所述长期密钥K派生KAUSF,并得到KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname);KDF为密钥推导函数;所述用户设备UE生成新的棘轮密钥对, 执行一次DH棘轮步进生成密钥 以及密钥 ,计算哈希值SRES= (RSEAF,RUE,SNname)、哈希值ARES= (RAUSF,RUE,SNname),并由所述用户UE

设备UE发送用户设备第二次生成的私钥SK1 、所述哈希值SRES以及所述哈希值ARES给所述安全锚功能SEAF;所述 为通过UE的公钥和安全锚功能SEAF的私钥生成的密钥;所述 为通过UE的公钥和AUSF的私钥生成的密钥; 为第二次生成的密钥的单向密钥加密函数; 为第二次生成的密钥 的单向密钥加密函数;

接收所述用户设备UE发送的消息后,所述安全锚功能SEAF计算生成棘轮密钥,计算加密后的哈希值SRES*,并判断加密后的哈希值SRES*与所述哈希值SRES是否相等,若所述加密后的哈希值SRES*与所述哈希值SRES相等,确定所述安全锚功能SEAFUE

认证成功,并将所述第二次生成的私钥SK1 以及所述哈希值ARES发送给所述认证服务器功能AUSF;

UE

所述认证服务器功能AUSF接收所述第二次生成的私钥SK1 以及所述哈希值ARES后,所述认证服务器功能AUSF生成 ,计算加密后的哈希值ARES*,并判断加密后的哈希值ARES*与所述哈希值ARES是否相等,若所述加密后的哈希值ARES*与所述哈希值ARES相等,向所述安全锚功能SEAF发送一个身份验证成功消息。

7.根据权利要求6所述的基于DH棘轮算法的5G网络认证系统,其特征在于,所述用户设备UE和所述安全锚功能SEAF共享一个密钥作为一个锚密钥KSEAF。

8.根据权利要求6所述的基于DH棘轮算法的5G网络认证系统,其特征在于,所述用户设备UE、所述安全锚功能SEAF、所述认证服务器功能AUSF以及所述认证凭据存储和处理功能ARPF这四个实体产生了各自的棘轮密钥,上述实体对要发送的信息进行加密后发送。

9.根据权利要求8所述的基于DH棘轮算法的5G网络认证系统,其特征在于,参与认证的每个实体相互认证。

10.根据权利要求6所述的基于DH棘轮算法的5G网络认证系统,其特征在于,每次认证过程中产生不同的棘轮密钥;基于不同的棘轮密钥,使得每次认证过程均不相同。

说明书 :

一种基于DH棘轮算法的5G网络认证方法及系统

技术领域

[0001] 本发明涉及信息安全领域,特别是涉及一种基于迪菲‑赫尔曼(Diffie–Hellman,DH)棘轮算法的5G网络认证方法及系统。

背景技术

[0002] 移动通信技术广泛应用于语音、文本和互联网接入,通过这些技术,用户设备通常是手机,可以通过无线网络连接到基站上,然后再连接到服务提供商。最近由第三代合作伙
伴计划(Third Generation Partnership Project,3GPP)联盟已经设计的两代移动通信标
准,3G和4G标准,对第五代(5G)移动通信标准正在定稿,草案现在已经可以使用了。这些标
准描述了旨在为订阅者和服务提供者提供安全保证的协议。其中最重要的一个协议是身份
验证和密钥协议(AKA),该协议允许订阅者及其服务提供者以经过身份验证的方式建立共
享密钥。
[0003] 与前几代网络相比,5G网络对用户数据的安全性提供了更好的安全保障。它主要是由统一身份认证框架实现的,其中提出了认证协议,用于用户和他们的运营商进行相互
认证,以建立一个安全的通道,供后续通信使用。5G‑AKA协议是基于4G/LTE使用的认证与密
钥协商基础上提出的,该协议作为5G用户认证与密钥协商过程以保证用户的附着安全性。
然而,5G系统囊括了核心网以及管理系统等网络演变的所有内容,其不足之处主要包括长
期密钥泄露导致通信内容被窃听;由于开放式网络环境,导致攻击者可以利用入网请求协
议流程,对移动通信网络实体实施拒绝服务攻击等,存在安全性差以及共享密钥易泄露等
问题。

发明内容

[0004] 本发明的目的是提供一种基于DH棘轮算法的5G网络认证方法及系统,以解决现有5G系统安全性差以及共享密钥易泄露等问题。
[0005] 为实现上述目的,本发明提供了如下方案:
[0006] 一种基于DH棘轮算法的5G网络认证方法,包括:
[0007] 在初始化阶段,用户设备UE和认证凭据存储和处理功能ARPF通过秘钥交换算法DH分别生成当前的棘轮密钥对;并由所述认证凭据存储和处理功能ARPF向所述用户设备UE发
UE UE ARPF ARPF
送棘轮公钥;所述棘轮密钥对包括私钥SK0 和公钥PK0 ,以及私钥SK0 和公钥PK0 ;
[0008] 当所述用户设备UE接收所述公钥PK0ARPF时,所述用户设备UE计算得到新的根密钥UE UE
RK0 和发送消息密钥CK0 ;所述用户设备UE选择一个随机数RUE,并使用所述发送消息密钥
UE UE
CK0 对用户永久标识符SUPI以及随机数RUE进行加密得到用户隐藏标识符SUCI=CK0 (SUPI,
RUE);生成认证消息MACUE= (SUCI,RUE),并将所述用户隐藏标识符SUCI、随机数RUE、所述
UE
公钥PK0 和所述认证消息MACUE发送给安全锚功能SEAF; 为第一次生成的发送消息密
UE
钥CK0 的单向密钥加密函数;
[0009] 所述安全锚功能SEAF接收所述用户设备UE发送的认证数据,计算得到棘轮密钥SEAF UE
=DH(SK0 ,PK0 ),保存棘轮密钥 ,将接收的所述认证数据和服务标
识SNname发送给认证服务器功能AUSF进行进一步验证;其中,棘轮密钥 中0表示用
户设备UE,1表示安全锚功能SEAF, 表示安全锚功能SEAF使用安全锚功能SEAF的
SEAF
私钥和用户设备UE的公钥通过DH算法生成的密钥;SK0 为安全锚功能SEAF的私钥;
[0010] 接收身份验证数据请求消息后,所述认证服务器功能AUSF将接收的服务标识SNname与期望的网络名称进行比较,进行验证,通过DH生成当前的棘轮密钥对得到认证服务
器功能AUSF内的棘轮密钥;所述认证服务器功能AUSF内的棘轮密钥包括第一棘轮密钥
AUSF UE AUSF SEAF
=DH(SK0 ,PK0 )以及第二棘轮密钥 =DH(SK0 ,PK0 );保存认证
AUSF
服务器功能AUSF内的棘轮密钥 ,将所述公钥PK0 和接收的认证数
AUSF
据发送给所述认证凭据存储和处理功能ARPF;其中,SK0 为认证服务器功能AUSF的私钥;
SEAF
PK0 为安全锚功能SEAF的公钥;第一棘轮密钥 和第二棘轮密钥 中0
表示用户设备UE,2表示认证服务器功能AUSF;
[0011] 当所述认证凭据存储和处理功能ARPF接收身份验证请求消息后,计算得到新的根ARPF ARPF
密钥RK0 和接收消息密钥CK0 ,解密所述用户隐藏标识符SUCI得到所述用户永久标识
符SUPI;所述认证凭据存储和处理功能ARPF通过计算验证所述认证消息MACUE;通过DH生成
ARPF ARPF ARPF
新的棘轮密钥对,计算得到新的根密钥RK1 和发送消息密钥CK1 ,通过根密钥RK1 代
ARPF
替长期密钥K派生KAUSF,产生随机数RARPF;所述新的棘轮密钥对包括私钥SK1 以及公钥
ARPF
PK1 ;计算消息认证码MACARPF= (RARPF,RUE,SNname),身份验证令牌AUTN=(RARPF,
ARPF AUSF
MACARPF);同时作DH运算得到密钥 =DH(SK1 ,PK0 ),计算 =
(RARPF);所述 为通过认证凭据存储和处理功能ARPF和认证服务器功能AUSF生成的棘
轮密钥 进行加密得到的值;并使用棘轮密钥 对所述用户永久标识符
SUPI以及所述长期密钥K派生KAUSF加密得到加密后的用户永久标识符SUPI*以及加密后的
长期密钥K派生 ;发送所述随机数RARPF、所述随机数RUE、所述身份验证令牌AUTN、所
述加密后的用户永久标识符SUPI*、所述加密后的长期密钥K派生 、所述 以及
ARPF
所述新的根密钥PK1 到所述认证服务器功能AUSF;其中,棘轮密钥 中的2表示
认证服务器功能AUSF,3表示认证凭据存储和处理功能ARPF; 为第一次生成的发送消
ARPF
息密钥CK1 的单向密钥加密函数;
[0012] 接收所述认证凭据存储和处理功能ARPF的消息时,作DH运算得到密钥AUSF ARPF
=DH(SK0 , PK1 ),计算 = (RAUSF);所述 为通过认证凭据存储和
处理功能ARPF和认证服务器功能AUSF生成的密钥 进行加密得到的值;判断
与 比较是否相等,若 与 相等,确定所述认证凭据存储和处理
功能ARPF认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后的长期密
钥K派生 得到所述用户永久标识符SUPI以及所述长期密钥K派生KAUSF,产生随机数
RAUSF,计算 = (RAUSF)、消息认证码MACAUSF= (RAUSF,RUE,RARPF,SNname);
所述 为通过认证服务器功能AUSF和安全锚功能SEAF生成的密钥 进行加
密得到的值;通过所述长期密钥K派生KAUSF派生锚密钥KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,
SNname),使用所述 加密所述用户隐藏标识符SUPI以及所述锚密钥KSEAF生成所述
加密后的用户永久标识符SUPI*以及加密后的锚密钥 ,生成认证令牌AUTNAUSF=
(RAUSF, MACAUSF),并将所述随机数RARPF、所述随机数RAUSF、所述随机数RUE、所述认证令牌
AUTNAUSF、所述身份验证令牌AUTN、所述 、所述加密后的用户永久标识符SUPI*、所述
ARPF
加密后的锚密钥 、所述公钥PK1 一起发送到安全锚功能SEAF;其中,KDF为密钥推
导函数; 为第一次生成的第一棘轮密钥 的单向密钥加密函数;
[0013] 接收所述认证服务器功能AUSF的消息后,运算得到所述棘轮密钥 =DHSEAF AUSF
(SK0 , PK0 ),计算 = (RAUSF);判断 与 比较是否相等,
若所述 与所述 相等,确定所述认证服务器功能AUSF认证成功,并解密所述加
密后的用户永久标识符SUPI*以及所述加密后的锚密钥 得到所述用户隐藏标识符
SUPI以及所述锚密钥KSEAF,产生随机数RSEAF,计算 = (RSEAF)、消息认证码
MACSEAF= (RSEAF,RAUSF,RUE,RARPF,SNname),生成认证令牌AUTNSEAF=(RSEAF,MACAUSF),并将
所述随机数RARPF、所述随机数RAUSF、所述随机数RSEAF、所述认证令牌AUTNSEAF、所述认证令牌
ARPF
AUTNAUSF、所述身份验证令牌AUTN、所述 以及所述公钥PK1 一起发送给所述用户设
备UE;所述 为通过安全锚功能SEAF和用户设备UE生成的密钥 进行加密得
到的值;
[0014] 所述用户设备UE接收信息后,所述用户设备UE计算得到新的根密钥RK2UE和接收消UE
息密钥CK2 ,检查所述身份验证令牌AUTN,计算得到消息认证码MAC’ARPF;判断所述消息认
证码MAC’ARPF与所述消息认证码MACARPF是否相等,若所述消息认证码MAC’ARPF与所述消息认
证码MACARPF相等,确定所述用户设备UE成功认证所述认证凭据存储和处理功能ARPF;所述
用户设备UE通过运算得到密钥 以及密钥 ,检查所述认证令牌AUTNSEAF以及
UE
所述认证令牌AUTNAUSF;所述用户设备UE通过第二次生成的根密钥RK2 代替所述长期密钥K
派生KAUSF,并得到KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname);所述用户设备UE生成新的的棘轮密
钥对执行一次DH棘轮步进生成密钥 以及密钥 ,计算哈希值SRES=
(RSEAF,RUE,SNname)、哈希值ARES= (RAUSF,RUE,SNname),并由所述用户设备UE发送用户设
UE
备第二次生成的私钥SK1 、所述哈希值SRES以及所述哈希值ARES给所述安全锚功能SEAF;
所述 为通过UE的公钥和安全锚功能SEAF的私钥生成的密钥;所述 为通过
UE的公钥和AUSF的私钥生成的密钥; 为第二次生成的密钥 的单向密钥加
密函数; 为第二次生成的密钥 的单向密钥加密函数;
[0015] 接收所述用户设备UE发送的消息后,所述安全锚功能SEAF计算生成棘轮密钥,判断加密后的哈希值SRES*与所述哈希值SRES是否相等,若所述加密后的哈希
值SRES*与所述哈希值SRES相等,确定所述安全锚功能SEAF认证成功,并将所述第二次生成
UE
的私钥SK1 以及所述哈希值ARES发送给所述认证服务器功能AUSF;
[0016] 所述认证服务器功能AUSF接收所述第二次生成的私钥SK1UE以及所述哈希值ARES后,所述认证服务器功能AUSF生成 ,并判断加密后的哈希值ARES*与所述哈希值
ARES是否相等,若所述加密后的哈希值ARES*与所述哈希值ARES相等,向所述安全锚功能
SEAF发送一个成功身份验证消息。
[0017] 可选的,所述用户设备UE和所述安全锚功能SEAF共享一个密钥作为一个锚密钥KSEAF。
[0018] 可选的,所述用户设备UE、所述安全锚功能SEAF、所述认证服务器功能AUSF以及所述认证凭据存储和处理功能ARPF产生了各自的棘轮密钥,并对每个实体进行加密发送信
息。
[0019] 可选的,参与认证的每个实体相互认证。
[0020] 可选的,每次认证过程中产生不同的棘轮密钥;基于不同的棘轮密钥,使得每次认证过程均不相同。
[0021] 一种基于DH棘轮算法的5G网络认证系统,包括:
[0022] 初始化模块,用于在初始化阶段,用户设备UE和认证凭据存储和处理功能ARPF通过秘钥交换算法DH分别生成当前的棘轮密钥对;并由所述认证凭据存储和处理功能ARPF向
UE UE ARPF
所述用户设备UE发送棘轮公钥;所述棘轮密钥对包括私钥SK0 和公钥PK0 ,以及私钥SK0
ARPF
和公钥PK0 ;
[0023] 用户设备UE内密钥接收模块,用于当所述用户设备UE接收所述公钥PK0ARPF时,所述UE UE
用户设备UE计算得到新的根密钥RK0 和发送消息密钥CK0 ;所述用户设备UE选择一个随机
UE
数RUE,并使用所述发送消息密钥CK0 对用户永久标识符SUPI以及随机数RUE进行加密得到
UE
用户隐藏标识符SUCI=CK0 (SUPI,RUE);生成认证消息MACUE= (SUCI,RUE),并将所述用
UE
户隐藏标识符SUCI、随机数RUE、所述公钥PK0 和所述认证消息MACUE发送给安全锚功能
UE
SEAF; 为第一次生成的发送消息密钥CK0 的单向密钥加密函数;
[0024] 安全锚功能SEAF内棘轮密钥计算模块,用于所述安全锚功能SEAF接收所述用户设SEAF UE
备UE发送的认证数据,计算得到棘轮密钥 =DH(SK0 ,PK0 ),保存棘轮密钥
,将接收的所述认证数据和服务标识SNname发送给认证服务器功能AUSF进行进一
步验证;其中,棘轮密钥 中0表示用户设备UE,1表示安全锚功能SEAF,
表示安全锚功能SEAF使用安全锚功能SEAF的私钥和用户设备UE的公钥通过DH算法生成的
SEAF
密钥;SK0 为安全锚功能SEAF的私钥;
[0025] 认证服务器功能AUSF内的棘轮密钥计算模块,用于接收身份验证数据请求消息后,所述认证服务器功能AUSF将接收的服务标识SNname与期望的网络名称进行比较,进行验
证,通过DH生成当前的棘轮密钥对得到认证服务器功能AUSF内的棘轮密钥;所述认证服务
AUSF UE
器功能AUSF内的棘轮密钥包括第一棘轮密钥 =DH(SK0 ,PK0 )以及第二棘轮密
AUSF SEAF
钥 =DH(SK0 ,PK0 );保存认证服务器功能AUSF内的棘轮密钥
AUSF
,将所述公钥PK0 和接收的认证数据发送给所述认证凭据存储和
AUSF SEAF
处理功能ARPF;其中,SK0 为认证服务器功能AUSF的私钥;PK0 为安全锚功能SEAF的公
钥;第一棘轮密钥 和第二棘轮密钥 中0表示用户设备UE,2表示认证服
务器功能AUSF;
[0026] 认证凭据存储和处理功能ARPF内棘轮密钥计算模块,用于当所述认证凭据存储和ARPF
处理功能ARPF接收身份验证请求消息后,计算得到新的根密钥RK0 和接收消息密钥
ARPF
CK0 ,解密所述用户隐藏标识符SUCI得到所述用户永久标识符SUPI;所述认证凭据存储和
处理功能ARPF通过计算验证所述认证消息MACUE;通过DH生成新的棘轮密钥对,计算得到新
ARPF ARPF ARPF
的根密钥RK1 和发送消息密钥CK1 ,通过根密钥RK1 代替长期密钥K派生KAUSF,产生随
ARPF ARPF
机数RARPF;所述新的棘轮密钥对包括私钥SK1 以及公钥PK1 ;计算哈希值MACARPF=
(RARPF,RUE,SNname),身份验证令牌AUTN=(RARPF,MACARPF);同时作DH运算得到密钥 =
ARPF AUSF
DH(SK1 ,PK0 ),计算 = (RARPF);所述 为通过认证凭据存储和处
理功能ARPF和认证服务器功能AUSF生成的棘轮密钥 进行加密得到的值;并使用
棘轮密钥 对所述用户永久标识符SUPI以及所述长期密钥K派生KAUSF加密得到加
密后的用户永久标识符SUPI*以及加密后的长期密钥K派生 ;发送所述随机数RARPF、
所述随机数RUE、所述身份验证令牌AUTN、所述加密后的用户永久标识符SUPI*、所述加密后
ARPF
的长期密钥K派生 、所述 以及所述新的根密钥PK1 到所述认证服务器功能
AUSF;其中,棘轮密钥 中的2表示认证服务器功能AUSF,3表示认证凭据存储和处
ARPF
理功能ARPF; 为第一次生成的发送消息密钥CK1 的单向密钥加密函数;
[0027] 认证凭据存储和处理功能ARPF认证模块,用于接收所述认证凭据存储和处理功能AUSF ARPF
ARPF的消息时,作DH运算得到密钥 =DH(SK0 , PK1 ),计算  =
(RAUSF);所述 为通过认证凭据存储和处理功能ARPF和认证服务器功能生
成的密钥 进行加密得到的值;判断 与 比较是否相等,若
与 相等,确定所述认证凭据存储和处理功能ARPF认证成功,并解密所述加密后的用
户永久标识符SUPI*以及所述加密后的长期密钥K派生 得到所述用户永久标识符
SUPI以及所述长期密钥K派生KAUSF,产生随机数RAUSF,计算 = (RAUSF)、消息
认证码MACAUSF= (RAUSF,RUE,RARPF,SNname);所述 为通过认证服务器功能AUSF和
安全锚功能生成的密钥 进行加密得到的值;通过所述长期密钥K派生KAUSF派生锚
密钥KSEAF= KDF (KAUSF,RAUSF,RARPF,RUE,SNname),使用所述 加密所述用户隐藏标识
符SUPI以及所述锚密钥KSEAF生成所述加密后的用户永久标识符SUPI*以及加密后的锚密钥
,生成认证令牌AUTNAUSF=(RAUSF, MACAUSF),并将所述随机数RARPF、所述随机数RAUSF、所
述随机数RUE、所述认证令牌AUTNAUSF、所述身份验证令牌AUTN、所述 、所述加密后的
ARPF
用户永久标识符SUPI*、所述加密后的锚密钥 、所述公钥PK1 一起发送到安全锚功
能SEAF;其中,KDF为密钥推导函数; 为第一次生成的第一棘轮密钥 的单
向密钥加密函数;
[0028] 认证服务器功能AUSF认证模块,用于接收所述认证服务器功能AUSF的消息后,运SEAF AUSF
算得到所述棘轮密钥 =DH(SK0 , PK0 ),计算 = (RAUSF);所
述 为通过ARPF和AUSF生成的密钥 进行加密得到的值;判断 与
比较是否相等,若所述 与所述 相等,确定所述认证服务器功能AUSF
认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后的锚密钥 得
到所述用户隐藏标识符SUPI以及所述锚密钥KSEAF,产生随机数RSEAF,计算 =
(RSEAF)、消息认证码MACSEAF= (RSEAF,RAUSF, RUE,RARPF,SNname),生成认证令
牌AUTNSEAF=(RSEAF,MACAUSF),并将所述随机数RARPF、所述随机数RAUSF、所述随机数RSEAF、所述认
证令牌AUTNSEAF、所述认证令牌AUTNAUSF、所述身份验证令牌AUTN、所述 以及所述公钥
ARPF
PK1 一起发送给所述用户设备UE;所述 为通过安全锚功能SEAF和用户设备UE生成
的密钥 进行加密得到的值;
[0029] 用户设备UE认证ARPF的认证模块,用于所述用户设备UE接收信息后,所述用户设UE UE
备UE计算得到新的根密钥RK2 和接收消息密钥CK2 ,检查所述身份验证令牌AUTN,计算得
到消息认证码MAC’ARPF;判断所述消息认证码MAC’ARPF与所述消息认证码MACARPF是否相等,若
所述消息认证码MAC’ARPF与所述消息认证码MACARPF相等,确定所述用户设备UE成功认证所述
认证凭据存储和处理功能ARPF;所述用户设备UE通过运算得到密钥 以及密钥
,检查所述认证令牌AUTNSEAF以及所述认证令牌AUTNAUSF;所述用户设备UE通过第二
UE
次生成的根密钥RK2 代替所述长期密钥K派生KAUSF,并得到KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,
SNname);KDF为密钥推导函数;所述用户设备UE生成新的的棘轮密钥对执行一次DH棘轮步进
生成密钥 以及密钥 ,计算哈希值SRES= (RSEAF,RUE,SNname)、哈希值
ARES= (RAUSF,RUE,SNname),并由所述用户设备UE发送用户设备第二次生成的私钥
UE
SK1 、所述哈希值SRES以及所述哈希值ARES给所述安全锚功能SEAF;所述 为通过
UE的公钥和安全锚功能SEAF的私钥生成的密钥;所述 为通过UE的公钥和AUSF的私
钥生成的密钥; 为第二次生成的密钥 的单向密钥加密函数; 为第二
次生成的密钥 的单向密钥加密函数;
[0030] 安全锚功能SEAF认证模块,用于接收所述用户设备UE发送的消息后,所述安全锚功能SEAF计算生成棘轮密钥 ,判断加密后的哈希值SRES*与所述哈希值SRES是
否相等,若所述加密后的哈希值SRES*与所述哈希值SRES相等,确定所述安全锚功能SEAF认
UE
证成功,并将所述第二次生成的私钥SK1 以及所述哈希值ARES发送给所述认证服务器功能
AUSF;
[0031] 成功身份验证消息发送模块,用于所述认证服务器功能AUSF接收所述第二次生成UE
的私钥SK1 以及所述哈希值ARES后,所述认证服务器功能AUSF生成 ,并判断加
密后的哈希值ARES*与所述哈希值ARES是否相等,若所述加密后的哈希值ARES*与所述哈希
值ARES相等,向所述安全锚功能SEAF发送一个成功身份验证消息。
[0032] 可选的,所述用户设备UE和所述安全锚功能SEAF共享一个密钥作为一个锚密钥KSEAF。
[0033] 可选的,所述用户设备UE、所述安全锚功能SEAF、所述认证服务器功能AUSF以及所述认证凭据存储和处理功能ARPF产生了各自的棘轮密钥,并对每个实体进行加密发送信
息。
[0034] 可选的,参与认证的每个实体相互认证。
[0035] 可选的,每次认证过程中产生不同的棘轮密钥;基于不同的棘轮密钥,使得每次认证过程均不相同。
[0036] 根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供了一种基于DH棘轮算法的5G网络认证方法及系统,首先用户通过棘轮密钥加密身份信息发送给服
务器进行验证,保证了身份信息的机密性;对于5G网络中的每个实体都产生棘轮密钥对,保
证了每个实体在传输信息时通过自身的棘轮密钥加密传输信息,保证了信息的安全性,每
个实体通过产生各自的身份令牌,保证了各个实体之间的相互验证,避免了假冒攻击;通过
棘轮步进使得每个实体在会话过程中产生不同的棘轮密钥,使得每次会话使用不同的棘轮
密钥进行加密,使得消息传输过程中更加安全;对于同步失败或者验证失败的消息通过棘
轮密钥加密发送,从而避免了跟踪的可能性;5G中的棘轮密钥通过棘轮密钥产生,不再通过
共享密钥K来产生,避免了因为共享密钥K的泄露造成的安全问题。

附图说明

[0037] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图
获得其他的附图。
[0038] 图1为本发明所提供的基于DH棘轮算法的5G网络认证方法认证信息交互图;
[0039] 图2为本发明所提供的基于DH棘轮算法的5G网络认证方法认证流程图;
[0040] 图3为本发明所提供的基于DH棘轮算法的5G网络认证系统结构图。

具体实施方式

[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0042] 本发明的目的是提供一种基于DH棘轮算法的5G网络认证方法及系统,不再通过共享密钥K来产生,避免了因为共享密钥K的泄露造成的安全问题。
[0043] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0044] 如图1‑图2所示,一种基于DH棘轮算法的5G网络认证方法,包括:
[0045] 步骤一:在初始化阶段,用户设备(User Equipment,UE)和认证凭据存储和处理功能(Authentication Credential Repository and Processing Function,ARPF)通过DH分
UE UE ARPF ARPF
别生成当前的棘轮密钥对SK0 、PK0 和SK0 、PK0 ,认证凭据存储和处理功能ARPF向用
户设备UE发送棘轮公钥。
[0046] 步骤二:当用户设备UE接收到公钥PK0ARPF时,用户设备UE计算得到新的根密钥RK0UEUE UE
和发送消息密钥CK0 ,用户设备UE选择一个随机数RUE,并使用消息密钥CK0 对用户永久标
识符(Subscription Permanent Identifier,SUPI)以及随机数RUE进行加密得到用户隐藏
UE
标识符SUCI=CK0 (SUPI,RUE);生成认证消息MACUE = (SUCI,RUE),然后将SUCI、RUE、
UE
PK0 和MACUE发送给安全锚功能SEAF。
[0047] 步骤三:安全锚功能SEAF收到用户设备UE发送的认证数据,计算得到棘轮密钥SEAF UE
=DH(SK0 ,PK0 ),保存棘轮密钥 ,将收到的认证数据和服务标识
SNname发送给认证服务器功能(Authentication Server Function,AUSF)进行进一步验证。
[0048] 步骤四:在收到身份验证数据请求消息后,认证服务器功能AUSF将收到的服务标识SNname与期望的网络名称进行比较,进行验证,通过DH生成当前的棘轮密钥对得到棘轮密
AUSF UE AUSF SEAF
钥 =DH(SK0 ,PK0 ), =DH(SK0 ,PK0 ),保存棘轮密钥
AUSF
,将PK0 和收到的认证数据发送给认证凭据存储和处理功能
ARPF。
[0049] 步骤五:当认证凭据存储和处理功能ARPF接收到身份验证请求消息后,计算得到ARPF ARPF
新的根密钥RK0 和接收消息密钥CK0 ,然后解密SUCI得到SUPI,认证凭据存储和处理功
ARPF ARPF
能ARPF通过计算验证MACUE,通过DH再生成新的棘轮密钥对SK1 、PK1 ,计算得到新的根
ARPF ARPF ARPF
密钥RK1 和发送消息密钥CK1 ,通过根密钥RK1 代替长期密钥K派生KAUSF,产生随机数
RARPF,计算MACARPF= (RARPF,RUE,SNname),身份验证令牌AUTN=(RARPF,MACARPF);同时作DH
ARPF AUSF
运算得到密钥 =DH(SK1 ,PK0 ),计算 = (RARPF),并使用
对SUPI,KAUSF加密得到SUPI*, ,然后发送RARPF,RUE,AUTN,SUPI*, ,
ARPF
,PK1 到认证服务器功能AUSF。
[0050] 步骤六:在接收到认证凭据存储和处理功能ARPF的消息时,作DH运算得到密钥AUSF ARPF
=DH(SK0 ,PK1 ),计算 = (RAUSF),与 比较是否相等,
相等就验证了认证凭据存储和处理功能ARPF,然后解密SUPI*, 得到SUPI,KAUSF,产生
随机数RAUSF,计算 = (RAUSF),MACAUSF= (RAUSF,RUE,RARPF,SNname),通过
密钥KAUSF派生锚密钥KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname),使用 加密SUPI,KSEAF
生成SUPI*, ,生成认证令牌AUTNAUSF=(RAUSF,MACAUSF),然后将RARPF,RAUSF,RUE,AUTNAUSF,
ARPF
AUTN, ,SUPI*, ,PK1 一起发送到安全锚功能SEAF。
[0051] 步骤七:在接收到认证服务器功能AUSF的消息后,运算得到密钥 =DHSEAF AUSF
(SK0 ,PK0 ),计算 = (RAUSF),与 比较是否相等,相等就验证了
认证服务器功能AUSF,解密 得到SUPI,KSEAF,产生随机数RSEAF,计算 =
(RSEAF),MACSEAF= (RSEAF,RAUSF,RUE,RARPF,SNname),生成认证令牌AUTNSEAF=
ARPF
(RSEAF,MACAUSF),然后将RARPF,RAUSF,RSEAF,AUTNSEAF,AUTNAUSF,AUTN, ,PK1 一起发送给
用户设备用户设备UE。
[0052] 步骤八:在收到信息后,用户设备UE计算得到新的根密钥RK2UE和接收消息密钥UE
CK2 ,检查认证令牌AUTN,计算得到MAC’ARPF,与收到的MACARPF进行对比,如果相等,那么UE就
验证了ARPF;同样的UE通过运算得到密钥 , ,检查AUTNSEAF,AUTNAUSF;UE通
UE
过RK2 代替K派生KAUSF,并得到KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname);UE生成新的的棘轮密
钥对执行一次DH棘轮步进生成 , ,计算SRES= (RSEAF RUE,SNname)、
UE
ARES= (RAUSF RUE,SNname),最后用户设备UE发送SK1 、SRES、ARES给安全锚功能SEAF。
[0053] 步骤九:在收到用户设备UE发送过来的消息后,安全锚功能SEAF计算生成UE
,计算SRES*与收到的SRES进行对比当相等时,那么表示认证成功,然后将SK1 、
ARES发送给认证服务器功能AUSF。
[0054] 步骤十:为了与用户设备UE进行相互的验证,认证服务器功能AUSF接收到SK1UE、ARES后,AUSF计算生成 ,计算ARES*与收到的ARES进行匹配,如果相等,那么就向
SEAF发送一个成功身份验证消息,UE和SEAF共享一个KSEAF密钥作为一个锚密钥。
[0055] 在实际应用中,用户设备UE、安全锚功能SEAF、认证服务器功能AUSF、认证凭据存储和处理功能ARPF产生了各自的棘轮密钥,对每个实体进行加密发送信息。
[0056] 在实际应用中,用户UE在加密SUPI时,使用产生的棘轮密钥进行加密。
[0057] 在实际应用中,每个实体通过棘轮步进产生新的棘轮密钥,发送信息使用新的棘轮密钥进行加密;参与认证的每个实体都进行了相互认证;认证过程中通过棘轮密钥产生
会话密钥,可以保证每次认证过程都不同于上一次。
[0058] 在实际应用中,可以使用棘轮密钥加密同步失败或者验证失败信息进行传输。
[0059] 图3为本发明所提供的基于DH棘轮算法的5G网络认证系统结构图,如图3所示,一种基于DH棘轮算法的5G网络认证系统,其特征在于,包括:
[0060] 初始化模块301,用于在初始化阶段,用户设备UE和认证凭据存储和处理功能ARPF通过秘钥交换算法DH分别生成当前的棘轮密钥对;并由所述认证凭据存储和处理功能ARPF
UE UE
向所述用户设备UE发送棘轮公钥;所述棘轮密钥对包括私钥SK0 和公钥PK0 ,以及私钥
ARPF ARPF
SK0 和公钥PK0 。
[0061] 用户设备UE内密钥接收模块302,用于当所述用户设备UE接收所述公钥PK0ARPF时,UE UE
所述用户设备UE计算得到新的根密钥RK0 和发送消息密钥CK0 ;所述用户设备UE选择一个
UE
随机数RUE,并使用所述发送消息密钥CK0 对用户永久标识符SUPI以及随机数RUE进行加密
UE
得到用户隐藏标识符SUCI=CK0 (SUPI,RUE);生成认证消息MACUE= (SUCI,RUE),并将所
UE
述用户隐藏标识符SUCI、RUE、所述公钥PK0 和所述认证消息MACUE发送给安全锚功能SEAF;f
为单向密钥加密函数。
[0062] 安全锚功能SEAF内棘轮密钥计算模块303,用于所述安全锚功能SEAF接收所述用SEAF UE
户设备UE发送的认证数据,计算得到棘轮密钥 =DH(SK0 ,PK0 ),保存棘轮密钥
,将接收的所述认证数据和服务标识SNname发送给认证服务器功能AUSF进行进一
步验证;其中, 中0表示UE,1表示SEAF,2表示AUSF,3表示ARPF,(1,0)表示SEAF使
用SEAF的私钥和UE的公钥通过DH算法生成的密钥 。
[0063] 认证服务器功能AUSF内的棘轮密钥计算模块304,用于接收身份验证数据请求消息后,所述认证服务器功能AUSF将接收的服务标识SNname与期望的网络名称进行比较,进行
验证,通过DH生成当前的棘轮密钥对得到认证服务器功能AUSF内的棘轮密钥;所述认证服
AUSF UE
务器功能AUSF内的棘轮密钥包括第一棘轮密钥 =DH(SK0 ,PK0 )以及第二棘轮
AUSF SEAF
密钥 =DH(SK0 ,PK0 );保存认证服务器功能AUSF内的棘轮密钥
AUSF
,将所述公钥PK0 和接收的认证数据发送给所述认证凭据存储和
处理功能ARPF。
[0064] 认证凭据存储和处理功能ARPF内棘轮密钥计算模块305,用于当所述认证凭据存ARPF
储和处理功能ARPF接收身份验证请求消息后,计算得到新的根密钥RK0 和接收消息密钥
ARPF
CK0 ,解密所述用户隐藏标识符SUCI得到所述用户永久标识符SUPI;所述认证凭据存储和
处理功能ARPF通过计算验证所述认证消息MACUE;通过DH生成新的棘轮密钥对,计算得到新
ARPF ARPF ARPF
的根密钥RK1 和发送消息密钥CK1 ,通过根密钥RK1 代替长期密钥K派生KAUSF,产生随
ARPF ARPF
机数RARPF;所述新的棘轮密钥对包括私钥SK1 以及公钥PK1 ;计算消息认证码MACARPF=
(RARPF,RUE,SNname),身份验证令牌AUTN=(RARPF,MACARPF);同时作DH运算得到密钥
ARPF AUSF
=DH(SK1 ,PK0 ),计算 = (RARPF);所述 为通过ARPF
和AUSF生成的密钥 进行加密得到的值;并使用 对所述用户永久标识
符SUPI以及所述长期密钥K派生KAUSF加密得到加密后的用户永久标识符SUPI*以及加密后
的长期密钥K派生 ;发送所述随机数RARPF、所述RUE、所述身份验证令牌AUTN、所述加
密后的用户永久标识符SUPI*、所述加密后的长期密钥K派生 、所述 以及所
ARPF
述新的根密钥PK1 到所述认证服务器功能AUSF。
[0065] 认证凭据存储和处理功能ARPF认证模块306,用于接收所述认证凭据存储和处理AUSF ARPF
功能ARPF的消息时,作DH运算得到密钥 =DH(SK0 ,PK1 ),计算 =
(RAUSF);所述 为通过ARPF和AUSF生成的密钥 进行加密得到的
值;判断 与 比较是否相等,若 与 相等,确定所述认证凭据存
储和处理功能ARPF认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后
的长期密钥K派生 得到所述用户永久标识符SUPI以及所述长期密钥K派生KAUSF,产生
随机数RAUSF,计算 = (RAUSF)、消息认证码MACAUSF= (RAUSF,RUE,RARPF,
SNname);所述 为通过AUSF和SEAF生成的密钥 进行加密得到的值;通过所
述长期密钥K派生KAUSF派生锚密钥KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname),使用所述
加密所述用户隐藏标识符SUPI以及所述锚密钥KSEAF生成所述加密后的用户永久
标识符SUPI*以及加密后的锚密钥 ,生成认证令牌AUTNAUSF=(RAUSF,MACAUSF),并将所
述随机数RARPF、所述随机数RAUSF、所述RUE、所述认证令牌AUTNAUSF、所述身份验证令牌AUTN、所
述 、所述加密后的用户永久标识符SUPI*、所述加密后的锚密钥 、所述公钥
ARPF
PK1 一起发送到安全锚功能SEAF。
[0066] 认证服务器功能AUSF认证模块307,用于接收所述认证服务器功能AUSF的消息后,SEAF AUSF
运算得到所述棘轮密钥 =DH(SK0 ,PK0 ),计算 = (RAUSF);所
述 为通过ARPF和AUSF生成的密钥 进行加密得到的值;判断 与
比较是否相等,若所述 与所述 相等,确定所述认证服务器功能AUSF
认证成功,并解密所述加密后的用户永久标识符SUPI*以及所述加密后的锚密钥 得
到所述用户隐藏标识符SUPI以及所述锚密钥KSEAF,产生随机数RSEAF,计算 =
(RSEAF)、消息认证码MACSEAF= (RSEAF,RAUSF,RUE,RARPF,SNname),生成认证令牌
AUTNSEAF=(RSEAF,MACAUSF),并将所述随机数RARPF、所述随机数RAUSF、所述随机数RSEAF、所述认证
令牌AUTNSEAF、所述认证令牌AUTNAUSF、所述身份验证令牌AUTN、所述 以及所述公钥
ARPF
PK1 一起发送给所述用户设备UE。
[0067] 用户设备UE认证ARPF的认证模块308,用于所述用户设备UE接收信息后,所述用户UE UE
设备UE计算得到新的根密钥RK2 和接收消息密钥CK2 ,检查所述身份验证令牌AUTN,计算
得到消息认证码MAC’ARPF;判断所述MAC’ARPF与所述MACARPF是否相等,若所述MAC’ARPF与所述
MACARPF相等,确定所述用户设备UE成功认证所述认证凭据存储和处理功能ARPF;所述用户
设备UE通过运算得到密钥 以及密钥 ,检查所述认证令牌AUTNSEAF以及所述
UE
认证令牌AUTNAUSF;所述用户设备UE通过第二次生成的根密钥RK2 代替所述长期密钥K派生
KAUSF,并得到KSEAF=KDF(KAUSF,RAUSF,RARPF,RUE,SNname);KDF为密钥推导函数;所述用户设备UE生
成新的的棘轮密钥对执行一次DH棘轮步进生成密钥 以及密钥 ,计算哈希
值SRES= (RSEAF,RUE,SNname)、哈希值ARES= (RAUSF,RUE,SNname),并由所述用户设
UE
备UE发送用户设备第二次生成的私钥SK1 、所述SRES以及所述ARES给所述安全锚功能
SEAF;所述 为通过UE的公钥和SEAF的私钥生成的密钥;所述 为通过UE的公
钥和AUSF的私钥生成的密钥。
[0068] 安全锚功能SEAF认证模块309,用于接收所述用户设备UE发送的消息后,所述安全锚功能SEAF计算生成棘轮密钥 ,判断所述SRES*与所述SRES是否相等,若所述
UE
SRES*与所述SRES相等,确定所述安全锚功能SEAF认证成功,并将所述SK1 以及所述ARES发
送给所述认证服务器功能AUSF。
[0069] 成功身份验证消息发送模块310,用于所述认证服务器功能AUSF接收所述SK1UE以及所述ARES后,所述认证服务器功能AUSF生成 ,并判断ARES*与所述ARES是否相
等,若所述ARES*与所述ARES相等,向所述安全锚功能SEAF发送一个成功身份验证消息。
[0070] 所述用户设备UE和所述安全锚功能SEAF共享一个密钥作为一个锚密钥KSEAF。
[0071] 所述用户设备UE、所述安全锚功能SEAF、所述认证服务器功能AUSF以及所述认证凭据存储和处理功能ARPF产生了各自的棘轮密钥,并对每个实体进行加密发送信息;参与
认证的每个实体相互认证。
[0072] 每次认证过程中产生不同的棘轮密钥;基于不同的棘轮密钥,使得每次认证过程均不相同。
[0073] 本发明具有以下有益效果:
[0074] 1.利用本发明对于用户身份的保密使用产生的棘轮密钥进行加密,减少了相应的计算开销和公钥基础设施PKI问题。
[0075] 2.本发明提供的方法是通过棘轮密钥加密同步失败或者验证失败信息,从而避免了跟踪可能性。
[0076] 3.本发明所提供的方法通过用户设备UE、安全锚功能SEAF、认证服务器功能AUSF、认证凭据存储和处理功能ARPF产生了各自的棘轮密钥,对每个实体进行加密发送信息,保
证了发送信息的机密性,从而保证了发送信息的安全性。
[0077] 4.本发明所提供的方法中通信实体进行相互验证,避免了假冒攻击,保证了通信的安全性。
[0078] 5.本发明所提供的方法每个实体通过棘轮步进产生新的棘轮密钥,发送信息使用新的棘轮密钥进行加密,加强了信息发送的安全保证。
[0079] 6.本发明所提供的方法认证过程中通过棘轮密钥产生会话密钥,可以保证每次认证过程都不同于上一次,从而保证了会话密钥的前向安全性和后向安全性。
[0080] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统
而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说
明即可。
[0081] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据
本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不
应理解为对本发明的限制。