TMPI生成

ETSI TS 133 220 V17.4.0 (2023-01) 第44页

FC = 0x01
P0 = gba-me 也就是 十六进制 67 62 61 2d 6d 65 , Ks_NAF 和 Ks_ext_NAF都用这个参数
L0 = P0的长度, 6字节, 也就是 00 06
P1 = RAND
L1 = RAND的长度,16字节, 也就是00 10
P2 = IMPI ,以 UTF-8 编码
L2 = IMPI的长度, 不大于 65535
P3 = BSF_Id , 以 UTF-8 编码
L3 = BSF_Id的长度,小于 65535


BSF_Id 就是生成 B-TID的 BSF 服务器,在DNS系统的完整名称(比如 bsf.mnc002.mcc460.pub.3gppnetwork.org), 同Ua安全协议标识符
01 00 00 01 00 的拼接

Ks就是 CK IK的拼接。
TMPI 就是 TEMP@tmpi.org
其中 TEMP是 KDF输出的最前面的24个字节的 base64编码

python代码如下

s = fc + p0 +l0 + p1 + l1 + p2 + l2 + p3 + l3
k = ck +ik
h = hmac.new(k, digetmod=hashlib.sha256)
h.update(s)
temp = h.diget()[:24]
tmpi = base64.b64encode(temp).decode() + '@tmpi.bsf.3gppnetwork.org'

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注