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

手把手教你:分析安全连接中的长期密钥(LTK)算法

08/07 08:24
254
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇是介绍安全连接中的配对随机值(Pairing Random)。

二、阅读说明

1、泰凌微芯片使用者。

2、蓝牙 spec学习者

三、正文

1、长期密钥计算流程图

如上图所示,主机和从机分别进行计算长期密钥LTK

2、长期密钥(LTK)的计算公式框图

上图红框所示,为长期密钥的计算公式,其中使用f5算法,将DHKey,Na,Nb,A,B带入进来,然后计算得到的低16字节为LTK,高16字节为MacKey。

3、f5算法解析

f5函数所使用的是AES-CMACt通过带入128-bit key T来进行计算,其中输入的参数为W,N1,N2,A1,A2这几个值。首先我们需要通过AES-CMACsalt,来计算出key T,带入的参数为W,其中W的值为DHKey,也就是使用ECDH计算出来的共享密钥,如下图所示:

之后使用AES-CAMCt来计算长期密钥LTK。通过如下的公式来进行计算

可以看到上述的AES-CMACt进行了两次计算,其中一次计算的是MacKey,第二次计算的是LTK。其中LTK是低16字节,MacKey是高16字节,蓝牙spec中的描述如下图所示:

关于N1,N2,A1,A2的解释如下可参考下图

    N1:N_master,主机产生的随机数N2:N_slave,从机产生的随机数A1:BD_ADDR_master,主机的MAC地址A2:BD_ADDR_slave,从机的MAC地址

四、结尾

本篇主要介绍了安全连接中长期密钥如何进行生成,下一篇将继续讲解剩下的过程。

相关推荐