5G核心网学习平台
精华帖 #05

5G-NAS信令消息解密过程实现

来自知识星球

5G-NAS信令消息解密过程实现

一 NAS加密过程简述

NAS加密过程需要的主要有两项内容,分别是密钥和加密算法的选择。在获 得密钥后进行密钥推演,从

基础密钥最终获得加密密钥。将加密密钥Key、NAS 上下行NAS信令的计数器Count、承载ID

(Bearer)、NAS信令的传输方向Direction和NAS信令明文的长度Length作为加密算法的输入参数,使

用UE和核 心网协商一致的加密算法进行计算,得到密钥流(KeyStreamBlock)。最后将二进 制的明文

与密钥流进行异或运算,获得加密后的NAS密文。具体加密流程如下图。

二 NAS解密参数获取

NAS解密过程是加密过程的逆过程,根据前文对NAS加密过程可知,要解密 NAS信令,只需要将密文与

密钥流进行异或操作,就可以得到明文。密钥流的获 取是关键所在,密钥流获取过程和加密过程的密钥

流获取过程一致,因此解密时 需要获得以下参数:

1)Count:上下行NAS信令的计数,由每一条NAS信令的Sequennce Number 字段获取;

2)Bearer:承载ID,解密时一般取值为0;

3)Direction:NAS信令传输方向,可以从携带该NAS信令的NGAP信令中 获取;

4)Length:NAS信令的长度,携带该NAS信令的NGAP信令的NAS信元 (IE_L)字段获取;

5)KEY:即密钥KN ASsenc ,从UE初始注册过程中,Security Mode Command 消息中获得加密密钥和

加密算法。

三 NAS解密流程

NAS解密流程如图所示。

Step1:读入NAS信令队列,为解密会用到的参数建立数值,为解密结果分 配存储空间;

Step2:在UE初始注册流程中获得密钥和加密算法,根据3GPP规定的算法 推衍出加密密钥KN ASsenc

Step3:从携带NAS信元的NGAP信令中获得所需参数Direction、Length;

Step4:解析获得安全头类型,对安全头类型数值进行判断。若“安全头类型” =1、3,则当前NAS信令未

加密,无需解密可直接获得明文;若“安全头类型” =2、4,则当前NAS信令进行了加密,解析获得序列号

字段,然后计算得到Count 参数,进入Step4。

Step5:将获得的各个参数输入加密算法中进行运算,获得密钥流。

Step6:将密钥流与NAS密文进行异或运算,获得明文。

返回精华帖列表