ACTEL加密
flashlock: flashlock 密钥就是flashlock密码,在软件里面称为PASS KEY,128位,该密码是用来保护芯片被人读写、擦除的。但是可以通过JTAG口读其芯片的ID的。
AES: AES密码也是128位,是用来对代码进行加密的。
安全性中级设定:在安全设定里面有此选项,表示只进行flashlock加密。
安全性高级设定:表示flashlock与AES一起加密。
如果你要进行AES加密,那么就必然会进行flashlock加密。
可以这样说flashlock是用来器件加密,AES是用来对代码加密。
可以这样设想:我如果委托一家编程公司去给我烧写芯片,这样我就必须把芯片和代码给它。但是没有一个厂商真正放心让第三者拥有这些绝密文件。有了flashlock与AES密钥就不一样了。我会先将flashlock与AES密钥下载到空白片子里面,然后将经过AES加密的下载文件一起给它,这样它就没有折了。首先它拥有的这个AES加密文件无法下到任何新的空白芯片中,因为只有拥有flashlock和AES密钥的空白芯片才可以容纳这个加密文件。就算这个AES文件在网络上传输被人截了也没有关系。也许有人疑问既然自己来做将
flashlock与AES密钥下载到空白片子里面,为什么不自己烧写代码呢?主要是如果只下载flashlock与AES密钥这个速度是很快的。
现在有以下问题需要注意:
如果一个芯片进行了FLASHLOCK、AES加密功能,那么只能是带FLASHLOCK、AES加密的文件或者只带FLASHLOCK密钥的文件或者只带AES加密的文件才能下载。如果是只带FLASHLOCK密钥的文件,说明代码没有经过AES加密,所以器件就会跳过AES解密步骤,直接对FPGA进行配置,所以器件仍然可以容纳这个下载文件。但是芯片AES密钥仍然存在,除非你全部擦除芯片。所以一旦AES密码泄露,并且AES文件被人截取,那么就可以去操作空白片子了。
FlashLock密钥类似于PC 上的超级用户密码,AES 类似于用户密码;有了用户密码,就能执行操作,但是有了超级用户密码可以再更改用户密码;当然,在Actel 芯片中,FlashLock密钥也可以重设,如果你知道当前的FlashLock 密钥。
操作流程
-
给空片设置密码
打开FlashPro 新建一个空的工程,按下
切换到“Advanced display mode”(高级显示模式)。

点击PDB configuration 
勾选“security setting” 点击”next”

High:AES KEY + PASS KEY(FLASHLOCK)
Medum:仅有PASS KEY
点击”Finish” 然后烧入即可。
-
生成带密码的烧录文件
这个过程将在designer中完成,首先打开designer,点击“programming file”,便可开始生成烧录文件。
当到达如下界面时:

勾选“security setting”同步骤一的流程相同,它生成的的是带密码的烧录文件。
注意:仅仅是带密码,并没有对文件进行任何加密。可以用来做密码验证。
去掉“security setting”的勾,勾选“programming previously secured device(s)”,点击“next”可进行烧录文件的加密,这次生成的是密文(选择了aes key)。界面如下:


注意:当选择“high”pass key是默认有的,只需填写aes key 完成代码加密即可。只有pass key正确的前提下,才能进行aes key的修改。
12891266177829.doc