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

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

3天内不再提示

介绍采用瑞萨RA2L1作为专用加解密协处理器的方案

冬至子 来源:dreamcmi 作者:dreamcmi 2023-10-10 14:40 次阅读

0、前言
数据安全在当今系统设计中变得越来越重要,当今数据的加密和验签基本分为了本机和协处理两个方式,本机是最常见也是最简单的加密模式,本机存储秘钥本机验证,协处理就是通过主控芯片+加解密专用芯片的模式,可以更好的增加安全性并且可以使用随机秘钥加强防破解能力。

1、简介
以下介绍的是采用瑞萨RA2L1作为专用加解密协处理器的方案,称它为ANE系统。

本系统的主要作用就是对主控发来的数据进行动态加解密,以实现鉴权和数据解析的效果。因为RA2L1内置了硬件的SEC外设,可以使用硬件计算AES,这大大提高了数据处理速度,更适合加解密环境的需求,并且因为RA2L1是M23内核,功耗相对较低,且为ARMv8系列内核,可以使用芯片自带的trustzone功能提高安全性。

2、过程
调试这套系统还是比较费时间的,所以此次公开项目只是作为一套方案验证,距离批量使用还需要进一步改进。

首先在交互方面,采取了UART+IIC双模式可选,用户可根据主控剩余外设进行选择(公开部分只做了uart)。两种模式采取同样的ATLV格式进行交互,即 Address+TAG+LENSE+VALUE,这样做可以兼容带地址的总线协议,例如IIC。以下是当前规范的一些命令。

1.jpg

在软件调试过程中也是非常曲折的,因为第一次接触瑞萨的MCU,所以花了一段时间去适应图形化配置软件。这里简单说一下遇到的问题吧

UART没有空闲中断,需要使用其他方法实现(比如定时器监控RXI配合ELC实现)
rtt-studio对fsp的适配度有限,比如新加库不会自动include
因为串口打印效率太低,移植了SEGGER-RTT通过SWD打印LOG
瑞萨的某些外设库是存在依赖的,比如SEC依赖了r_sec_ra2,使用的时候要多加注意
现在就来说一下系统运行流程吧

用到的一些rtt特性

RingBuffer

串口接收部分采用了RTT自带的ringbuffer功能来实现数据的接收和保存,环形缓冲区在批量处理数据的时候非常好用,极大的降低了使用难度,以下是一些粗略的代码调用。

static uint8_t uart_ringbuf[32] = {0};
static struct rt_ringbuffer uart_rb;
rt_ringbuffer_init(&uart_rb, uart_ringbuf, 32);
rt_ringbuffer_reset(&uart_rb);
void user_uart0_callback (uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
rt_ringbuffer_putchar(&uart_rb, (const rt_uint8_t )(p_args->data));
break;
}
default:
break;
}
}
rt_size_t num = rt_ringbuffer_get(&uart_rb, buff, uart_rx_len);
rt_kprintf("uart0 ringbuf get size:%dn", num);
MailBox

通过查看API文档发现邮箱是一个更轻量的通知功能实现方式,使用起来也非常简单,在此次项目中担当了串口接收完成通知的任务。以下还是一些粗略的代码。

while (1)
{
if (rt_mb_recv(&uart_mb, &mb_flag, RT_WAITING_FOREVER) == RT_EOK) {
rt_kprintf("uart0 mb recv %d len is %dn", mb_flag, uart_rx_len);
rt_size_t num = rt_ringbuffer_get(&uart_rb, buff, uart_rx_len);
rt_kprintf("uart0 ringbuf get size:%dn", num);
}
void user_uart0_callback (uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
rt_ringbuffer_putchar(&uart_rb, (const rt_uint8_t )(p_args->data));
uart_rx_len++;
if (uart_rx_len == 19) {
if (rt_mb_send(&uart_mb, 0x01) != RT_EOK) {
rt_kprintf("uart0 mailbox send errn");
}
}
break;
}
default:
break;
}
}

3、总结
此次活动粗略的实现了一个简单的加解密协处理功能,可以初步的实现基本功能,但仍有以下问题尚未解决,这里列出来以供参考。

内置秘钥没有混淆,明文存储是非常致命的问题,这里推荐使用matrix编码进行混淆存储。
当前试验机并没有实现DH秘钥交互,使用DH秘钥交互可以为每次会话生成完全随机的秘钥,提高安全性可靠性,当然也可以使用ECDH交互(效率问题不用过于担心,因为秘钥交互只存在于初始化握手),DH推荐使用mbedtls自带库,ECDH推荐使用tiny-ECDH-c.
没有完全实现串口空闲中断,后续需要调试GPT来实现
代码体积还需要优化.

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

    关注

    23

    文章

    3184

    浏览量

    112700
  • 协处理器
    +关注

    关注

    0

    文章

    71

    浏览量

    18036
  • UART接口
    +关注

    关注

    0

    文章

    124

    浏览量

    15119
  • ARMv8
    +关注

    关注

    1

    文章

    35

    浏览量

    14081
  • RTThread
    +关注

    关注

    7

    文章

    130

    浏览量

    40588
收藏 人收藏

    评论

    相关推荐

    RA2系列开发板体验】初识RA2L1开发板

    至 5.5V 的宽电压工作。 在RA2L1内,配有增强型电容式触摸感应单元 (CTSU2)、串行通信接口、高精度模拟电路和定时等。该开发板的外观如图1和图
    发表于 11-29 10:06

    RA2系列开发板体验】开箱+环境搭建

    RA2L1 产品组基于 Arm® Cortex®-M23 核心(现今 Arm® Cortex-M 系列中功耗最低的 CPU)。 这款产品采用优化的制程和电子的低功耗工艺技术,是业界
    发表于 12-01 11:30

    RA2系列开发板体验】RA2L1试用笔记

    前言  早听说过这个芯片品牌,好像是电赛的赞助商。有机会申请到了RA2L1 的开发板试用,因为工作上会用到CAN通信所以专门选了带CAN通信接口的那款开发板。一、初步印象毕竟是大厂的产品,每个
    发表于 12-14 15:15

    RA2系列开发板体验】开箱体验-Hg

    的 CPU)。 这款产品采用优化的制程和电子的低功耗工艺技术,是业界一流水平的超低功耗微控制RA2L1 产品组能够支持 1.6V
    发表于 12-21 01:04

    RA2系列开发板体验】基于Keil MDK环境搭建及最快上手例程

    一、开发板简介RA2L1 基于 Arm® Cortex®-M23 核心(现今 Arm® Cortex-M 系列中功耗最低的 CPU)。 这款产品采用优化的制程和电子的低功耗工艺技术
    发表于 12-23 22:15

    RA2系列开发板体验】测评RA2L1电容式触摸

    RA2L1 MCU产品群关键特性:48MHz Arm Cortex-M23 CPU内核支持1.6V-5.5V宽范围工作电压超低功耗,提供64μA/MHz工作电流和250nA软件待机电流,快速唤醒时间
    发表于 12-27 23:24

    RA2系列开发板体验】+RA2AL开发板试用笔记

    前言  早听说过这个芯片品牌,好像是电赛的赞助商。有机会申请到了RA2L1 的开发板试用,因为工作上会用到CAN通信所以专门选了带CAN通信接口的那款开发板。一、初步印象毕竟是大厂的产品,每个
    发表于 12-28 13:19

    Renesas RA2L1开发板之I2C测评

    1、Renesas RA2L1开发板之I2C  开发板介绍  CPK-RA2L1评估板是一款专门针对中国本地的开发板,主MCU是一款主频为4
    发表于 10-24 16:29

    Renesas RA2L1开发板之CAN介绍

    1、Renesas RA2L1开发板之CAN介绍  功能模块的硬件介绍  CPK-RA2L1评估板是一款专门针对中国本地的开发板,主MCU是
    发表于 11-01 11:46

    Renesas RA2L1开发板之PWM方波配置相关资料推荐

    1、Renesas RA2L1开发板之PWM方波配置  工程的配置  时钟的配置  本次直接基于官方的例程进行开发,使用RA Con
    发表于 11-02 15:31

    Renesas RA2L1开发板之I2C接口评测

    1、Renesas RA2L1 开发板之 I2C  开发板介绍  CPK-RA2L1评估板是一款专门针对中国本地的开发板,主MCU是一款主频
    发表于 11-04 14:26

    RA4系列开发板体验】+ 3种开发板的比较

    键和确认键。如果既使用触摸键又使用机械键难免整体上看上去有些不伦不类。图1RA-Eco-RA4M2-100PIN图2R7FA2L1AB2DFL就这点来讲,无疑 CPK-
    发表于 12-09 22:39

    RA2L1结合红外传感控制不同的LED灯

      授人以鱼不如授人以渔,我们今天就来说一下 RA2L1结合红外传感控制不同的LED灯。  主角介绍完毕就是配角出场,就是我们这个既简
    发表于 04-03 16:50

    基于RA2L1开发板的初识点灯

      1. 开发板  2. 开发板介绍  RA2L1产品组属于48MHz Arm® Corte
    发表于 04-03 16:55

    RA2L1 ANE加解密处理系统简介

    芯片的模式,可以更好的增加安全性并且可以使用随机秘钥加强防破解能力。  1、简介  以下介绍的是采用
    发表于 04-03 17:28