0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RA8D1加密引擎功能体验和实践

RA生态工作室 2024-11-23 01:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:sx


01 资料准备

01Security Key Management Tool用户手册

RA8D1产品页面https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra8d1-480-mhz-arm-cortex-m85-based-graphics-microcontroller-helium-and-trustzoneDocumentation条目可以找到并下载到《Security Key Management Tool User’s Manual》,文档链接:https://www.renesas.com/en/document/mat/security-key-management-tool-users-manual

wKgZoWdD9ceAZUvgAADHYQCtZyk460.png

02Security Key Management Tool安装程序

阅读文档可知,瑞萨提供的工具名为Security Key Management Tool,可以在官网首页搜索Security Key Management Tool。

wKgZoWdD9ceAE_xYAADCpE8e3vg163.png

进入Security Key Management Tool主页,在Downloads类目可找到:

wKgaoWdD9ceAK2mMAAEUSpEUl8I662.png

为了方便使用,本次使用了Security Key Management Tool V1.07 for Windows,点击链接即可下载。下载完执行安装即可。安装完打开此工具,点击菜单栏“帮助”->关于Security Key Management Tool,在弹出的“帮助-安全密钥管理工具”下找到“打开用户手册”按钮,可以找到第一步所述的用户手册,中文版本 。

wKgZoWdD9ceASqd-AAHMfGt29FQ080.png

wKgaoWdD9ceAaYIhAAKqWfECrE4310.png

03其他文档和链接

3.1Renesas DLM在线服务系统

在Security Key Management Tool生成UFPK(用户工厂烧录密钥)后,界面提示需要登录Renesas密钥封装服务页面:

https://dlm.renesas.com/keywrap/

首次使用需要注册->交换GPG key,具体过程在下一步FAQ中获取的Manual有详细描述,由于是首次使用,在这一步花了些时间。

注册并登录后可以通过FAQ->“Is there a manual of this system?”获取系统使用帮助。

wKgaoWdD9ceAFeUmAADAO7e0_84784.png

具体链接:https: // dlm. renesas. com/ manual/ KeyWrap_ Service_ Operation_ Manual. pdf

3.2基于RA芯片的应用手册《Injecting and Updating Secure User Keys》和示例代码

https://www.renesas.com/en/document/apn/injecting-and-updating-secure-user-keys-ra-family-application-project

wKgZoWdD9ceAcHt3AAFZ6p_bMkE429.png

关于RA系列产品SCE操作模式

https://www.renesas.com/en/document/apn/secure-crypto-engine-operational-modes-application-note#:~:text=The+Secure+Crypto+Engine+9,Compatibility+Mode+and+Protected+Mode.

3.3基于RA芯片的应用手册《Injecting Plaintext User Keys》和示例代码

https://www.renesas.com/en/document/apn/injecting-plaintext-user-keys-application-project?r=25456556

wKgZoWdD9ceABfUuAADksU9p0qg265.png

3.4FSP v5.0.0和FSP v5.5.0

FSP v5.0.0可配合上面2,3小节的Demo,无需更改调试配置;

FSP v5.5.0包含第二节所述例程,默认安装e2studio 2024.07版本会自动安装好FSP v5.5.0,此种情况如果要增加v5.0.0可以下载FSP Pack v5.0.0进行安装。

RA8D1产品页面FSP:

wKgaoWdD9ceAYVEJAAE3WDIr8B4436.png

FSP github路径:

https://github.com/renesas/fsp/releases

wKgaoWdD9ceAQJTYAACAR5MYdOk731.png

4.5RA8D1官方例程

https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra8d1-480-mhz-arm-cortex-m85-based-graphics-microcontroller-helium-and-trustzone?sam_secondary=visible#design_development

wKgZoWdD9ceAZ65yAAEuNPJiAyU673.png

使用这里的示例"mbed_crypto_ek_ra8d1_ep"与所述前“Injecting and Updating Secure User Keys”基本相同。

也即,如前述应用手册对应代码未下载,直接用这个工程也可完成AES密钥封装验证。

02 准备工作

01SKMT生成所需文件

1.1 打开Security Key Management Tool

wKgZoWdD9ceAX1wYAAGakCAXYrs049.png

设置如上图UFPK值和存储路径,点击“生成UFPK密钥文件”。

 DLM官网生成W-UFPK

详细步骤参考文档《Injecting and Updating Secure User Keys》章节:4. Wrapping the User Factory Programming Key Using the Renesas Key Wrap Service

 封装AES密钥

详细步骤参考文档《Injecting and Updating Secure User Keys》章节:6.1 Wrap an AES-128 User Key Using the UFPK for RSIP-E51A Compatibility Mode

wKgaoWdD9ceAPTpoAAI6DRbySew194.png

切换到密钥数据文件选项卡,输入明文密钥:000102030405060708090a0b0c0d0e0f

wKgaoWdD9ciAHg21AAHlmQ9cwPU595.png

1.2DLM官网生成W-UFPK

详细步骤参考文档《Injecting and Updating Secure User Keys》章节:4. Wrapping the User Factory Programming Key Using the Renesas Key Wrap Service。

1.3封装AES密钥

详细步骤参考文档《Injecting and Updating Secure User Keys》章节:6.1 Wrap an AES-128 User Key Using the UFPK for RSIP-E51A Compatibility Mode。

图片

切换到密钥数据文件选项卡,输入明文密钥:000102030405060708090a0b0c0d0e0f。

1.4点击生成文件按钮

生成的封装AES密钥的结构体数据。

const RA8M1_AES128_t g_RA8M1_AES128 = { /* uint32_t keytype; */ 0x00000005, /* uint32_t shared_key_number; */ 0x00000000, /* uint8_t wufpk[32]; */ { 0x6A, 0x7C, 0x31, 0xF9, 0xB8, 0x2E, 0x7B, 0xF5, 0xC5, 0xCE, 0x0F, 0x66, 0x14, 0xCE, 0x63, 0x4C, 0x6A, 0x7C, 0x31, 0xF9, 0xB8, 0x2E, 0x7B, 0xF5, 0xC5, 0xCE, 0x0F, 0x66, 0x14, 0xCE, 0x63, 0x4C }, /* uint8_t initial_vector[16]; */ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }, /* uint8_t encrypted_user_key[ENCRYPTED_KEY_BYTE_SIZE]; */ { 0xFD, 0xE4, 0xFB, 0xAE, 0x4A, 0x09, 0xE0, 0x20, 0xEF, 0xF7, 0x22, 0x96, 0x9F, 0x83, 0x83, 0x2B, 0x7A, 0xDF, 0x8A, 0x36, 0x63, 0xAE, 0x23, 0x54, 0xF5, 0x91, 0xC7, 0x03, 0x1B, 0x8A, 0x52, 0xB0 }, /* uint8_t crc[4]; */ { 0x43, 0x7F, 0x0D, 0x70 }, };

02使用外部AES计算工具计算后续调试过程的明文、IV、密文

百度搜索"AES在线加密"找到一个网页:https://www.lddgo.net/encrypt/aes

wKgZoWdD9ciAYPAaAADzFTwJHrk683.png

除1、2、3、4外其他几项:

 加密模式:CBC

 填充:nopadding

 密码格式、偏移量格式、输入格式、输出格式:hex

点击AES加密选项可知:

明文:

00000000000000000000000000000000

通过密钥:

000102030405060708090a0b0c0d0e0f

加密为:

c6a13b37878f5b826f4f8162a1c8d879

03 调试和结果确认

01 按3所述例程导入工程后生成代码

wKgaoWdD9ciAK1giAAEFpBH_K4M374.png

02将准备工作章节内容替换成我们的测试密钥和测试结果

wKgaoWdD9ciATVwDAAFGdGy4jSg780.png

03编译和调试

wKgaoWdD9ciATVwDAAFGdGy4jSg780.png

这个设置比较重要,未设置正确的话后续程序会HardFault,需使用集成到e2studio IDE的Renesas Device Partition Manager执行设备初始化。

wKgZoWdD9ciAPcLWAADso98bkKw769.png

具体过程:

 选中“Initialize device back to factory default”

 点击Run

 取消选中“Initialize device back to factory default”

 点击Run

 确认打印以下内容:

Current status of the device

DLM state : Original Equipment Manufacturer (OEM)

Protection level (PL) : PL2

Authentication level (AL) : AL2

Secure/NSC memory partition size :

- Code Flash Secure (kB) : 16352

- Data Flash Secure (kB) : 63

END of current status of the device.

wKgZoWdD9ciAaBMeAAMWi5O1VwQ746.png

04跟踪程序或者打开J-Link RTT viewer V7.96观察程序的Trace输出

wKgaoWdD9ciADb2xAAFXVIrlyhw487.png

if语句时进入else表示与我们网页计算结果相同,程序密文如图调试结果显示数组。

wKgZoWdD9ciAEiY2AADHpfjcjQI626.png

04 总结

本次实践完成了RA8D1芯片AES密钥封装和芯片上加解密功能验证,后续可继续RSA、ECC、哈希等功能进行调试验证。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    462

    文章

    53534

    浏览量

    459038
  • 瑞萨
    +关注

    关注

    36

    文章

    22429

    浏览量

    89742
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【CPKCOR-RA8D1】基于CPKCOR-RA8D1的GNSS RTK系统设计

    作为流动站:接收基站RTCM数据,与本地UM982的观测数据融合,通过RA8D1的FPU加速差分算法(或调用UM982内置RTK解算功能,直接获取固定解结果)。 解状态判断:解析UM982的RTK
    发表于 11-09 19:55

    【CPKCOR-RA8D1】基础串口打印测试

    校验位、无流控制​​。 点击“打开”串口,即可看到开发板不断打印出的信息。 ​​测试完毕!​​ 至此,我们成功完成了RA8D1的串口配置与打印测试。这个简单的“Hello World”是嵌入式世界的第一步,也是后续复杂调试和功能开发的基础。
    发表于 10-30 15:23

    【CPKCOR-RA8D1】开发套件全攻略:从硬件解析到摄像头显示Demo实战

    和显示屏模块组成,是一款功能强大的评估平台。其核心MCU RA8D1基于Arm® Cortex®-M85内核,性能强劲,并自带MIPI-DSI显示接口,非常适合人机界面(HMI)和高端嵌入式应用。 套件中
    发表于 10-30 15:13

    【CPKCOR-RA8D1】指纹扫描器

    扩展板的地线 将指纹模块的TX连接至RA8D1的P110(UART1 RX) 将指纹模块的RX连接至RA8D1的P109(UART1 TX) 连接LCD显示屏 : 通过扩展板的50pi
    发表于 10-30 11:38

    【CPKCOR-RA8D1】+ 基础串口打印测试

    “打开”串口,即可看到开发板不断打印出的信息。 ​​测试完毕!​​ 至此,我们成功完成了RA8D1的串口配置与打印测试。这个简单的“Hello World”是嵌入式世界的第一步,也是后续复杂调试和功能开发的基础。
    发表于 10-30 09:40

    【CPKCOR-RA8D1】+ 5. 使用RA8D1实现UDS诊断协议14229

    上一节中,我已经使用RA8D1实现了基于CANFD的DBC协议解析,解释了整车厂的dbc文件。本节来点高端的干货,使用RA8D1实现UDS诊断协议。 终于拿到CANoe了,10多万的仪器,奢侈一下下
    发表于 10-22 18:53

    使用瑞萨RA8D1开发板实现人脸识别的应用演示

    随着科技的进步,人脸识别技术已逐渐成为一种主流的安全验证手段。它不依赖传统的密码,而是通过面部特征识别来验证身份,从而提升了安全性并带来了更大的便利性。本文将介绍如何通过瑞萨RA8D1微控制器与Aizip人脸识别技术结合,实现高效且低功耗的人脸识别应用。
    的头像 发表于 10-14 10:58 3496次阅读
    使用瑞萨<b class='flag-5'>RA8D1</b>开发板实现人脸识别的应用演示

    【CPKCOR-RA8D1】+ 3.RA8D1 测试MCU跑分性能 coremark

    首先,来个美女镇楼吧,最近在健身中!!! 很荣幸收到了瑞萨电子发放的CPKCOR-RA8D1B开发板, RA8D1是瑞萨的Arm® Cortex®-M85 core旗舰版M85处理器,是专门用来跑
    发表于 10-12 17:49

    【CPKCOR-RA8D1RA8D1开箱测试报告

    1.RA8D1核心板 CPKCOR-RA8D1B板上使用224BGA封装的RA8D1 MCU(U1),支持MIPI-DSI显示输出接口。 板上除了实现
    发表于 10-02 17:25

    【CPKCOR-RA8D1】+ 2.串口输出测试

    本章来讲解使用RA8D1的串口功能 打开原理图 可知使用的是串口USART9,对应的引脚是P208和P201 1.打开RAsmart configuration软件进行串口设置 2.选择115200
    发表于 09-24 19:39

    【CPKCOR-RA8D1】+ 1.RA8D1开箱点灯

    看看这款板子,非常的高大上,由核心板和扩展板两块板子组成,这种组合模式非常的便利 包装非常的上档次 可以看出瑞萨RA生态工作是满满的诚意 绝对的巅峰制作 RA8D1是高性能480 MHz Arm
    发表于 09-24 18:55

    【有奖评测 】最强Cortex-M85单片机!RA8D1套件(显示屏+摄像头)免费评测

    瑞萨RA8D1套件测评,带显示屏,带摄像头,支持MIPI-DSI显示输出接口。板上除了实现RA8D1最小系统外,还搭载了实用的外设功能
    的头像 发表于 09-02 08:04 646次阅读
    【有奖评测 】最强Cortex-M85单片机!<b class='flag-5'>RA8D1</b>套件(显示屏+摄像头)免费评测

    瑞萨RA8系列教程 | RA8基于e2s实现RTC实时时钟功能

    本文结合e2 studio开发环境、RA8D1单片机给大家描述RTC这个模块的使用方法。
    的头像 发表于 05-13 17:07 1029次阅读
    瑞萨<b class='flag-5'>RA8</b>系列教程 | <b class='flag-5'>RA8</b>基于e2s实现RTC实时时钟<b class='flag-5'>功能</b>

    基于瑞萨电子RA8D1 MCU的USB和I2S数字音频应用解决方案

    今天给大家介绍一下上海觉鑫智能科技有限公司基于瑞萨电子RA8D1 MCU的USB&I2S数字音频应用解决方案。
    的头像 发表于 04-30 14:47 2470次阅读
    基于瑞萨电子<b class='flag-5'>RA8D1</b> MCU的USB和I2S数字音频应用解决方案

    瑞萨RA8D1单片机IO中断配置实现方法

    本文为结合瑞萨e2 studio工具,以及CPKCOR_RA8D1B评估板,给大家讲述瑞萨RA8D1单片机IO中断配置实现的方法。
    的头像 发表于 04-09 15:05 1517次阅读
    瑞萨<b class='flag-5'>RA8D1</b>单片机IO中断配置实现方法