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 密钥。

 

 

 

操作流程

  1. 给空片设置密码

打开FlashPro 新建一个空的工程,按下 切换到“Advanced display mode”(高级显示模式)。

    

点击PDB configuration

勾选“security setting”   点击”next”

 

    High:AES KEY + PASS KEY(FLASHLOCK)

    Medum:仅有PASS KEY

 

    点击”Finish” 然后烧入即可。

 

  1. 生成带密码的烧录文件

这个过程将在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