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

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

3天内不再提示

新技能GET!把你的程序密文存储在芯片内!

UtFs_Zlgmcu7890 来源:杨湘祁 作者:电子发烧友 2019-03-08 14:27 次阅读

一般来说,存储在MCU的程序二进制代码是非经加密的,如果读出来经反汇编,是可以阅读的。如果有一个MCU能将片内存储的二进制程序代码或数据以密文存储,边解密边运行,外部不可见,您是不是很惊喜?

PRINCE是什么?

PRINCE看做是Flash控制器上面的加密引擎,一旦使能,PRINCE就会过滤Flash读写路径的数据,并进行实时加解密。

LPC55S69内部含有640KB Flash空间,PRINCE将其分成3个部分,分别是256KB、256KB、128KB。每个部分加密用的钥匙是单独提供,这可以保证即使一个部分的钥匙被破解了,其他部分依旧安全。

在每个部分里面,PRINCE 又继续细分成更小的空间,每个空间仅仅8KB大小。这样可以让客户使用起来更灵活,可以让第n个8KB空间加密,而第n+1个8KB空间不加密,灵活控制加密区域。

PRINCE的加密算法和秘钥

PRINCE既然是一个数据加密引擎,那么它就有加密算法和秘钥。

PRINCE采用一种对称加密算法,加密块是64位,秘钥是128位。采用CTR模式,需要初始化向量和秘钥。

与另一个对称加密AES加密对比,PRINCE最大的优势是延时极小,不需要额外的RAM空间。不用将数据搬到RAM中加密或者解密完再搬回来。这将给用户带来很大的方便性。

值得关注的是,PRINCE的秘钥是通过片内的PUF模块来产生的。秘钥直接通过硬件总线传输,软件无法访问。掉电之后秘钥自动消失,使用时再操作PUF产生。这种方式下,攻击者很难找到秘钥,更难解密Flash中的密文,从而让数据更加安全。

PRINCE启动的四个步骤

启用PRINCE功能大致有四个步骤:

设置PRINCE加解密的大区域和子区域;

初始化PUF,让PUF产生秘钥和初始化向量给到PRINCE;

使能PRINCE;

编程或者读写Flash。

PRINCE对程序区加密的示例。将一个NXP Logo的图片数据放入程序区,在显示屏上显示数据和图片如下:

加密之后的数据和图片,就是一堆乱码了,如下所示:

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

    关注

    453

    文章

    50378

    浏览量

    421698
  • 程序
    +关注

    关注

    116

    文章

    3773

    浏览量

    80835

原文标题:新技能!把你的程序密文存储在芯片内!

文章出处:【微信号:Zlgmcu7890,微信公众号:周立功单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一文带你了解什么是SD NAND存储芯片

    :   EEPROM存储芯片在1978年就诞生了,在这之前经过了ROM(只读存储器)EPROM(紫外线可擦除存储器)的演化,虽然现在不能成为主流的存储芯片,但是
    发表于 11-13 15:20

    存储芯片有哪些类型

    存储芯片,又称为半导体存储器,是以半导体电路作为存储媒介的存储器,广泛应用于计算机、消费电子、智能终端、固态存储硬盘等领域。按照不同的分类标
    的头像 发表于 07-24 16:40 1889次阅读

    鸿蒙数据防泄漏 DLP Data Loss Prevention Kit简介

    对机密文件进行权限配置,允许拥有只读、编辑、拥有者权限,随后机密文件会通过文存储支持DLP机制的设备上可以通过端云协调进行认证授权,获取对数据的访问和修改的能力。
    的头像 发表于 07-03 20:33 393次阅读
    鸿蒙数据防泄漏 DLP Data Loss Prevention Kit简介

    定时器使用浮点运算的PID控制算法,程序就会重启,为什么?

    定时器使用浮点运算的PID控制算法,程序就会重启,浮点数换为整形数据就不会。
    发表于 06-05 07:24

    计算芯片的基石-存储介质汇总

    作为新的计算架构,存计算(Computing In Memory,CIM)被认为是具有潜力的革命性技术。重点是将存储与计算融合,有效克服冯·诺依曼架构瓶颈,并结合后摩尔时代先进封装、新型存储器件等
    的头像 发表于 05-16 15:41 1694次阅读
    存<b class='flag-5'>内</b>计算<b class='flag-5'>芯片</b>的基石-<b class='flag-5'>存储</b>介质汇总

    计算芯片研究进展及应用

    NOR Flash存计算芯片当中,向量-矩阵乘法运算基于电流/电压的跨导与基尔霍夫定律进行物理实现,如图7(a)所示。因此,其核心是设计NOR Flash单元阵列以满足大规模高能效向量-矩阵乘法
    的头像 发表于 05-16 15:30 1195次阅读
    存<b class='flag-5'>内</b>计算<b class='flag-5'>芯片</b>研究进展及应用

    使用STM32F407芯片堆栈分配到了CCM存储区后出现不能Debug了,为什么?

    最近在使用STM32F407芯片堆栈分配到了CCM存储区后出现不能Debug了,全速运行没有问题,单步运行看的时候每次只要从函数返回的时候就会进入HardFault_Handler。如果
    发表于 05-11 09:03

    存储芯片是什么样存储信息的

    存储信息时,对于动态存储器,行地址首先将RAS锁存于芯片中,然后列地址将CAS锁存于芯片中,当WE有效时,写入数据则被
    的头像 发表于 03-29 15:32 2923次阅读
    <b class='flag-5'>存储芯片</b>是什么样<b class='flag-5'>存储</b>信息的

    什么是存储芯片?有什么作用呢?

    存储芯片是一种用于存储数据的集成电路芯片,也被称为存储芯片
    的头像 发表于 02-29 09:09 3210次阅读

    CysecureTools如何直接访问外部存储设备的密钥呢?

    显然不符合安全标准。 那么,如标题所示,CysecureTools应该如何直接访问外部存储设备的密钥呢?\"
    发表于 01-31 08:08

    汽车嵌入式软件的技能要求

    如果希望开始汽车嵌入式软件领域的职业生涯,必须掌握符合行业需求的全面技能。下面是一个路线图,列出了需要学习的关键技术和技能
    的头像 发表于 01-23 11:09 1554次阅读
    汽车嵌入式软件的<b class='flag-5'>技能</b>要求

    逻辑芯片存储芯片的区别

    逻辑芯片存储芯片是计算机系统中两种不同类型的芯片,它们功能和用途上有着明显的区别。
    的头像 发表于 01-17 18:26 2348次阅读

    单片机芯片怎么写入程序

    单片机芯片程序写入是通过将程序代码写入单片机芯片的非易失性存储器(如Flash)中实现的。
    的头像 发表于 01-05 14:06 7894次阅读

    应用芯片推荐

    LKT4305GM是以32位安全处理器为基础的具有高性能高安全性的国算法加密产品。芯片满足商安全检测标准 GM/T 0008-2012《安全芯片密码检测标准》安全等级第二级。具有高
    的头像 发表于 12-08 16:28 836次阅读

    加密工业路由器 数据安全升级

    加密工业路由器,简称国加密路由器,是指遵循“商用密码管理规范”中规定的国家商用密码算法,采用国加密芯片和密码算法的专业路由器。相比-般路由器,国
    的头像 发表于 11-29 14:07 504次阅读
    国<b class='flag-5'>密</b>加密工业路由器 数据安全升级