新闻资讯
Group news
江苏宏丰木业有限公司    您的位置: 首页  >  新闻资讯  >  正文

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

2019年11月02日 文章来源:网络整理 热度:170℃ 作者:刘英

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

PRINCE是什么?

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

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

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

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

PRINCE的加密算法和秘钥

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

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

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

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

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

PRINCE启动的四个步骤

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

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

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

使能PRINCE;

编程或者读写Flash。

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

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

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

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

上一篇:中国移动旗下车联网专业公司中移智行与博世在德国签署战略合作协议


下一篇:以色列激光雷达创业公司正在进行新一轮总金额约1亿美元融资

友情链接
Links
鸿运国际官网_鸿运国际备用网址