RT600之master key

上一篇我们讲到了PUF,PUF的目的是为了让key更加安全。
RT600除了支持PUF外,还推出了master key的方案。简单来说,就是对存储到固定地址的key,进行AES的加密运算,经过运算后的key才能解密数据。实质上就是对key的再加密,hake即便获取了存储的key,但是无法知晓key的加密运算法则,因此无法解密数据。

几种key的处理:

  • HMAC SHA256 key128
    存储在fuse中的master key经过如下的算法,得到的key对image header计算得到HMAC.
    AES256(MASTERKEY256, 00000000_00000000_00000000_00000000)
  • Encrypted boot image key256:
    maser key经过如下的算法,得到的key用于image的加解密
    AES256(MASTERKEY256, 01000000_00000000_00000000_00000000_02000000_00000000_00000000_00000000)
  • SB2 KEK key or FW update Key
    master key经过如下的运算,用于SB的加解密
    AES256(MASTERKEY256,03000000_00000000_00000000_00000000_04000000_00000000_00000000_00000000)
  • OTFAD KEK128(supports both per device AES key and pre shared AES key)
    OTFAD key 跟 master经过如下算法,得到OTFAD kek,用于key blob的解密
    AES256 ENCRYPT(MASTERKEY256, OTFAD_key[127:0] fuse);
原文地址:https://www.cnblogs.com/richard-xiong/p/9908863.html