一种开放式集成电路协同设计云平台及其方法与流程

文档序号:19635495发布日期:2020-01-07 11:57阅读:459来源:国知局
一种开放式集成电路协同设计云平台及其方法与流程

本发明涉及集成电路设计领域,特别是涉及一种开放式集成电路协同设计云平台及其方法。



背景技术:

随着集成电路(integratecircuit,ic)设计水平和工艺技术的提高,集成电路规模越来越大,芯片设计规模和设计复杂度也急剧提高,工艺流程呈现专业化。但是在集成电路领域,美国的英特尔、韩国的三星等企业有着悠久的发展历史以及丰厚的技术积累,这意味着后续的集成电路企业想要踏足集成电路领域,打破垄断局面,将会面临重重困难。目前芯片设计领域面临的三大困境包括:

(1)ip垄断现象严重、ip授权价格昂贵、知识产权保护环境恶劣。

由于系统设计日益复杂化,出现了专门从事实现不同功能电路芯片设计的专业公司和个人。芯片设计公司通过获得各个ip的使用授权,可以在较短的时间内完成芯片设计工作,从而有效地控制成本、缩短设计周期、提高产品质量,但同时带来了版权保护问题和安全风险。授权或非授权用户可以通过解剖芯片,非法复制版图的方法,获取ip核的内容,伪造ip核并进行私下交易,这类违法行为严重侵犯ip拥有者的利益,打击了从事芯片ip研发的人员或者公司的积极性。由于产权缺乏保护,导致许多芯片ip拥有者或公司无法通过正常的交易渠道和合理的价格进行ip的授权和出让。最终结果要么停止ip开发,要么被迫授予行业中仅有的几个ip公司或者eda(electronicsdesignautomation)公司。这些公司以低廉的价格获取数量可观的ip后,通过自身平台的验证,再挑选优质的ip以高价卖给需要进行设计的芯片公司。久而久之,在集成电路行业就形成了少数几家公司垄断优质ip的局面。集成电路行业的垄断行为不仅严重阻碍了该行业的公平竞争和良性发展,而且存在巨大的安全隐患,因为许多ip只有接口,而内部结构和行为并不公开,极易存有后门。

(2)eda软件垄断现象严重、其他优秀特色eda软件难有发展机会。

从20世纪80年代开始,eda软件伴随着集成电路行业的不断发展和壮大,逐渐形成了当前几家大型eda公司。它们覆盖了整个集成电路产品设计的所有环节。后来的公司很难再按这个模式从头来过。即使有些公司开发的某个模块性能更优越,也只能以插件的形式集成到几大平台上去。而且对于eda工具来说,后期需要大量的维护和优化,才能趋于稳定,但是中小型企业很难有人力和资金进行长期的维护,形成了一个死循环。

(3)研发模式封闭。

不同于欧美与韩台企业,国内的集成电路企业基本不采用团队合作或者远程开发的模式,几乎全部采用自雇工程师进行封闭式开发的方式进行产品研发。沉重的人力成本、硬件成本和管理成本往往在产品还未上市前,就已经压垮了大多数企业。受到西方国家的各种制约和禁令,每个企业、科研单位都单独自成一个研发体系,种种因素导致国内集成电路行业进展缓慢。

为了打破上述三个困局,虽然市面上已有一些技术手段出现,但不足以解决所有的问题,缺乏完整的解决方案。现有的一些技术手段的缺陷如下:

(1)针对知识产权保护问题,近些年来出台了基于数字信封技术的ieee1735标准,它规定了用于设计ip加密和权限管理的可嵌入和封装标记语法,以及与其他标准中描述的设计规范格式集成的建议。该标准旨在实现设计流程,以提供ip作者、工具提供商、集成商和ip用户之间的互操作性。然而该方法采用了标记语言,只适用于像vhdl语言描述的文本文件格式的数字ip的加密,而不适用于二进制ip文件(比如gds版图文件)的加密。采用许可证、加密等方式的保护手段虽然有一定作用,但是一旦被破解将无法跟踪ip的后续非法使用。此外,目前国际上已有一些研究机构在集成电路的算法级、行为级、结构级和物理级研究数字水印的插入和提取方法。芯片版图水印的核心思想就是将模块作为水印载体,通过在其电路设计的版图中隐藏特定的数字水印,来证明其产权归属或跟踪侵权行为。然而,基于数字水印的ip保护方法需要改动芯片,最好在芯片设计之初就需要考虑,对于已设计好的芯片则很难改动,因为改动可能会影响芯片的功能。由此可见,单独的加密、数字水印等技术是无法实现在线可互操作的ip交易保护和跟踪。

(2)针对eda软件的垄断问题,由于eda工具的形成不是一蹴而就的,需要伴随集成电路行业的不断壮大和发展而逐渐形成,所以一旦错过共同发展时期,很难再按这个模式从头来过。

(3)针对研发模式封闭问题,大多数企业要么用传统方式去购买或破解ip,要么进行封闭自主开发。对于大型企业来说,可能会采用内部私有云方式构建集群来进行芯片研发,但本质上是基于内部局域网的,而非借助全世界力量的。



技术实现要素:

为了克服上述现有技术的不足,本发明提出一种开放式集成电路协同设计云平台及其方法。

一种开放式集成电路协同设计云平台,包括在线项目管理与协同设计模块、ip加密与授权管理模块、eda云服务模块、ai辅助设计服务模块;所述在线项目管理与协同设计模块、ip加密与授权管理模块、eda云服务模块、ai辅助设计服务模块基于云平台前端工作站的网络服务器和云平台后端分布式集群的应用服务器集群进行工作。

进一步的,所述在线项目管理与协同设计模块实现ic领域模块化项目管理主干分支操作、历史记录回滚、文件对比的功能,连接各类eda工具,实现定制化的ip授权中心与加解密授权服务,使各类第三方eda工具/模块通过网页端接口被快速调用的功能;

所述ic领域模块化项目管理包括轻量化的远程文件管理仓库;

所述ai辅助设计服务模块提供定制化的机器学习服务器,通过数据积累,建立电路,模块,单元的预测模型。

进一步的,所述ip加密与授权管理模块具有云平台上ip的远程授权管理、使用监控、权限设置的功能。

进一步的,所述eda云服务模块将eda的服务工具集合整理至云平台;eda云服务模块设置有云服务接口,所述云服务接口用于接入第三方eda用户;所述eda云服务模块采用计时付费和流量付费模式。

进一步的,所述方法包括如下步骤:

步骤51:在线项目管理与协同设计模块完成在线项目管理与协同设计步骤实现ip项目开发设计;

步骤52:在线项目管理与协同设计模块向ip加密与授权管理模块发送加密请求;

步骤53:ip加密与授权管理模块接收请求通过ip加密与授权管理对ip进行加密,并将完成加密的ip发送给eda云服务模块;

步骤54:eda云服务模块接收加密后的ip,通过eda云服务步骤将加密ip进行存储;

步骤55:在线项目管理与协同设计模块向eda云服务模块发送调用请求;

步骤56:eda云服务模块接收请求,通过eda云服务步骤选出调用的ip,将调用的ip发送至ip加密与授权管理模块;

步骤57:ip加密与授权管理模块接收ip,通过ip加密与授权管理步骤,对ip进行解密以及仿真,将仿真结果发送给在线项目管理与协同设计模块;

步骤58:在线项目管理与协同设计模块接收仿真结果;

所述方法还包括ai辅助设计服务步骤;所述ai辅助设计服务步骤由ai辅助设计服务模块实现,ai辅助设计服务步骤与在线项目管理与协同开发设计以及eda云服务步骤之间存在信息交互的步骤。

进一步的,所述在线项目管理与协同设计步骤包括:

步骤61:项目生成步骤,需求方在线导入开发项目,提出项目需求,把记录写入区块链;

步骤62:模块分拆步骤,根据开发需求将项目分拆成独立开发子模块;

步骤63:任务分配步骤,根据子模块的工作量和任务难度分配给相应的参与团队,云平台为不同团队开设独立的工作空间,把记录写入区块链;

步骤64:协作开发步骤,多团队在云平台上进行协作开发,并进行进度与节点管理;

步骤65:项目验收步骤,根据项目要求进行节点与项目验收,把记录写入区块链。

进一步的,所述eda云服务步骤包括:

步骤71:eda工具选择步骤,在云平台中选择需要使用的eda工具,所述eda工具包括电路仿真、版图参数提取、em仿真,把请求记录写入区块链;

步骤72:云资源选择步骤,选择队列中空闲的云计算资源;

步骤73:数据文件选择步骤:在项目工程中选择需要使用的数据文件,所述数据文件包括源代码、版图文件、电路;若需要使用第三方的ip,则需要检查授权情况,把请求记录和使用记录写入区块链;

步骤74:调用工具步骤,调用工具在云平台上开展仿真计算,把使用记录写入区块链;

步骤75:获取结果步骤,步骤74仿真计算完成后,由云平台获取仿真结果,进行数据查看和导出,把使用时间和流量的记录写入区块链。

进一步的,所述ip加密与授权管理步骤与eda云服务步骤之间的信息交互步骤,用于芯片设计企业列表,ip提供商列表,ip加密与授权管理模块,eda云服务模块四部分的交互;所述芯片设计企业列表为ip的设计方;所述ip提供商列表为ip的版权所有者;所述ip加密与授权管理模块包括加密部分part1和区块链部分part2;所述交互的步骤包括:

步骤81:所述ip加密与授权管理模块接收芯片设计企业列表中的企业发送的请求;

步骤82:所述ip加密与授权管理模块通知ip提供商列表中相应的提供商;

步骤83:若提供商同意请求,则基于ip加密与授权管理模块中的入库智能合约来提交其ip数据和权限许可数据到ip加密与授权管理模块;若提供商不同意请求,结束交互;

步骤84:ip加密与授权管理模块根据权限许可数据和ip的类型对ip数据进行基于数字信封技术的加密;

步骤85:云平台接收芯片设计企业发出的调用eda软件的请求,并通过云平台智能合约对调用eda软件的请求进行验证;

步骤86:若验证通过,则在云平台内部调用相应的eda软件对自行设计的ip和他人授权的ip进行基于数字信封技术的解密,对解密后的ip进行仿真,将仿真结果发送给芯片设计企业;若验证未通过,结束交互;

所述ip的类型包括文本类型以及二进制类型。

进一步的,所述基于数字信封技术的加密包括基于数字信封技术的文本类型ip加密以及基于数字信封技术的二进制类型ip加密;

所述基于数字信封技术的文本类型ip加密的步骤包括:

步骤901:接收输入的原始的ip文本文件a,权限许可数据以及eda公钥和/或平台公钥publickey;所述eda公钥可以为两个及以上;若未输入公钥的则通过云平台提供的公钥进行加密;

步骤902:根据权限许可和待加密部分对ip文本文件a进行标记,得到标记后的ip文本文件b:将eda公钥和/或平台公钥publickey写入相应标记段;将所要采用的加密算法名称写入相应标记段,所述加密算法名称包括对称加密算法和非对称加密算法;将权限和许可数据写入相应标记段;

步骤903:云平台生成随机会话密钥sessionkey;

步骤904:基于会话密钥sessionkey对标记好的ip文本文件中需要加密的文本内容进行对称加密,替换ip文本文件a中的原始内容,得到新的ip文本文件c;

步骤905:用eda软件的公钥和/或平台公钥publickey对会话密钥sessionkey利用标记里给定的非对称加密算法进行加密,得到加密后的会话密钥ensessionkey,将ensessionkey写入ip文本文件c的相应标记段中,并去掉原先的公钥标记段,并计算权限许可数据以及所用算法说明部分加上ensessionkey部分的哈希值后写入标记段,得到最后的加密的ip文本文件d;

步骤906:将最终的加密ip文本文件d入库;

基于数字信封技术的二进制类型ip加密的步骤包括:

步骤911:通过云平台的公钥对输入的原始的ip二进制文件e,权限许可数据以及平台公钥publickey进行加密;

步骤912:云平台生成随机会话密钥sessionkey;

步骤913:基于会话密钥sessionkey对原始ip二进制文件e进行对称加密,得到加密后的ip二进制文件f;

步骤914:用平台公钥publickey对会话密钥sessionkey进行非对称加密算法进行加密,得到加密后的会话密钥ensessionkey,将ensessionkey写入密钥文本文件g;

步骤915:将采用的加密算法名称以及权限和许可数据写入密钥文本文件g;

步骤916:计算权限许可数据以及所用算法说明连同ensessionkey部分的哈希值写入密钥文本文件g;

步骤917:将最终的加密ip二进制文件f和最终的密钥文本文件g成对入库。

进一步的,所述基于数字信封技术的包括基于数字信封技术的文本类型ip解密以及基于数字信封技术的二进制类型ip解密;

所述基于数字信封技术的文本类型ip解密的步骤包括:

步骤1001:云平台接收待解密的ip文本文件x;

步骤1002:查找权限许可数据以及所用算法说明标记段,获知对称加密算法、非对称加密算法和权限许可;

步骤1003:查找ip文本文件x里的加密会话密钥标记段得到加密会话密钥ensessionkey;

步骤1004:计算权限许可数据以及所用算法说明连同ensessionkey部分的哈希值,并与文件里的哈希值标记段进行比较;若哈希值标记段一致,则表示文件没有被篡改;若不一致,则提示文件无效,停止后续操作;

步骤1005:eda软件或云平台根据ip文本文件x,从云平台内部查得对应私钥privatekey;

步骤1006:基于算法说明标记段给定的非对称加密算法,用eda软件的私钥和/或平台私钥privatekey对加密的会话密钥ensessionkey进行解密,得到解密后的会话密钥sessionkey;

步骤1007:基于会话密钥sessionkey对加密的ip文本文件中需要解密的文本内容进行解密,并替换原来加密的那部分内容,得到最终解密的ip文本文件y;

步骤1008:根据权限许可数据授予用户相应的使用ip的权利;

基于数字信封技术的二进制类型ip解密的步骤包括:

步骤1011:云平台接收待解密的ip二进制文件p和密钥文本文件k;

步骤1012:从密钥文本文件k中获取权限许可数据以及所用算法说明,从而获知对称加密算法、非对称加密算法和权限许可;

步骤1013:从密钥文本文件k中获取加密会话密钥ensessionkey;

步骤1014:计算权限许可数据以及所用算法说明连同ensessionkey部分的哈希值,并与密钥文本文件k里的哈希值字段进行比较;若哈希值标记段一致,则表示文件没有被篡改;若不一致,则提示文件无效,停止后续操作;

步骤1015:从内部获得平台私钥privatekey;

步骤1016:基于密钥文本文件k指定的非对称加密算法,用平台私钥privatekey对加密的会话密钥ensessionkey进行解密,得到解密后的会话密钥sessionkey;

步骤1017:基于会话密钥sessionkey对加密的ip二进制文件进行解密,得到最终解密的ip二进制文件q;

步骤1018:根据权限许可数据授予用户相应的使用ip的权利。

本发明的有益效果在于:

通过基于数字信封技术的加密解密步骤,有效保护ip作者或ip提供商的合法权益,防止不良企业对ip进行本地化反向破解。

通过区块链记录ip数据加密、验证、授权、使用的全过程,方便日后对信息进行追溯,解决ip滥用取证困难的问题。

通过对eda软件进行计时收费或按流量收费,对授权ip进行授权方式收费,使得eda软件开发者得到应有的利益,也使ip作者或提供商快速得到回报。

通过设置面向企业的eda云服务模块的云服务接口,免除企业需要独立进行服务器建设,安全管理,人员运维等一系列沉重开支。

附图说明

图1本发明提出的开放式集成电路协同设计云平台总体方案;

图2本发明提出的开放式集成电路协同设计云平台的功能模块;

图3开放式的协同设计开发的基本步骤;

图4互补型eda云服务的基本步骤;

图5基于数字信封技术和区块链技术的ip加密保护示意图;

图6一个协同设计实施例;

图7基于数字信封技术的文本类型ip加密步骤;

图8基于数字信封技术的二进制类型ip加密步骤;

图9基于数字信封技术的文本类型ip解密步骤;

图10基于数字信封技术的二进制类型ip解密步骤。

附图标记说明:云平台前端工作站10、网络服务器101、项目管理子模块102、项目协同工作子模块103、eda工具使用子模块104、ip授权使用子模块105、ai模型训练子模块106、云平台后端分布式集群11、应用服务器集群111、区块链及数据库集群112、ai计算集群113、ip加解密服务集群114、eda工具集群115、项目文件仓库集群116、在线项目管理与协同设计模块201、ip加密与授权管理模块202、eda云服务模块203、ai辅助设计服务模块204。

具体实施方式

下面结合说明书附图以及实施例对本发明做进一步说明。

实施例1:

如图1所示,一种开放式集成电路协同设计云平台包括云平台前端工作站10和云平台后端分布式集群11。

所述云平台前端工作站10包括网络服务器101、项目管理子模块102、项目协同工作子模块103、eda工具使用子模块104、ip授权使用子模块105和ai模型训练子模块106。所述网络服务器101用于连接项目管理子模块102、项目协同工作子模块103、eda工具使用子模块104、ip授权使用子模块105和ai模型训练子模块106,网络服务器101还能够调用云平台后端分布式集群11的相应服务。所述项目管理子模块102用于芯片研发工程文件的在线生成、管理和维护。所述项目协同工作子模块103用于企业芯片研发任务的在线生成、模块拆分、合同分配、协作开发和验收结算。所述eda工具使用子模块104用于调用eda软件库中的eda工具。所述ip授权使用子模块105用于处理ip的使用申请、加密、管理、授权验证和授权使用。所述ai模型训练子模块106用于机器学习和深度学习模型参数的训练。

所述云平台后端分布式集群11包括应用服务器集群111、区块链及数据库集群112、ai计算集群113、ip加解密服务集群114、eda工具集群115、项目文件仓库集群116。所述应用服务器集群111用于联系区块链及数据库集群112、ai计算集群113、ip加解密服务集群114、eda工具集群115和项目文件仓库集群116,应用服务器集群111还能够与云平台前端工作站10进行信息交互。所述区块链及数据库集群112为云平台前端和云平台后端提供区块链及数据库服务,所述数据库包括区块链相关的数据库和加密ip数据库。区块链及数据库集群112的作用在于将云平台前端或云平台后端的交易操作写入区块链,以便形成不可篡改的证据链条,便于进行追溯,所述交易操作包括ip加密授权操作、项目协作开发的有关操作、项目管理的有关操作。所述ai计算集群113为云平台前端和云平台后端提供人工智能算法和应用。所述ip加解密服务集群114为云平台前端和云平台后端提供ip加密、解密、授权、许可、验证等服务。所述eda工具集群115为云平台前端提供eda工具,并且能够读取以ieee1735标准进行加密授权的文本格式ip或读取通过本平台的私钥在线解密后的二进制格式ip,所述私钥经本平台许可后由平台发放给用户。所述项目文件仓库集群116用于提供在线工程项目文件的存储、管理和维护。

如图2所示,从功能上看,本发明提出的平台包括在线项目管理与协同设计模块201、ip加密与授权管理模块202、eda云服务模块203、ai辅助设计服务模块204。这四个模块在图1所示的云平台前端工作站10的网络服务器101和云平台后端分布式集群11的应用服务器集群111的支持下开展对应的工作。所述在线项目管理与协同设计模块与ip加密与授权管理模块、eda云服务模块两两之间存在信息的交互。所述ai辅助设计服务模块用于辅助ip加密与授权管理模块、eda云服务模块。

所述在线项目管理与协同设计模块201是基于网页/客户端的项目管理与协同设计子系统,涵盖云平台前端工作站10里的项目管理子模块102和项目协同工作子模块103以及云平台后端分布式集群11的区块链及数据库集群112和项目文件仓库集群116。在线项目管理与协同设计模块201能够实现定制化的ic领域模块化项目管理,包括轻量化的远程文件管理仓库,所述轻量化的在线文件管理仓库具体为所有文件进行云服务器托管,大大简化本地硬件要求。在线项目管理与协同设计模块201提供主干分支操作、历史记录回滚、文件对比等便捷的功能。

所述ip加密与授权管理模块202是结合区块链技术的ip加解密及授权管理子系统,涵盖云平台前端工作站10里的ip授权使用子模块105以及云平台后端分布式集群11的区块链及数据库集群112和ip加解密服务集群114。ip加密与授权管理模块202支持平台上ip的远程授权管理、使用监控、权限设置等一系列功能。ip加密与授权管理模块202是本发明的核心模块。

所述eda云服务模块203涵盖云平台前端工作站10里的eda工具使用子模块104以及云平台后端分布式集群11的区块链及数据库集群112和eda工具集群115。eda云服务模块203提供集成化的eda云服务,能够通过网页端支持eda大厂的全套设计服务以及小型eda中小服务商独立模块的远程使用。eda云服务模块203采用计时付费的全新商业模式,是本发明的主要模块。

所述ai辅助设计服务模块204涵盖云平台前端工作站10里的ai模型训练子模块106以及云平台后端分布式集群11的区块链及数据库集群112和ai计算集群113。ai辅助设计服务模块204提供定制化的机器学习服务器,通过数据积累,为ic公司建立各类电路,模块,单元的预测模型。由于辅助设计快速迭代的特点,ai辅助设计服务模块204能够精准获取验证结果,是本发明的可扩展模块。

所述在线项目管理与协同设计模块201的特点在于能够实现模块化的ic项目管理。根据当前复杂soc或大型芯片开发的特点,定制模块化的ic项目管理系统能够实现轻量化的在线文件管理仓库,支持工程文件仓库化管理;能够兼容主流eda工程文件系统结构,无缝连接各大eda工具;能够实现定制化的ip授权中心与加解密授权服务,避免ip授权中被他人侵犯产权的问题;能够使各类第三方eda工具/模块全部通过网页端接口快速调用,同时各类第三方eda工具/模块在云平台后台保持运行。所述定制化的ip授权中心与加解密授权服务为根据不同的用户实现用户的ip授权与加解密授权服务。

如图3所示,在线项目管理与协同设计模块201的开放式的协同设计开发的一个实施例包括5个步骤:项目生成s301,模块分拆s302,任务分配s303,协作开发s304和项目验收s305。

项目生成s301:需求方在线导入开发项目,提出项目需求等等,把记录写入区块链。

模块分拆s302:在线项目管理与协同设计模块201根据开发需求将项目分拆成独立开发子模块,分配给一个及以上的团队进行合作研发。

任务分配s303:在线项目管理与协同设计模块201根据子模块的工作量和任务难度分配给对应的参与团队,为不同团队开设独立的工作空间,把记录写入区块链。

协作开发s304:多团队在平台上进行协作开发,并进行进度与节点管理。

项目验收s305:在线项目管理与协同设计模块201根据项目要求进行节点与项目验收,把记录写入区块链。

所述eda云服务模块203将国外主流eda服务工具以及各类非主流但有自身特色的eda的服务工具集合整理至云平台。eda云服务模块203设置云服务接口,所述云服务接口用于接入第三方eda用户。eda云服务模块203采用计时付费和流量付费的商业模式,相比eda软件传统的收费模式,本实施例能够帮助eda公司快速获取商业回报。

如图4所示,eda云服务模块203的互补型eda云服务的一个实施例包括5个步骤:eda工具选择s401,云资源选择s402,数据文件选择s403,调用工具s404和获取结果s405。

eda工具选择s401:第三方eda用户在平台中选择需要使用的eda工具,所述eda工具包括电路仿真、版图参数提取、em仿真等,eda云服务模块203把请求记录写入区块链,所述请求记录包括使用eda工具的请求。

云资源选择s402:eda云服务模块203选择队列中空闲的云计算资源。

数据文件选择s403:第三方eda用户在项目工程中选择需要使用的数据文件,所述数据文件包括源代码、版图文件、电路等。若需要使用第三方的ip,则需要检查授权情况,把请求记录和使用记录写入区块链,所述请求记录和使用记录包括请求使用第三方的ip以及使用第三方的ip。

调用工具s404:eda云服务模块203调用工具在云平台上开展仿真计算,把使用记录写入区块链,所述使用记录包括调用工具并且展开仿真计算。

获取结果s405:计算完成后,由云平台前端工作站获取仿真结果,进行数据查看和导出,把使用时间和流量的记录写入区块链。

如图5所示,所述ip加密与授权管理模块202能够与eda云服务模块203进行交互。进行交互的目的是实现ip数据、工具与模块应用全在线化流程,让芯片设计企业无法对ip提供商的ip进行本地化反向破解,也无法获得源文件,从而保护了ip,也体现了ip和eda工具的应有价值,并能对整个授权使用和交易记录进行追溯。所述交互的流程包括四大部分,分别为芯片设计企业列表b501,ip提供商列表502,ip加密与授权管理模块part1b5031和part2b5032,eda云服务模块b504。所述ip加密与授权管理模块part1b5031为加密部分;ip加密与授权管理模块part2b5032为区块链部分。所述芯片设计企业列表b501为ip的设计方,所述ip的设计方可以为ip的用户。所述ip提供商列表502为ip的作者、拥有者或版权所有者。

在本实施例中,所述芯片设计企业列表b501中的企业先向ip加密与授权管理模块b5031发送请求;所述ip加密与授权管理模块b5031接收请求并通知ip提供商列表502中相应的提供商。若提供商同意,则基于ip加密与授权管理模块b5032中的入库智能合约来提交其ip数据和权限许可数据到ip加密与授权管理模块b5031,所述入库智能合约为云平台在建立时就设定的关于ip入库的一系列计算机协议。ip加密与授权管理模块b5031根据权限许可数据和ip数据的格式(二进制还是文本)对ip数据进行基于数字信封技术的加密。当芯片设计企业需要对设计好的芯片进行仿真时,向eda云服务模块b504中相应的eda软件发出调用请求。所述调用请求经过云平台智能合约的验证后调用相应的eda软件为云平台对自行设计的ip和他人授权的ip进行内部解密后进行仿真,将仿真结果发送给芯片设计企业,芯片设计企业无法得到解密ip,所述内部解密为在云平台内部进行的基于数字信封技术的解密,所述云平台智能合约为设定的关于云平台规则的计算机协议。在整个过程中,把所有需要写入区块链的请求消息、验证消息、调用消息、ip加密与授权管理模块b5031的交易与消息数据、智能合约的交易与消息数据都写入区块链,防止篡改以及方便日后的追溯。所述eda软件的调用,可以采用计时收费或流量收费;所述ip的授权,可以采用授权的方式收费。这样不仅使得eda软件开发者得到应有的利益,也使ip作者或提供商得到回报,而且在未完全卖给芯片设计企业前不会以解密的形式被芯片设计企业获得,有效保护了ip作者的知识产权。

为了更好地理解图5所示的基于数字信封技术和区块链技术的ip加密保护示意图,通过举例加以说明。如图6所示,假设芯片设计企业1根据需求在线生成芯片研发项目。该项目的芯片功能经过模块分拆分为4个模块,其中模块1和模块2自主设计,而模块3需要ip提供商1的ip,模块4需要ip提供商2的ip。为了完成芯片研发,芯片设计企业1需要向ip加密与授权管理模块b5031提出ip授权使用请求,ip加密与授权管理模块b5031通知ip提供商1和ip提供商2。若ip提供商1和ip提供商2都同意授权,则ip提供商1和ip提供商2均发送ip数据和权限许可数据到ip加密与授权管理模块b5031。ip加密与授权管理模块b5031基于权限许可数据和ip数据的格式(二进制还是文本)对ip数据进行数字信封技术加密。经过入库智能合约和授权智能合约签署授权合同1和授权合同2后,ip提供商1的ip加密后放到芯片设计企业1芯片研发项目的模块3中,而ip提供商2的ip加密后放到芯片设计企业1芯片研发项目的模块4中,所述授权智能合约为设定的关于授权规则的协议。当要对芯片功能进行仿真验证时,假设需要调用eda软件1和eda软件2,则需要对加密的ip进行解密,但是芯片设计企业1不能得到解密后的ip,所以加密的ip模块需要在平台内部解密和/或eda内部解密。eda软件1和eda软件2分别对解密的芯片进行仿真,然后将结果返回给芯片设计企业1。在整个过程中,把所有需要写入区块链的请求消息、验证消息、调用消息、ip加密与授权管理模块b5031的交易与消息数据、智能合约的交易与消息数据都写入区块链,防止篡改以及方便日后的追溯。对于eda软件1和软件2而言,可以采用计时收费或流量收费。对于ip提供商1和ip提供商2的ip而言,可以采用授权的方式收费。

如图7-10所示,原始ip的类型分为文本类型(如vhdl文件)和二进制类型(如gds版图文件)。针对文本类型的ip,目前已有ieee1735标准采用数字信封技术来规范ip加密和管理的推荐做法,旨在提供ip作者、eda工具提供商、集成商和ip用户之间的互操作性,文本类型的原始ip的加密和解密过程分别如图7和9所示。针对二进制类型的ip,本实施例借鉴文本类型的做法,给出基于平台自身公私钥体制的数字信封技术,二进制类型的原始ip的加密和解密过程分别如图8和10所示。所述数字信封技术是将对称密钥通过非对称加密的结果分发对称密钥的方法。

如图7所示,基于数字信封技术的文本类型ip加密包括如下步骤:

步骤701:输入原始的ip文本文件a,输入权限许可数据,输入eda公钥和/或平台公钥publickey。所述eda公钥可以多个,因为加密后的ip文本文件可由多个eda软件内部解密读取。此外,对于没有用eda公钥加密的ip文本文件,能够通过本实施例中云平台提供的公钥进行加密。

假设一个原始ip文本文件a如下,该文本文件只有一个公钥publickey:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityzbf_checkis

port(clk,reset:instd_logic;

q:outstd_logic_vector(3downto0));

endzbf_check;

architecturestrucofzbf_checkis

signalq_temp:std_logic_vector(3downto0);

begin

process(clk)

begin

if(clk'eventandclk='1')

then

ifreset='1'

then

q_temp<="0000";

elsifq_temp="1001"then

q_temp<="0000";

else

q_temp<=q_temp+1;

endif;

endif;

endprocess;

q<=q_temp;

endstruc;

步骤702:根据权限许可和待加密部分对ip文本文件a进行标记,得到标记后的ip文本文件b:将eda公钥和/或平台公钥publickey写入相应标记段;将所要采用的加密算法名称(包括对称加密算法和非对称加密算法)写入相应标记段;将权限和许可数据写入相应标记段。

对于步骤701举例的文本文件a的一种可能标记例子如下,包含了ip作者信息、加密算法(对称aes128-cbc,非对称rsa)、eda公钥(key_public_key部分)和待加密部分(protectbegin到protectend部分):

`pragmaprotectversion=2

`pragmaprotectauthor="mzhou",author_info="zju"

`pragmaprotectdata_method="aes128-cbc"

`pragmaprotectbegin_commonblock

`pragmaprotectend_commonblock

`pragmaprotectbegin_toolblock

`pragmaprotectkey_keyowner="xilinx"

`pragmaprotectkey_keyname="xilinx_2016_05"

`pragmaprotectkey_method="rsa"

`pragmaprotectrights_digest_method="sha256"

`pragmaprotectkey_public_key

miibijanbgkqhkig9w0baqefaaocaq8amiibcgkcaqeaxzhnmo1lckplypa4vxvishhj9wqup/jqwnk2xqfykooko3u7cvusev500szdksc5ow7xj6xg7dtlrquh5jyvnakryvefowxf2ltrteboq1hsrcricdpr+qyu9jbg8lrs7lhaqjq0r1eefj6w8xofio9ggevdwvpggpzu0hv/fykurwevdcc5itcx2gehehekpesqqbgmuoeyv+mrrdzppakaildb2mrgf2cjqc2lptcdxry0pqdqhmcsrqi7vxdgdpqp9iq+e6r+wxsqjb7ryzfchxii4n4ilazsbomalcvnsbxlyx1ilkwxsdwosh0ih1ejtliqxsx2pjbfkfrrxqidaqab

`pragmaprotectend_toolblock

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityzbf_checkis

port(clk,reset:instd_logic;

q:outstd_logic_vector(3downto0));

endzbf_check;

architecturestrucofzbf_checkis

signalq_temp:std_logic_vector(3downto0);

`pragmaprotectbegin

begin

process(clk)

begin

if(clk'eventandclk='1')

then

`pragmaprotectend

ifreset='1'

then

q_temp<="0000";

elsifq_temp="1001"then

q_temp<="0000";

else

q_temp<=q_temp+1;

endif;

endif;

endprocess;

q<=q_temp;

endstruc;

步骤703:平台生成随机会话密钥sessionkey。

步骤704:基于会话密钥sessionkey对标记好的ip文本文件中需要加密的文本内容进行对称加密(通常用aes128或aes256对称加密算法),替换ip文本文件a中的原始内容,得到新的ip文本文件c。

步骤705:用eda软件的公钥和/或平台的公钥publickey对会话密钥sessionkey利用标记里给定的非对称加密算法进行加密(通常用rsa2048非对称加密算法)得到加密后的会话密钥ensessionkey,将ensessionkey写入ip文本文件c的相应标记段中,并去掉原先的公钥标记段,并计算权限许可数据以及所用算法说明部分加上ensessionkey部分的哈希值后写入标记段,得到最后的加密的ip文本文件d。

步骤706:将最终的加密ip文本文件d入库。对于步骤702标记例子的加密文本文件d的结果如下

`pragmaprotectbegin_protected

`pragmaprotectversion=2

`pragmaprotectencrypt_agent="ipecrypt"

`pragmaprotectencrypt_agent_info="http://ipencrypter.comversion:19.1.0"

`pragmaprotectauthor="mzhou"

`pragmaprotectauthor_info="zju"

`pragmaprotectdata_method="aes128-cbc"

`pragmaprotectbegin_commonblock

`pragmaprotectend_commonblock

`pragmaprotectbegin_toolblock

`pragmaprotectkey_keyowner="xilinx"

`pragmaprotectkey_keyname="xilinx_2016_05"

`pragmaprotectkey_method="rsa"

`pragmaprotectrights_digest_method="sha256"

`pragmaprotectkey_block

rkv95iusbokoruc+dl4rjaegsce+rpmzl8nmvj3vv1z9iwal7blsoogathwm9jqo

3mshtk2sj9sfarq7wgbtyni/1fasvyymwilvhpa1qc9i8e/hhlyz73zg/xv0c6za

vpgeadp0vhoana9crfvtlkdv1dwrtnvpimowm+kg2ochp0jrxwykpz1hjkaspdjn

z56tpskchei5iv/qctwund79ytrhmqm/u+ytukzj5jqpynp3jxtvuh8nmkljrggr

8zuyjnhq3/j3cbvtia6xuwma1h+l4ndwf0j9unvozcrnnwhtzdzu1cmsprbpptod

riqqq6wcjxyjq9joegcnca==

`pragmaprotectend_toolblock="rwn9vvsnajclxbajkyhfsoibksyebxxlqbbjl/3v28s="

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityzbf_checkis

port(clk,reset:instd_logic;

q:outstd_logic_vector(3downto0));

endzbf_check;

architecturestrucofzbf_checkis

signalq_temp:std_logic_vector(3downto0);

`pragmaprotectdata_block

opv9g12xzdprh1dvwxb2zjky0bneje3w1trvq/jbcvxlft1dn8stwccbn6wddryu

`pragmaprotectend_protected

if(clk'eventandclk='1')

then

ifreset='1'

then

q_temp<="0000";

elsifq_temp="1001"then

q_temp<="0000";

else

在上述结果中,“rwn9vvsnajclxbajkyhfsoibksyebxxlqbbjl/3v28s=”代表权限许可数据以及所用算法说明部分再加上ensessionkey部分的哈希值;而“opv9g12xzdprh1dvwxb2zjky0bneje3w1trvq/jbcvxlft1dn8stwccbn6wddryu”表示如下待加密内容

begin

process(clk)

begin

if(clk'eventandclk='1')

then

的加密结果:

而“rkv95iusbokoruc+dl4rjaegsce+rpmzl8nmvj3vv1z9iwal7blsoogathwm9jqo3mshtk2sj9sfarq7wgbtyni/1fasvyymwilvhpa1qc9i8e/hhlyz73zg/xv0c6zavpgeadp0vhoana9crfvtlkdv1dwrtnvpimowm+kg2ochp0jrxwykpz1hjkaspdjnz56tpskchei5iv/qctwund79ytrhmqm/u+ytukzj5jqpynp3jxtvuh8nmkljrggr8zuyjnhq3/j3cbvtia6xuwma1h+l4ndwf0j9unvozcrnnwhtzdzu1cmsprbpptodriqqq6wcjxyjq9joegcnca==”代表加密后的会话密钥。

如图8所示,基于数字信封技术的二进制类型ip加密步骤,可以描述如下:

步骤801:输入原始的ip二进制文件e,输入权限许可数据,输入平台公钥publickey。由于eda软件暂不支持加密的ip二进制文件,所以需要采用本实施例中云平台的公钥进行加密。

步骤802:平台生成随机会话密钥sessionkey。

步骤803:基于会话密钥sessionkey对原始ip二进制文件e进行对称加密(通常用aes128或aes256对称加密算法),得到加密后的ip二进制文件f。

步骤804:用平台公钥publickey对会话密钥sessionkey进行非对称加密算法进行加密(通常用rsa2048非对称加密算法)得到加密后的会话密钥ensessionkey,将加密后的会话密钥ensessionkey写入密钥文本文件g。

步骤805:将采用的加密算法名称(包括对称加密算法和非对称加密算法)以及权限和许可数据写入密钥文本文件g。

步骤806:计算权限许可数据以及所用算法说明连同ensessionkey部分的哈希值写入密钥文本文件g。

步骤807:将最终的加密ip二进制文件f和最终的密钥文本文件g成对入库。

如图9所示,基于数字信封技术的文本类型ip解密步骤,可以描述如下:

步骤901:将待解密的ip文本文件x输入云平台。

步骤902:查找权限许可数据以及所用算法说明标记段,获知对称加密算法、非对称加密算法和权限许可。以步骤706的示例结果为例,这部分内容如下:

`pragmaprotectversion=2

`pragmaprotectencrypt_agent="ipecrypt"

`pragmaprotectencrypt_agent_info="http://ipencrypter.comversion:19.1.0"

`pragmaprotectauthor="mzhou"

`pragmaprotectauthor_info="zju"

`pragmaprotectdata_method="aes128-cbc"

`pragmaprotectbegin_commonblock

`pragmaprotectend_commonblock

`pragmaprotectbegin_toolblock

`pragmaprotectkey_keyowner="xilinx"

`pragmaprotectkey_keyname="xilinx_2016_05"

`pragmaprotectkey_method="rsa"

`pragmaprotectrights_digest_method="sha256"

步骤903:查找ip文本文件x里的加密会话密钥标记段得到加密会话密钥ensessionkey。以步骤706的示例结果为例,ensessionkey为

rkv95iusbokoruc+dl4rjaegsce+rpmzl8nmvj3vv1z9iwal7blsoogathwm9jqo

3mshtk2sj9sfarq7wgbtyni/1fasvyymwilvhpa1qc9i8e/hhlyz73zg/xv0c6za

vpgeadp0vhoana9crfvtlkdv1dwrtnvpimowm+kg2ochp0jrxwykpz1hjkaspdjn

z56tpskchei5iv/qctwund79ytrhmqm/u+ytukzj5jqpynp3jxtvuh8nmkljrggr

8zuyjnhq3/j3cbvtia6xuwma1h+l4ndwf0j9unvozcrnnwhtzdzu1cmsprbpptod

riqqq6wcjxyjq9joegcnca==

步骤904:计算权限许可数据以及所用算法说明连同ensessionkey部分的哈希值,并与文件里的哈希值标记段进行比较,验证文件是否被篡改。若哈希值标记段一致,则表示文件没有受到篡改;若不一致,则提示文件无效,停止后续操作。

步骤905:根据ip文本文件x里的keyowner和keyname,eda软件或平台从内部查得对应私钥privatekey。以步骤706的示例结果为例,keyowner为xilinx,而keyname为xilinx_2016_05,表示eda公司xilinx的2016年5月的公私钥版本。

步骤906:基于算法说明标记段给定的非对称加密算法,用eda软件的私钥和/或平台的私钥privatekey对加密的会话密钥ensessionkey进行解密,得到解密后的会话密钥sessionkey。

步骤907:基于会话密钥sessionkey对加密的ip文本文件中需要解密的文本内容进行解密,并替换原来加密的那部分内容,得到最终解密的ip文本文件y。注意,这里ip用户也许不能够访问文本文件y,而是能够对eda软件或平台内部解密的文本文件y进行仿真。

步骤908:根据权限许可数据允许用户在eda内部或平台内部按规定使用ip。

如图10所示,基于数字信封技术的二进制类型ip解密步骤,可以描述如下:

步骤1001:输入待解密的ip二进制文件p和密钥文本文件k。

步骤1002:从密钥文本文件k中获取权限许可数据以及所用算法说明,从而获知对称加密算法、非对称加密算法和权限许可。

步骤1003:从密钥文本文件k中获取加密会话密钥ensessionkey。

步骤1004:计算权限许可数据以及所用算法说明连同ensessionkey部分的哈希值,并与密钥文本文件k里的哈希值字段进行比较,验证文件没被篡改。若哈希值标记段一致,则表示文件没有受到篡改;若不一致,则提示文件无效,停止后续操作。

步骤1005:从内部获得平台私钥privatekey。

步骤1006:基于密钥文本文件k指定的非对称加密算法,用平台的私钥privatekey对加密的会话密钥ensessionkey进行解密,得到解密后的会话密钥sessionkey。

步骤1007:基于会话密钥sessionkey对加密的ip二进制文件进行解密,得到最终解密的ip二进制文件q。注意,这里ip用户也许不能够访问二进制文件q,而是能够对平台内部解密后的二进制文件q进行仿真。

步骤1008:根据权限许可数据允许用户在平台内部按规定使用ip。

以上所述,只是本发明的具体实施例,并非对本发明做出任何形式上的限制,在不脱离本发明的技术方案基础上,所做出的简单修改、等同变化或修饰,均落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1