请教:怎样对fpga设计进行加密?

[复制链接]
楼主: 钻研的鱼
手机看帖
扫描二维码
随时随地手机跟帖
hjjnet| | 2011-2-22 00:55 | 显示全部楼层
关于Xilinx FPGA 加密的方案:
FPGA 设计的安全性主要通过下面几个方法实现:附件里面WP266和WP267讲了这些。
1. On-Chip Flash Memory and Hidden Bitstream in Spartan-3AN FPGAs
2. Configuration Security: choose BGA or CS package
3. Bitstream Generator Security Levels:
4. Active Defense (JTAG boundary scan)
5. Bitstream Validation (Cyclic Redundancy Checking (CRC))
6. Advanced Data Manipulation 7. Device DNA Security
8. 使用Microblaze做一个小CPU在FPGA内部,实现任何你想加密算法(AES.DES 等),控制FPGA逻辑。这个方案就非常灵活了,这个我们可能需要详细讨论一下了。

另外,Xilinx的DNA 是非常好的一个东西,应用也非常灵活,我这边也有相关的专题。有兴趣的,可以联系我。

wp266_Security Solutions Using Spartan-3 Generation FPGAs.pdf

223.9 KB

wp267_Advanced Security Schemes for Spartan-3A3AN3A DSP FPGAs.pdf

169.37 KB

使用特权

评论回复
钻研的鱼|  楼主 | 2011-2-22 09:50 | 显示全部楼层
1、cpld的加解密:根据楼上的讨论,可以用显微镜开核**,不知道这个成本有多高?如果这个**成本较高,在一般的设计中可以采用这种方案
2、电池来保存密码。这个局限性有点大,电池总有用完的时候。电池没电的时候,密码保护失效还是整个程序失效?我想不是前者,整个程序失效,
如果加上电池,加密是否继续起到保护作用?或者电池掉电,即使再加电池也没用,只能返厂维修,这个对于厂家或者是客户,在电池没电的时候可能都有点麻烦。
3、使用内部DNA,通过特殊的加密算法,生成一个KEY,烧写到flash。我觉得这个方法比较可行,关键是每个器件有自己的DNA,同时加密算法容易实行,但解密困难。
能不能推荐这样的算法?
    xilinx的器件,一些有DNA,很多没有,有没有专门的文档介绍这个?altera是否有类似的文档?

使用特权

评论回复
linqing171| | 2011-2-23 07:35 | 显示全部楼层
1 成本取决于**的方法. 如果要用离子注入机,取决于工艺. 如果直接软件就能读取外部的Flash,不值钱.
2 要用内部的Flash,不要用RAM来存密码,可靠性差,方案不可取.
3 很久不用FPGA了,不清楚,DNA是否和ST的ID一样?

使用特权

评论回复
Arwei| | 2011-2-23 17:13 | 显示全部楼层
XILINX的SPART3AN系列 实际是双代工,里面有FPGA核 同时有个ATMEL的存储器,仅此而已。
ACTEL的FPGA据说保密性不错。最有保证的我认为还是反融丝,现在在军用和航空上大量用反容丝,主要是可靠行强。
对于没有加密保证的FPGA芯片,可以用外部芯片的保密性保证FPGA不被拷贝。比方说整个加密芯片,和FPGA在工作时候不断对话,如果这个加密芯片不存在或是对话出错就关闭FPGA。
这样的外部加密芯片还是很多的,比方有I2C接口的DM2016,以及半双工UART口的H88S系列,具体大家可以搜索一下。
这样实际就把赌注压在了加密芯片上了。这个方法有一定作用。
那种所谓全球唯一ID芯片单纯是起不到加密效果的:抄子的人有一定技术势力,完全可以在外部模拟出来。蒙骗FPGA。
另外ALTERA工提供了一种方法,和我上面的说方法基本类似,就是用CPLD做外部对话加密。他们想法在我们国人看来太幼稚了。呵呵。
设计加密方案也要讲度,要是保密强度本身就没有必要很高,自己却严格要求为难自己,那就没有多大意思了。

--------------------------------------------------------------------------------------------------
48元 超高性价比 月销量超200件 SALEAE 24M 8CH 逻辑分析仪  
http://item.taobao.com/item.htm?id=8430104015

使用特权

评论回复
0中国芯0| | 2011-2-23 17:30 | 显示全部楼层
9楼是高人啊,酷

使用特权

评论回复
yiwei0397| | 2011-2-23 20:17 | 显示全部楼层
——想加密,你只能选择ACTEL或者LATTICE,只有这两家的FPGA具备可靠的加密。Xilinx加密只是将PROM芯片封装在一个包装里,被拆开后就可以直接读取数据了,保密性不好。其他软算法加密比如AES 3DES都必须要一个保密性好的芯片作为载体。否则还是白塔!就性能和保密性来说,Lattice的XP2系列算是最好的。
——Actel的基于FLASH+反熔丝工艺的FPGA保密性能好,但受工艺限制所以速度跑得不够快,性能上不去。
——Lattice的XP2系列是美国原厂根据客户提出的一些需求,特意开发出了具有保密性高的XP系列FPGA,他们把Flash放在芯片深层(具体位置只有美国设计者知道)。并采用Flash和ASIC融合设计技术制作晶片。主要面向工控领域。架构还是FLASH+SRAM架构,所以保证了速度性能。

使用特权

评论回复
老大的幸福| | 2011-2-24 10:16 | 显示全部楼层
各位大虾很给力

使用特权

评论回复
七叶一枝花| | 2011-2-26 21:54 | 显示全部楼层
太正点了。

使用特权

评论回复
amini| | 2011-2-26 22:42 | 显示全部楼层
酷,学习了。

使用特权

评论回复
龙芯一号| | 2011-3-4 11:33 | 显示全部楼层
大家回答很丰富啊,论坛里也有好多类似的帖子

使用特权

评论回复
奔腾2.0| | 2011-3-16 00:02 | 显示全部楼层
增长见识

使用特权

评论回复
小云001| | 2011-3-17 11:02 | 显示全部楼层
恩,跟着学习一下

使用特权

评论回复
奔腾2.0| | 2011-3-21 22:36 | 显示全部楼层
en,收益匪浅

使用特权

评论回复
dan_xb| | 2011-3-24 14:23 | 显示全部楼层
26# Arwei
那个DNA的方法,或者说全球唯一ID的方法,如果用得好,其实保密性是非常高的。
那个ID,并不是你直接复制到RAM,这样太傻了。是使用你的一个加密算法,把这个数字计算以后,把结果存到Flash里面。
别人能够看到DNA号,也能看到结果,但是他不知道计算过程,所以他不能解密。
最关键的是2点:
1. DNA模块是一个硬件的模块,接口也是设计定义好的,他是不能修改这个模块的
2. 物理上并不存在这样一个解密模块,打开芯片也找不到,所以也无法绕开。
所以,实际上这个方法是很保险的。
关于加解密的算法,其实也可以非常简单,你用一个PRBS序列,定一个初值,一个循环次数,就可以生成一个最后的码,看上去完全没有关系。
要**这个加密系统,他需要有非常大的样本才能反推出PRBS的多项式,这个几乎是不可能的。
另外,PRBS占资源极少。
当然,还有其他的方法,我这里只是举个例子。

使用特权

评论回复
drentsi| | 2011-3-29 21:08 | 显示全部楼层
我一直用DNA配合3DES,不一定需要AN系列的,只要带DNA就可以了,占用资源100多个silices
bit流是公开的,不用针对每个芯片单独编译
上电通过串口认证,我告诉你DNA,你给我密文,然后3DES解密和DNA比较一下,相等就认为认证通过
否则就,,,
AN系列可以把密文存在flash里,这样出厂时只需要一次认证了,免得每次上电认证

使用特权

评论回复
21IC之星| | 2011-4-17 14:50 | 显示全部楼层
本帖最后由 21IC之星 于 2011-4-17 14:51 编辑

人气不足,
做fpga的人相对还是少些

使用特权

评论回复
AutoESL| | 2011-4-20 13:06 | 显示全部楼层
关键还是在于完善相应的法律法规吧。
和盗版软件一样
盗用别人的劳动成果,国内要比国外严重的多

使用特权

评论回复
健康2011| | 2011-4-22 16:30 | 显示全部楼层
你好,你的FPGA加密问题解决了吗?若没有解决可以联系我,我向你推荐一款加密芯片吧,你把你核心的代码放在安全IC中,这个芯片是智能卡平台系统,内有操作绝对安全,我的联系方式QQ:1206287085
可以登陆北京宝兴达公司www.broadstar.cn, 了解这款芯片。希望可以帮到你

使用特权

评论回复
xiaoyuan_ly| | 2011-4-24 13:58 | 显示全部楼层
顶个肺了

使用特权

评论回复
赤色旋风| | 2011-4-24 16:29 | 显示全部楼层
学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则