tfpwl_lj的个人空间 https://blog.eetop.cn/1638430 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

EMMC RPMB协议 底层算法实现思考

已有 67 次阅读| 2024-12-2 21:49 |系统分类:芯片设计| EMMC, RPMB

EMMC 5.1 https://www.doc88.com/p-33573167852277.html

HMAC-SHA: https://dl.acm.org/doi/pdf/10.17487/RFC4634

SHA: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf

https://www.cnblogs.com/foxclever/p/8593072.html

https://blog.csdn.net/qq_32907491/article/details/131524420

https://blog.csdn.net/Thanksgining/article/details/111315721

https://blog.51cto.com/u_15127595/3381488

https://www.doc88.com/p-4983979995950.html

 

RPMB在EMMC 5.1协议里面主要规定了其帧格式(每一帧512B数据,有效数据为284B),hmac计算使用的算法hmac-sha256. 操作flow主要包括认证密钥编程,该过程须在安全环境下进行,例如生产环境;认证数据读,认证数据写,认证设备读,认证设备写,这五个主要的flow。RPMB空间是以128KB为单位的独立空间,起始地址为0。认证设备读写的地址空间只有2个256B。RPMB支持1帧,2帧,32帧的数据验证。

根据以上信息,是不难设计出RPMB协议所要求的HMAC-SHA算法的。HMAC-SHA算法可以根据协议文档直接写出。但能够使用起来比较顺利的,还需要考虑一下几个问题:

1.如果客户要求支持SM3,则HMAC-SHA256需要内嵌一个SM3算法实现,其实SM3与SHA256非常相似,都是哈希压缩算法的一种,有一点明显的区别在于SM3实现相较与SHA256实现需要多生成4个DW,这在RTL上表现为多用4个cycle时间,当然也可以靠展开的方式抹平这4个cycle的差距,而这需要面积及速度方面的牺牲。

2.对于FW使用友好的支持。由于RPMB对帧数据的要求,加上HMAC-SHA256计算时需要数据的连续存放。针对host发送超过32帧RPMB数据(违法协议)时,如果HMAC-SHA256不支持多帧计算暂停再计算的功能,可能dbuf没那么大连续空间一次把数据存储完毕供HMAC-SHA256计算使用。对于dbuf空间的利用上,FW有一套自己的管理办法。在进行32帧数据计算时,也可能存在没有足够存放数据的连续空间,需要HMAC-SHA256支持计算完一部分帧之后,等FW更新剩余部分数据帧,再开始计算。



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 80

    粉丝
  • 38

    好友
  • 46

    获赞
  • 52

    评论
  • 4372

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-4 05:04 , Processed in 0.013982 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部