一、前言
本篇是上一篇《手把手教你:分析安全连接中的配对确认指令》的延续,本篇主要分析配对确认值是如何进行计算的。
二、阅读说明
三、正文
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
四、结尾
本篇主要讲解了配对确认指令的计算公式,下一篇将讲解配对随机数指令。
阅读全文
177