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

一般来说,存储在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的图片数据放入程序区,在显示屏上显示数据和图片如下:
加密之后的数据和图片,就是一堆乱码了,如下所示:

用于移动设备的框架TensorFlow Lite发布重大更新
Poco M3新机规格揭晓:骁龙662芯片组
华为手机出货量有望在未来两年超越苹果和三星
分析面对GPS干扰状况无人机该如何面对
随着科技水平的提高 智能家居市场懒人经济值得挖掘
新技能GET!把你的程序密文存储在芯片内!
[UVLED固化]技术在手机电脑上的主要应用点是什么
华为回应印度税务部门突查
Intel和AMD明年才能拿出支持DDR5内存的平台 三星2021年量产DDR5内存
仪器仪表行业前景如何 2019年中国仪器仪表行业现状分析
Microchip推出基于Arm的新型PIC单片机系列产品
第一颗ALTAIR卫星问世 测试太空3D打印等新技术
工程机械行业的火热带动了下游焊接设备市场的增长
自制书架音箱分享
如何设置51单片机的中断优先级
健身房最新推出的黑科技产品,智能魔镜显示屏
一位程序员的成长经历
如何在其他房间禁用Google Assistant警报
用microbit编程电路板制作语音控制灯
荣耀9什么时候上市?荣耀9最新消息:国产手机大内斗,荣耀9狙击小米6,能阻止安卓机皇吗?