5G安全系列加解密+完整性保护安全算法测试cases

Posted 从善若水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5G安全系列加解密+完整性保护安全算法测试cases相关的知识,希望对你有一定的参考价值。

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解

5G安全算法测试case


NEA1 / EEA1算法测试case

    输入参数:

  • Key = (hex) EF A8 B2 22 9E 72 0C 2A 7C 36 EA 55 E9 60 56 95
  • Count = (hex) E28BCF7B
  • Bearer = (hex) 18
  • Direction = (hex) 0
  • Length = 510 bits
  • Plaintext = (hex) 10111231 E060253A 43FD3F57 E37607AB 2827B599 B6B1BBDA 37A8ABCC 5A8C550D 1BFB2F49 4624FB50 367FA36C E3BC68F1 1CF93B15 10376B02 130F812A 9FA169D8

    输出参数:

  • Ciphertext = (hex) E0DA15CA 8E2554F5 E56C9468 DC6C7C12 9C568AA5 032317E0 4E072964 6CABEFA6 89864C41 0F24F919 E61E3DFD FAD77E56 0DB0A9CD 36C34AE4 181490B2 9F5FA2FC

NEA2 / EEA2算法测试case

    输入参数:

  • Key = (hex) d3c5d592 327fb11c 4035c668 0af8c6d1
  • Count = (hex) 398a59b4
  • Bearer = (hex) 15
  • Direction = (hex) 1
  • Length = 253 bits
  • Plaintext = (hex) 981ba682 4c1bfb1a b4854720 29b71d80 8ce33e2c c3c0b5fc 1f3de8a6 dc66b1f0

    输出参数:

  • Ciphertext = (hex) e9fed8a6 3d155304 d71df20b f3e82214 b20ed7da d2f233dc 3c22d7bd eeed8e78

NEA3 / EEA3算法测试case

    输入参数:

  • Key = (hex) 17 3d 14 ba 50 03 73 1d 7a 60 04 94 70 f0 0a 29
  • Count = (hex) 66035492
  • Bearer = (hex) f
  • Direction = (hex) 0
  • Length = 193 bits
  • Plaintext: (hex) 6cf65340 735552ab 0c9752fa 6f9025fe 0bd675d9 005875b2 00000000

    输出参数:

  • Ciphertext: (hex) a6c85fc6 6afb8533 aafc2518 dfe78494 0ee1e4b0 30238cc8 00000000

NIA1 / EIA1算法测试case

    输入参数:

  • IK = (hex) 2bd6459f 82c5b300 952c4910 4881ff48
  • Count-I = (hex) 38a6f056
  • Bearer = (hex) 1f
  • Direction = (hex) 0
  • Message = (hex) 33323462 63393861 37347900 00000000
  • Length = 88 bits

    输出参数:

  • MACT = (hex) 731f1165

NIA2 / EIA2算法测试case

    输入参数:

  • IK = (hex) 84be6ebc 300b8430 3329bddd 12c6e1e5
  • Count-I = (hex) 0
  • Bearer = (hex) 1
  • Direction = (hex) 1
  • Message = (hex) 00 7E005D02 0002F070 E1360102
  • Length = 104 bits

    输出参数:

  • MACT = (hex) 43f41790

NIA3 / EIA3算法测试case

    case1 输入参数:

  • Key = (hex) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  • Count = (hex) 0
  • Bearer = (hex) 0
  • Direction = (hex) 0
  • Length = 1 bits
  • Message = (hex) 00000000

    case1 输出参数:

  • MAC = (hex) c8a9595e

    case2 输入参数:

  • Key = (hex) c9 e6 ce c4 60 7c 72 db 00 0a ef a8 83 85 ab 0a
  • Count = (hex) a94059da
  • Bearer = (hex) a
  • Direction = (hex) 1
  • Length = 577 bits
  • Message = (hex) 983b41d4 7d780c9e 1ad11d7e b70391b1 de0b35da 2dc62f83 e7b78d63 06ca0ea0 7e941b7b e91348f9 fcb170e2 217fecd9 7f9f68ad b16e5d7d 21e569d2 80ed775c ebde3f40 93c53881 00000000

    case2 输出参数:

  • MAC = (hex) fae8ff0b

KRRCenc算法测试case

RRCenc 、NASenc、UPenc的衍生使用的是同一个算法,所以这里只给出了一个测试case。

    输入参数:

  • Algorithm = 0(对应算法nea0)
  • Kgnb = (hex)E67845C9 8DCD7297 8E5EB6DD 6523F20F 9F3BB963 275D0745 37E8E0BB B99ADDB7

    输出参数:

  • KRRCenc = (hex)617DD9BC 84ECA1B5 A14A0DB5 EE33736B

KRRCint算法测试case

RRCint 、NASint、UPint的衍生使用的是同一个算法,所以这里只给出了一个测试case。

    输入参数:

  • Algorithm = 2 (对应算法nia2)
  • Kgnb = (hex)E67845C9 8DCD7297 8E5EB6DD 6523F20F 9F3BB963 275D0745 37E8E0BB B99ADDB7

    输出参数:

  • KRRCint = (hex)F937E5AB 0228D92D 894910ED 333EDECB

CK’ IK’ 算法测试case

    输入参数:

  • Server name = “WLAN”
  • Server name length = 4
  • CK = (hex)5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f
  • IK = (hex)9744 871a d32b f9bb d1dd 5ce5 4e3e 2e5a
  • AUTN = (hex)bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5

    输出参数:

  • CK’ = (hex)0093 962d 0dd8 4aa5 684b 045c 9edf fa04
  • IK’ = (hex)ccfc 230c a74f cc96 c0a5 d611 64f5 a76c

EMSK 算法测试case

    输入参数:

  • Identity = “0555444333222111”
  • CK’ = (hex)0093 962d 0dd8 4aa5 684b 045c 9edf fa04
  • IK’ = (hex)ccfc 230c a74f cc96 c0a5 d611 64f5 a76c

    输出参数:

  • EMSK = (hex)f861 703c d775 590e 16c7 679e a387 4ada 8663 11de 2907 64d7 60cf 76df 647e a01c 313f 6992 4bdd 7650 ca9b ac14 1ea0 75c4 ef9e 8029 c0e2 90cd bad5 638b 63bc 23fb

Kgnb 算法测试case

关于 Kausf、Kseaf、Kgnb*、Kamf、NH 密钥的衍生,与Kgnb使用的是相同的算法,所以只给出一个测试case。

    输入参数:

  • Kamf = (hex)856ab69a 2a195d9e 87ec15e9 c5c022bb f72d4aa3 65367cf4 2a3013be 1f4a29ca
  • nas_ul_count = 0
  • key_type = 0(对应 N_3GPP_ACCSESS)

    输出参数:

  • Kgnb = (hex)D293B8F0 512412DF D23B8DE7 4A2FFF30 982DE530 3585AF06 0F5487DD B352DA42

《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安全系列加解密+完整性保护安全算法测试cases的主要内容,如果未能解决你的问题,请参考以下文章

5G安全系列AS层PDCP完整性保护与加密流程

5G安全系列AS层PDCP完整性保护与加密流程

5G/4G加/解密+完整性保护/校验算法源码详解

5G/4G加/解密+完整性保护/校验算法源码详解

网络安全加解密算法最详解

信管1.15安全加解密技术