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

手把手教你:分析安全连接中的配对确认值的计算方法

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

一、前言

本篇是上一篇《手把手教你:分析安全连接中的配对确认指令》的延续,本篇主要分析配对确认值是如何进行计算的。

二、阅读说明

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

三、正文

1、基础软件说明本篇文章采用的软件是之前文章里面的修改了MTU大小的软件,上一篇文章链接如下:手把手教你:BLE安全连接-修改MTU的大小

2、配对确认值(Pairing Confirm (Cb))所在的位置

3、配对确认值(Pairing Confirm (Cb))

该配对配对值是由从机发给主机的,在发送之前就已经计算好了数值,计算的方法就在上图中,如下公式:

Cb = f4(PKax, PKbx, Nb, 0)

使用f4算法,传入PKax,PKbx,Nb,0这四个参数就可以得到Cb的值,那么这些参数代表的是什么意思呢,如下解释:

PKax:代表从机的公钥,为256bits。

PKbx:代表主机的公钥,为256bits。

Nb:代表的是从机的随机数,为128bits。

Cb:算法输出的结果,也就是配对确认值,为128bits

知道了上述的值之后,然后更加如下的公式

f4(U, V, X, Z) = AES-CMACX (U || V || Z)

其中X是Nb,U是PKax,V是PKbx,Z是0,然后AES-CMACX算法的消息为U V Z的拼接U为最高位,V在中间,Z在最后面,秘钥为X,按照这个算法算出得到最后的Cb

四、结尾

本篇主要讲解了配对确认指令的计算公式,下一篇将讲解配对随机数指令。

相关推荐