前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RTL 加密

RTL 加密

作者头像
老秃胖驴
发布2021-01-05 11:21:47
2.5K3
发布2021-01-05 11:21:47
举报
文章被收录于专栏:陌上风骑驴看IC陌上风骑驴看IC

生活是需要热爱的,尤其在隆冬季节。据说B 站时下流行对对子,于是集美们见缝插针地对了起来,搬一个来图个热闹。

上联:lef, def, spef, flow 搭得舒舒服服,用户说声佩服佩服

下联:genus, joules, tempus, service 做得生生死死,老板道句nice nice

横批:卧薪尝胆,视死如归

来,回到正题,一些IP vendor 为了自我保护,或一些公司为了防抢防盗防AE 经常需要对RTL 进行加密,各家EDA 公司为了满足客户这一需求,都提供有适配于自家工具的加密方式,除此之外还有如下两种加密机制,IEEE1800 跟IEEE 1735, 貌似目前业界用得更多的是IEEE 1735 而且这也是IEEE 推荐的加密机制—— IEEE Std 1735™-2014: "IEEE Recommended Practice for Encryption and Management of Electronic Design Intellectual Property (IP)"

  • The standard mechanism IEEE1800, which lets you protect Verilog files using the IEEE Verilog standard and VHDL files using the IEEE VHDL standard.
  • The new mechanism IEEE 1735, which provides versioning for the encryption of pragma definitions and use models.

对于IP Vendor 或公司内部会使用多家EDA 工具,强烈建议使用1735 来加密,否则需要给每家都加一套,有版本对不齐的风险。1735 的好处是,既可以用用户定义的密钥加密也可以用三家EDA 公司公开的密钥加密,三家EDA 的公开密钥是:

如,用M 的工具加密RTL 用C 的工具去读取:

命令:vcom +protect=r.vhdlp r.vhd 将左侧带有C 家公开密钥的RTL 加密成右侧内容:

同样可以用C 的工具加密,用M 的工具去读取:

除了用公开密钥外,还可以用用户自定义密钥,以C 家工具为例:

  1. 生成私钥,默认的密钥长度是512 bits, 密钥长度可以定义为256 ~ 4096 bits. 密钥越长安全性越高,执行如下命令会生成两个文件:key.pub 跟key.prv. xmprotect -messages -rsakeygenerate -keylength 512 -keyname <name>
  2. 密钥格式转换,用UNIX 命令uuencode 将二进制密钥转换成base 64 格式: uuencode -m key.pub <file>
  3. 配置加密参数,将第二步转换后的密钥赋给key_public_key, 推荐的data_method 是AES128-CBC 和AES256-CBC. <AES: Advanced Encryption Standard, CBC: Cipher Block Chaining >. `protect version = 1 `protect data_method = "AES128-CBC" `protect key_keyowner = "Cadence Design Systems.", key_method = "rsa", key_keyname = "cds_rsa_key", key_public_key = <generated base 64 key>
  4. 将加密后的RTL 跟key.prv 一起提供给用户。
  5. 用户将key.prv 所在路径指给环境变量NCPROTECT_KEYDB 即可。

至于每家EDA 公司各自的加密方式都比较简单,也不需要密钥,如C 家用如下命令即可:

ncprotect -autoprotect -synthesis output_netlist:cleartext -synthesis viewers:debugall

加密后的IP 不能被通过如下方式访问内部对象:

  • Tcl, SimVision, and programming interfaces, including PLI/VPI, VHPI, and C interface.
  • Schematic generators or state machine extraction.
  • Warning and error messages from protected regions are either suppressed or generic messages are issued.

对于数字实现端而言,elaborate 之后就是GTECH, 如果工程师想要debug 只能去抠扒GTECH 了,综合之后的netlist 不要加密,应该到目前为止P&R 工具都不支持加密的netlist. 另外,有些IP Vendor 懒得加密,直接丢一个GTECH 给用户,强烈建议,如果非此不可请为每家EDA 公司都提供一套配套的GTECH, 否则一定会有驴头马嘴的事情发生,不是驴头得错也不是马嘴得过,纯粹是焦仲卿他妈的锅。

还有一个上联没有对出适合的下联,邀请广大驴友来对:

上联:ocv, aocv, socv, 喂饭喂得唯唯诺诺,大爷有钱为所欲为

冬至就要到了,可以准备着开始发春了,阴冷得时候可以阴阳怪气,阳光明媚得时候一定要岁月静好。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌上风骑驴看IC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档