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的图片数据放入程序区,在显示屏上显示数据和图片如下:

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

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

    关注

    447

    文章

    47788

    浏览量

    409104
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79540

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    什么是SD NAND存储芯片?

    前言   大家好,我们一般STM32项目开发中或者在其他嵌入式开发中,经常会用到存储芯片存储数据。今天我和大家来介绍一款存储芯片,我这里采用(雷龙) CS创世 SD NAND 。
    发表于 01-05 17:54

    HTTP 中GET 和 POST 的区别

    一、概述 HTTP 的请求报文 GET 方法的特点 POST 方法的特点 GET 和 POST 的区别 二、HTTP 的请求报文 首先我们要解决的第一个问题是:GET 和 POST 是什么?
    的头像 发表于 11-11 14:40 593次阅读
    HTTP 中<b class='flag-5'>GET</b> 和 POST 的区别

    音圈电机加持的无人机测绘技能竞赛

    音圈电机加持的无人机测绘技能竞赛。当前,随着科技不断升级,测绘地理信息工作迎来转型升级新阶段。为了加快培养和选拔适应我省测绘高素质技能人才,激励更多的测绘从业人员立足本职,钻研新技术、掌握新技能
    的头像 发表于 11-09 10:18 139次阅读

    stc51单片机程序存储区不够用,可否程序存储区写一个bootloader,用户程序放入自身的EEPROM?

    stc51单片机程序存储区不够用,可否程序存储区写一个bootloader,用户程序放入自身的
    发表于 11-09 07:09

    收官!2023年爱立信创新技能大赛获奖名单公布

    近日,由爱立信工会和公司业务部门联合举办的“2023年爱立信创新技能大赛”,在爱立信北京园区圆满落幕~ 爱立信的“同学们”踊跃参与本次大赛:来自20多个业务部门的247位员工,成功组建了68支参赛队
    的头像 发表于 09-19 21:30 557次阅读
    收官!2023年爱立信创<b class='flag-5'>新技能</b>大赛获奖名单公布

    HTTP中GET与POST的区别是什么?

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。
    发表于 08-05 12:21 364次阅读

    如何打通机器学习的“三大玄关”,你该这样Get新技能

    随着时下智能时代的发展,机器学习已成为不少专业人士的“必备技能”。尽管如此,可它在实用性上仍然存在一些问题。因而设计师们采取了架构精简、压缩、以及硬件加速等三种途径。都有啥特点呢?请往下看~精简架构
    的头像 发表于 08-05 08:31 423次阅读
    如何打通机器学习的“三大玄关”,你该这样<b class='flag-5'>Get</b><b class='flag-5'>新技能</b>!

    存储主控芯片是什么 主控芯片存储芯片怎么选

    存储主控芯片是一种集成电路芯片,用于控制和管理存储设备。它负责管理多个存储单元(如内存、固态硬盘、闪存卡等)之间的数据传输和存取操作。
    发表于 07-10 15:50 3153次阅读

    如何让程序存储在指定的偏移地址呢?

    有时候,我们不想让程序存储在起始的位置,比如现在有一段bootloader,对应的app(应用程序存储的位置就会有一个偏移地址。那么,如何让程序
    发表于 07-10 10:38 603次阅读
    如何让<b class='flag-5'>程序</b><b class='flag-5'>存储</b>在指定的偏移地址呢?

    车载存储芯片介绍

    存储芯片,也叫存储器,是用来存储程序和各种数据信息的记忆部件。
    发表于 06-09 11:05 1077次阅读
    车载<b class='flag-5'>存储芯片</b>介绍

    OB1编写程序。 #来快手教技能#硬声创作季

    硬件程序
    或许
    发布于 :2023年05月30日 18:17:00

    芯片测试需要什么技能?

    一 针对芯片测试这个领域,需要掌握以下技能
    的头像 发表于 05-23 11:12 1278次阅读