【5G/4G】加/解密+完整性保护/校验算法源码详解
文章目錄
- 加/解密+完整性保護/校驗算法源碼詳解
- 一、加解密算法
- 二、完整性保護/校驗算法
本人就職于國際知名終端廠商,負責modem芯片研發。
在5G早期負責終端數據業務層、核心網相關的開發工作,目前牽頭6G算力網絡技術標準研究。
博客內容主要圍繞:
???????5G協議講解
???????算力網絡講解(云計算,邊緣計算,端計算)
???????高級C語言講解
???????Rust語言講解
加/解密+完整性保護/校驗算法源碼詳解
????????本系列將給出4G 、5G加解密以及完整性保護算法的源碼,供各位參考。
這些算法既在AS層數據轉發中使用,也在NAS層信令流程中使用
一、加解密算法
- 4G的加解密算法128-EEA1與5G的加解密算法128-NEA1都是基于 Snow 3G;
- 4G的加解密算法128-EEA2與5G的加解密算法128-NEA2都是基于 128-bit AES;
- 4G的加解密算法128-EEA3與5G的加解密算法128-NEA3都是基于 ZUC(祖沖之算法);
上述三類算法的入參都是一樣的,如下圖:
算法根據輸入參數生成輸出密鑰流塊keystream, keystream用于對輸入的明文塊plaintext進行加密,生成輸出的密文塊ciphertext。
每個參數的含義需要根據具體的應用場景確定,感興趣的可以關注我后續關于NAS與AS層安全的文章,它們的大致含義如下:
- COUNT 是一個計數值,每次加/解密一次就加一;
- BEARER是承載id;
- DIRECTION是方向flag,標識上行還是下行;
- LENGTH是keystream的長度;
- KEY是密鑰;
二、完整性保護/校驗算法
- 4G的加解密算法128-EIA1與5G的加解密算法128-NIA1都是基于 Snow 3G;
- 4G的加解密算法128-EIA2與5G的加解密算法128-NIA2都是基于 128-bit AES;
- 4G的加解密算法128-EIA3與5G的加解密算法128-NIA3都是基于 ZUC(祖沖之算法);
上述三類算法的入參都是一樣的,如下圖:
發送端根據這些輸入參數使用完整性算法NIA計算一個32位的消息認證碼(MAC-I/NAS-MAC)。然后在發送時將消息身份驗證代碼附加到消息。完整性保護算法,接收方計算預期的消息身份驗證代碼(XMAC-I / XNAS-MAC)消息收到相同的方式發送方計算其消息身份驗證代碼在消息發送和數據完整性的驗證消息通過比較接收到的消息驗證碼,即MAC-I / NAS-MAC。
每個參數的含義需要根據具體的應用場景確定,感興趣的可以關注我后續關于NAS與AS層安全的文章,它們的大致含義如下:
- COUNT 是一個計數值,每次完整性保護/校驗一次就加一;
- BEARER是承載id;
- DIRECTION是方向flag,標識上行還是下行;
- MESSAGE是完整性保護/校驗的消息體;
- LENGTH是完整性保護/校驗消息的二進制長度;
- KEY是密鑰;
《Snow 3G算法源碼介紹》
《128-bit AES算法源碼介紹》
《ZUC算法源碼介紹》
【5G/4G】128-EEA1與128-NEA1算法詳解
【5G/4G】128-EEA2與128-NEA2算法詳解
【5G/4G】128-EEA3與128-NEA3算法詳解
【5G/4G】128-EIA1與128-NIA1算法詳解
【5G/4G】128-EIA2與128-NIA2算法詳解
【5G/4G】128-EIA3與128-NIA3算法詳解
總結
以上是生活随笔為你收集整理的【5G/4G】加/解密+完整性保护/校验算法源码详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA常用插件Top18
- 下一篇: oracle去重离子,oracle去重