• 正文
  • 相关推荐
申请入驻 产业图谱

手把手教你:分析安全连接中的链接层LL_ENC_REQ指令

23小时前
126
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

上一篇介绍了链接层的加密流程,本篇将介绍链接层的第一条指令LL_ENC_REQ。备注:此过程属于配对第二阶段。

二、阅读说明

1、泰凌微芯片使用者。2、蓝牙 spec学习者

三、正文

1、LL_ENC_REQ指令的位置

2、LL_ENC_REQ在蓝牙 spec中的解释

    Rand:64 bitsEDIV:16 bitsSKDm:主机的会话密钥分散因子IVm:主机的初始化向量

3、空中LL_ENC_REQ数据包

    Rand:0EDIV:0SKDm:2433915225196834084IVm:2919232755

因为当前属于第一次配对的加密流程,所以Rand和EDIV都为0,而SKDm是用来产生会话密钥的,需要和结合SKDs相结合,这个SKDs是在从机的LL_ENC_RSP指令中的,当两则结合之后需要和LTK使用AES-CCM来产生会话密钥,而会话密钥则是用来加密数据和解密数据的。
SKD生成方法:

会话密钥生成方法:

图中的encryption 是  AES128算法,如下公式:

SK = e(STK,SKD)

备注:大家关于SKD这块和SK的计算方法详细的可以参考如下的文章:手把手教你:解析 BLE 链路层 LL_ENC 指令与会话密钥生成原理

四、结尾

本篇讲解了配对第二阶段LL_ENC_REQ指令,并介绍了里面相关的字段的函数,下一篇将介绍第从机回复指令LL_ENC_RSP。

相关推荐