微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 片外FLASH如何加密?

CC3200 片外FLASH如何加密?

时间:10-02 整理:3721RD 点击:

TI员工,你好:

                 CC3200现在的程序是放在片外FLASH的,这样我们的程序(bin文件)很容易被读出,然后抄袭,我想问下这个怎么解决呢?

 

                 BR!

ZHANG LIN

据说,片外的flash拷贝后就完成山寨了。片外的flash是CC3100的(cc3200=M4+CC3100),内部通过SPI完成片外FLASH的操作,M4应该是上电后通过CC3100加载bootloader。但是不理解的是,TI很多细节没有描述清楚。

to: mianjiang zhang:

                     是啊,很多没说的太清楚。在TI的文档(编号:(SWRU367B)中有对片内ROM的描述,FLASH不太清楚。
           是否有可以加密的片外串行FLASH呢?
           1.3.2.2 ROM
CC3200 comes with factory programmed zero-wait-state ROM with the following firmware components:
? Device Initialization
? Bootloader
? Peripheral driver library (DriverLib) release for product-specific peripherals and interfaces

SPI flash没有自带加密的都是标准的,市面有加密芯片,实现实时的加密写入和解密输出,价格不菲。提供个思路供你参考:未加密bin->MCU根据每个芯片不同的ID码加密->存入flash->每次开机根据ID码解密已经存在的已加密的bin文件->加载并运行。实现存放的代码不同。直接拷贝内容到ID码不同的芯片是无法使用的。

To:mianjiang zhang ,

            非常感谢你热心的回答。价格贵的加密FLASH估计出于成本考虑我们不会用。

            ID加密的方法:还不清楚你的方法是否可行,但是这是个不错的思路。

            其实我的思路也是差不多的。也是通过ID码加密,但是这个只做认证用,我不太明白的是怎么加密这个BIN文件并加载运行。

             我只是把这个 “算法*ID”的东西放入FLASH中作为认证使用,MCU认证FLASH。

             但是这样的话在生产的时候就会比较麻烦,因为不同的FLASH烧录的BIN文件不同,或者需要自己做工具来生成这个BIN文件。

在启动后先运行一段校验程序就很好解决了.比如说,首次开机上电后等待接收"KEY",可以由服务器发送广播统一的"KEY",接着从机收到同样的"KEY",再根据本身不同的ID码进行运算后保存起来.这样每个Flash的KEY内容就不同了.

未加密bin->MCU根据每个芯片不同的ID码加密->存入flash->每次开机根据ID码解密已经存在的已加密的bin文件->加载并运行。

这种方案很好,但是我是不是要写一段程序用来在开机时解密bin并加载到Ram执行呢?这段程序应该放在哪儿?还有Cc3200是否有中断向量表重映射的API呢?

大家好:

                 CC3200估计TI会出内部带FLASH版本的IC,但是这个外部加密还是不太明白。

                  另外我看到UNIFLASH中在FORMAT时有“Secure”选项。另外在UNIFLASH的 “QUICK GUIDE”网页上也提到了“EFUSE”。

                   我想问: (1)这个“Secure”选项是加密的片外串行FLASH,对吗?

                                    (2)这个"EFUSE"是在片外的flash上吗?

 

                           谢谢。

你说的是对的,但是目前还没有出secure CC3200, 所以这个选项还用不着。

可是这样的话KEY是存在flash里面的,这样的KEY还是有被拿出来的危险啊,没有解决根本问题啊。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top