LTE PDCP EEA 和 EIA 算法 实现应注意的问题

这几天一直在调试LTE 空口 PDCP 的安全相关功能,我采用的是软件实现,代码是网上的开源代码。  通过33.401 后面测试样本数据的测试后,我就开始上板测试,

但eNB发下去的 Security Mode Command ,UE就一直回复 Security Mode Failure,  从UE的log 里已经能看到 用的 密钥是一样的,一直找不到原因。 后来另外一位同事,提醒我rbId 使用的对不对。  之前我一直理解那个 rbId就是 SRB1  的 rbId = 1;但后来从36.323 PDCP 的5.7小节有这样的描述:

BEARER (defined asthe radio bearer identifier in [6]. It will use the value RB identity –1 as in[3]);,  参考3 就是 36.331 RRC协议。

这里的关键就是那个 RB identity -1, 我一直理解那是个破折号,起到解释说明的作用,但其实那是一个减号。     (后来想想,SRB2的rbId就为2了,说明那一定不是破折号) 

之后把rbId 减1 后输入 EIA 算法就正确了,UE 回复 了 Security Mode Complete!     我还是想抱怨协议编写者,为什么不写成单词 minus 1 呢?




为了,能让更多的人不犯这个错误,我再用英文描述一遍这个问题,便于技术人员搜索。

In LTE ,the AS Security function(SMC) was implemented in PDCP,some crucial issues should be taking care of !

EIA algorythm have several parameters, one of them is Bearer.     i always thought that the Bearer should be the rbId of SRB1 = 1; but ,in 36.323 section 7.5,said:

BEARER (defined asthe radio bearer identifier in [6]. It will use the value RB identity –1 as in[3]);

the character "-" in the last was not a  dash,it's an operator minus, the radio bearer identity should  minus one first before  put it  into the EIA or EEA algotythm.

Furthermore ,you should test your code using the test data in the appendix of 33.401 , and good luck !



你可能感兴趣的:(无线通信)