一种产权保护方法及系统

文档序号:7955 发布日期:2021-09-17 浏览:34次 英文

一种产权保护方法及系统

技术领域

本发明涉及现场可编程逻辑门阵列芯片的产权保护

技术领域

,尤其涉及一种产权保护方法及系统。

背景技术

FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC) 领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。Xilinx FPGA芯片在系统上电时,需要从片外非易失存储器读取配置文件加载到FPGA内部 SRAM(StaticRandom-Access Memory,静态随机存取存储器)中,使FPGA进入指定工作状态,配置成指定的功能。非易失存储器由于接口是通用的,内容很容易被监测读出。即使使用Xilinx自带的加密流程,依然无法完全防范盗版发生。盗版现象使设计者承受巨大的经济损失。

现有的FPGA产权保护方案存在以下技术问题:1)采用消息摘要 算法进行加密:随着加密算法研究深入和计算能力指数式增长,仅使 用单一消息摘要算法,产权防护能力会逐渐变弱。一旦被找到快速碰 撞公式,该保护方式等同于完全失效。另外,如果从FPGA的配置文 件中,读取了密钥,可以轻易对系统进行盗版;2)采用的加密芯片 通常由国外厂商设计生产:是否包含后门不得而知,不适合用在保护 国防/军工/航天场景。3)加密芯片配置的加密流程固定且公开:不 支持FPGA设计者自定义加密流程/算法组合,不利于加密强度自定义 扩充;4)加密芯片接口过于单一,例如DS28E52加密芯片仅支持 1-wire协议,如需支持I2C协议,还需要搭配DS2460协处理芯片, 增加方案复杂度和物料成本。

发明内容

针对现有技术中存在的问题,本发明提供一种产权保护方法,应用于现场可编程逻辑门阵列芯片,所述现场可编程逻辑门阵列芯片分别连接一非易失性存储器和一加密芯片,所述现场可编程逻辑门阵列芯片中配置有一产权保护模块和连接所述产权保护模块的一被保护功能模块;

则所述产权保护方法包括:

步骤S1,所述产权保护模块在所述现场可编程逻辑门阵列芯片上电配置完成后,读取所述非易失性存储器中预先配置的一签名算法类型并发送至所述加密芯片;

步骤S2,所述产权保护模块将预先配置的一第一消息摘要以及生成的一第一随机数发送至所述加密芯片;

步骤S3,所述加密芯片根据所述签名算法类型以及预先存储的一私钥对所述第一消息摘要、所述第一随机数以及所述加密芯片自身生成的一第二随机数进行签名得到一签名结果,并将所述签名结果和所述第二随机数回传至所述产权保护模块;

步骤S4,所述产权保护模块采用预先配置的一公钥对所述签名结果进行签名验证得到一验证结果,以及根据所述签名算法类型对所述第一消息摘要、所述第一随机数和所述第二随机数进行处理得到一处理结果,并判断所述处理结果与所述验证结果是否一致:

若是,则生成一认证成功信号,以控制所述被保护功能模块进入正常工作状态;

若否,则生成一认证失败信号,以控制所述被保护功能模块保持非正常工作状态。

优选的,所述非易失性存储器中预先保存有所述现场可编辑逻辑门阵列芯片的一配置文件,则所述步骤S1中,所述现场可编辑逻辑门阵列芯片上电后,将所述非易失性存储器中的所述配置文件读取至所述现场可编辑逻辑门阵列芯片的一静态随机存取存储器中完成配置。

优选的,所述加密芯片中预先配置有多种所述签名算法类型以及各所述签名算法类型关联的签名算法,则执行所述步骤S2之前,还包括:

所述加密芯片根据接收到的所述签名算法类型匹配得到相应的所述签名算法,并生成一类型确认信息;

则所述步骤S2中,所述产权保护模块根据所述类型确认信息将所述第一消息摘要以及所述第一随机数发送至所述加密芯片。

优选的,所述步骤S4中,还包括一重复鉴权过程,包括:

步骤A1,所述产权保护模块在所述认证成功信号的生成时刻开始计时并持续输出一第一计时结果;

步骤A2,所述产权保护模块判断所述第一计时结果是否达到一第一时间:

若是,则所述第一计时结果清零,随后返回所述步骤S2;

若否,则返回所述步骤A2。

优选的,所述步骤S4中,在生成所述认证失败信号后,还包括一临时授权过程,包括:

步骤B1,所述产权保护模块根据所述认证失败信号控制所述被保护功能模块进入所述正常工作状态,并在所述认证失败信号的生成时刻开始计时并持续输出一第二计时结果;

步骤B2,所述产权保护模块判断所述第二计时结果是否达到一第二时间:

若是,则所述第二计时结果清零,随后控制所述被保护功能模块进入所述非正常工作状态;

若否,则返回所述步骤B2。

优选的,所述步骤S3中,所述加密芯片采用硬件电路对所述第一消息摘要、所述第一随机数以及所述第二随机数进行签名;

则执行所述步骤S3的过程中,还包括一时限保护过程,包括:

步骤C1,所述产权保护模块判断自身在发送所述第一消息摘要以及所述第一随机数后,在一第三时间内是否接收到所述签名结果和所述第二随机数:

若是,则转向所述步骤S4;

若否,则生成所述认证失败信号,以控制所述被保护功能模块保持非正常工作状态。

本申请还提供一种产权保护系统,应用上述的产权保护方法,包括:

加密芯片,连接一现场可编程逻辑门阵列芯片,所述加密芯片包括一存储单元,用于保存预先配置的一私钥;

产权保护模块,配置于所述现场可编程逻辑门阵列芯片中,所述现场可编辑门阵列芯片还配置有一非易失性存储器,所述产权保护模块连接一被保护功能模块,所述产权保护模块包括:

读取单元,用于在所述现场可编程逻辑门阵列芯片上电配置完成后,读取所述非易失性存储器中预先配置的一签名算法类型并发送至所述加密芯片;

发送单元,用于将预先配置的一第一消息摘要以及一第一随机数发送至所述加密芯片;

所述加密芯片还包括一签名单元,连接所述存储单元,用于根据所述签名算法类型以及所述私钥对所述第一消息摘要、所述第一随机数以及所述加密芯片自身生成的一第二随机数进行签名得到一签名结果,并将所述签名结果和所述第二随机数回传至所述产权保护模块;

所述产权保护模块还包括一第一保护单元,用于采用预先配置的一公钥对所述签名结果进行签名验证得到一验证结果,以及根据所述签名算法类型对所述第一消息摘要、所述第一随机数和所述第二随机数进行处理得到一处理结果,

并在所述处理结果与所述验证结果一致时生成一认证成功信号,以控制所述被保护功能模块进入正常工作状态,以及在所述结果与所述验证结果不一致时生成一认证失败信号,以控制所述被保护功能模块保持非正常工作状态。

优选的,所述第一保护单元连接所述发送单元,所述第一保护单元包括一重复鉴权子单元,用于在所述认证成功信号的生成时刻开始计时并持续输出一第一计时结果,在所述第一计时结果达到一第一时间时生成一重复鉴权信号;

所述发送单元根据所述重复鉴权信号再次将预先配置的所述第一消息摘要以及生成的所述第一随机数发送至所述加密芯片。

优选的,所述第一保护单元包括一临时授权子单元,用于根据所述认证失败信号控制所述被保护功能模块进入所述正常工作状态,在所述认证失败信号的生成时刻开始计时并持续输出一第二计时结果,在所述第二计时结果达到一第二时间时控制所述被保护功能模块进入所述非正常工作状态。

优选的,所述签名单元采用硬件电路对所述第一消息摘要、所述第一随机数以及所述第二随机数进行签名;

则所述产权保护模块还包括一第二保护单元,连接所述发送单元,用于在所述发送单元发送所述第一消息摘要以及所述第一随机数后的一第三时间内,未接收到回传的所述签名结果和所述第二随机数时生成所述认证失败信号,以控制所述被保护功能模块保持非正常工作状态。

上述技术方案具有如下优点或有益效果:

1)FPGA设计者针对不同的FPGA芯片可以自由组合生成不同的签名算法类型,使得盗版者很难确定加密中用到的签名算法和顺序,增加盗版难度,实现了对FPGA芯片的产权高强度保护,适用于需要高强度保护场景下的FPGA产权保护;

2)无需使用国外厂商设计的加密芯片实现产权保护,不存在后门问题,可以应用在各种场合,同时该加密芯片可以配置多种类型的总线接口,方便各类FPGA芯片的防盗版系统的整合和复用。

附图说明

图1为本发明的较佳的实施例中,一种产权保护方法的流程示意图;

图2为本发明的较佳的实施例中,重复鉴权过程的流程示意图;

图3为本发明的较佳的实施例中,临时授权过程的流程示意图;

图4为本发明的较佳的实施例中,一种产权保护系统的结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。

本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种产权保护方法,应用于现场可编程逻辑门阵列芯片,现场可编程逻辑门阵列芯片分别连接一非易失性存储器和一加密芯片,现场可编程逻辑门阵列芯片中配置有一产权保护模块和连接产权保护模块的一被保护功能模块;

如图1所示,则产权保护方法包括:

步骤S1,产权保护模块在现场可编程逻辑门阵列芯片上电配置完成后,读取非易失性存储器中预先配置的一签名算法类型并发送至加密芯片;

步骤S2,产权保护模块将预先配置的一第一消息摘要以及生成的一第一随机数发送至加密芯片;

步骤S3,加密芯片根据签名算法类型以及预先存储的一私钥对第一消息摘要、第一随机数以及加密芯片自身生成的一第二随机数进行签名得到一签名结果,并将签名结果和第二随机数回传至产权保护模块;

步骤S4,产权保护模块采用预先配置的一公钥对签名结果进行签名验证得到一验证结果,以及根据签名算法类型对第一消息摘要、第一随机数和第二随机数进行处理得到一处理结果,并判断处理结果与验证结果是否一致:

若是,则生成一认证成功信号,以控制被保护功能模块进入正常工作状态;

若否,则生成一认证失败信号,以控制被保护功能模块保持非正常工作状态。

具体地,本实施例中,现场可编辑逻辑门阵列芯片包括产权保护模块以及被保护功能模块,其中,该被保护功能模块可以是现场可编辑逻辑门阵列芯片中需要进行产权保护的多个器件的统称,现场可编辑逻辑门阵列芯片通过被保护功能模块实现正常功能。在现场可编辑逻辑门阵列芯片上电配置完成后,上述被保护功能模块处于非正常工作状态,随后产权保护模块与加密芯片进行认证过程,并在认证成功后才会控制被保护功能模块进入正常工作状态,实现产权保护。

进一步具体地,上述产权保护模块与加密芯片之间可以通过I2C (Inter-Integrated Circuit,内部集成电路)接口或UART (Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)接口或SPI(Serial Peripheral Interface,串行外设接口)接口通信。

其中,现场可编辑逻辑门阵列芯片的片外非易失性存储器中预先配置有该现场可编辑逻辑门阵列芯片的签名算法类型,该签名算法类型可以是一种签名算法,也可以是多种签名算法的组合,如签名算法 A和签名算法B,并规定组合中各签名算法的执行顺序,如先执行签名算法A,后执行签名算法B。FPGA芯片的设计者可以根据需求自由组合生成不同的签名算法类型,使得盗版者很难确定加密中用到的签名算法和顺序,增加盗版难度,实现了对FPGA芯片的产权高强度保护。上述签名算法包括但不限于椭圆曲线数字签名算法(FIPS186-4 P256 Elliptic Curve ECDSA),采用私钥签名,公钥验证,其相较消息摘要方式,即使FPGA芯片中公钥被泄露,也无法完成对系统进行盗版。且椭圆曲线数字签名算法被认为是目前最安全的签名算法。同样强度的椭圆曲线数字签名算法,逻辑资源开销,计算速度都比 RSA/DSA算法更好。其中,私钥存储于加密芯片中,由加密芯片保证该私钥的安全性,公钥可以以明文形式保存在非易失性存储器中,公钥也可以保存在现场可编辑逻辑门阵列芯片的本地存储器中。公钥存储在非易失性存储器中时,产权保护模块可以通过现场可编辑逻辑门阵列芯片的SPI接口从非易失性存储器中读取。

加密芯片中相应配置有多个签名算法,加密芯片中配置的签名算法包括上述片外非易失性存储器中配置的签名算法类型关联的签名算法,以保证该加密芯片能够采用非易失性存储器中配置的签名算法类型进行关联匹配,进而根据关联匹配的签名算法进行签名。如加密芯片中配置有签名算法A、签名算法B和签名算法C,则非易失性存储器中配置的签名算法类型可以是签名算法A、签名算法B和签名算法C中的其中一种,也可以是两种或三种的不同加密顺序组合。

本实施例中,在现场可编辑逻辑门阵列芯片上电配置完成后,产权保护模块首先将读取得到的该现场可编辑逻辑门阵列芯片配置的签名算法类型发送至加密芯片,以告知加密芯片后续需要采用的签名算法,加密芯片在根据签名算法类型匹配相应的签名算法以及签名算法的执行顺序后,优选回传至产权保护模块一类型确认信息,以告知产权保护模块已确认签名算法类型,可以进行后续认证过程。

本实施例中,产权保护模块中还配置有一随机数发生器,用于生成第一随机数,进而产权保护模块在接收到加密芯片回复的类型确认信息后,将该第一随机数以及预先配置的第一消息摘要发送至加密芯片,该第一随机数和第一消息摘要可以分别发送至加密芯片,且两者发送先后顺序不做限定,该第一随机数和第一消息摘要也可以同时发送至加密芯片。加密芯片中配置有一真随机数发生器,用于生成第二随机数,加密芯片采用自身存储的私钥将接收到的第一消息摘要、第一随机数和自身生成的第二随机数根据上述确认的签名算法类型进行签名,随后将签名结果和第二随机数回传至产权保护模块。优选的,上述第一消息摘要包括但不限于现场可编辑逻辑门阵列芯片的唯一设备标识符以及非易失性存储器的唯一设备标识符。上述第一随机数可以是32字节随机数,第一消息摘要可以是32字节消息摘要,对应的公钥可以是64字节公钥。优选的,以加密算法类型为哈希算法为例,加密芯片可以先将第一消息摘要和第一随机数进行哈希处理,随后将第二随机数添加至哈希处理得到的字段之后作为一第三消息摘要,随后采用私钥对第三消息摘要进行签名得到签名结果。

产权保护模块在接收到回传的签名结果和第二随机数后,首先采用公钥进行签名验证即解密过程得到一验证结果,非盗版情况下,该验证结果应该为第三消息摘要,随后产权保护模块同样采用上述哈希算法对本地存储的第一消息摘要和第一随机数进行哈希处理,随后将接收到的第二随机数加至哈希处理得到的字段之后作为处理结果,进而将处理结果和验证结果进行比较,若处理结果和验证结果一致,则表示鉴权成功,此时生成一认证成功信号,控制被保护功能模块进入正常工作状态;若处理结果和验证结果不一致,则表示鉴权失败,此时生成一认证失败信号,控制被保护功能模块保持非正常工作状态,以实现对现场可编辑逻辑门阵列芯片进行产权保护。上述给正常工作状态可以是关闭被保护功能模块,也可以是使被保护功能模块随机产生错误。

作为优选,上述加密芯片配置有存储器,用于存储包括但不限于私钥和签名算法,该存储器包括片内非易失性存储器和片外非易失性存储器。为实现与产权保护模块进行通信,该加密芯片可以相应配置包括但不限于I2C接口、SPI接口以及UART接口等低速通信接口。上述加密芯片还可以配置有进行签名算法运算采用的各种硬件加速器,包括但不限于AES、SM1、SM4等对称加密算法硬件加速器,ECDSA, RSA,SM2等非对称加密算法硬件加速器,以及SHA256,SM3等信息摘要硬件加速器。

本发明的优选的实施例中,非易失性存储器中预先保存有现场可编辑逻辑门阵列芯片的一配置文件,则步骤S1中,现场可编辑逻辑门阵列芯片上电后,将非易失性存储器中的配置文件读取至现场可编辑逻辑门阵列芯片的一静态随机存取存储器中完成配置。

本发明的优选的实施例中,加密芯片中预先配置有多种签名算法类型以及各签名算法类型关联的签名算法,则执行步骤S2之前,还包括:

加密芯片根据接收到的签名算法类型匹配得到相应的签名算法,并生成一类型确认信息;

则步骤S2中,产权保护模块根据类型确认信息将第一消息摘要以及第一随机数发送至加密芯片。

本发明的优选的实施例中,步骤S4中,如图2所示,还包括一重复鉴权过程,包括:

步骤A1,产权保护模块在认证成功信号的生成时刻开始计时并持续输出一第一计时结果;

步骤A2,产权保护模块判断第一计时结果是否达到一第一时间:

若是,则第一计时结果清零,随后返回步骤S2;

若否,则返回步骤A2。

具体地,本实施例中,产权保护模块中可以配置有相应的计数器或计时器,该计数器或计时器进行持续记录得到第一计时结果,在第一计时结果达到第一时间后重新进行步骤S2至步骤S4的签名认证流程,进一步保护系统运行中的被保护模块的权限控制,保证系统中任何一个部件不可替代,增加盗版难度。

本发明的优选的实施例中,步骤S4中,在生成认证失败信号后,如图3所示,还包括一临时授权过程,包括:

步骤B1,产权保护模块根据认证失败信号控制被保护功能模块进入正常工作状态,并在认证失败信号的生成时刻开始计时并持续输出一第二计时结果;

步骤B2,产权保护模块判断第二计时结果是否达到一第二时间:

若是,则第二计时结果清零,随后控制被保护功能模块进入非正常工作状态;

若否,则返回步骤B2。

具体地,本实施例中,在签名认证失败情况下,可以进行上述配置使得被保护功能模块仍然工作一段随机或固定试用时间,试用超时后FPGA芯片宕机,进一步增加破解难度。

本发明的优选的实施例中,步骤S3中,加密芯片采用硬件电路对第一消息摘要、第一随机数以及第二随机数进行签名;

则执行步骤S3的过程中,还包括一时限保护过程,包括:

产权保护模块判断自身在发送第一消息摘要以及第一随机数后,在一第三时间内是否接收到签名结果和第二随机数:

若是,则转向步骤S4;

若否,则生成认证失败信号,以控制被保护功能模块保持非正常工作状态。

具体地,本实施例中,加密芯片采用硬件电路对第一消息摘要、第一随机数以及第二随机数进行签名,由于硬件电路的处理速度相较于软件的处理速度更快,通过配置一第三时间,能够及时发现上述签名结果是否通过破解软件处理得到,更进一步增加盗版难度。

本申请还提供一种产权保护系统,应用上述的产权保护方法,如图4所示,包括:

加密芯片1,连接一现场可编程逻辑门阵列芯片2,加密芯片1 包括一存储单元11,用于保存预先配置的一私钥;

产权保护模块3,配置于现场可编程逻辑门阵列芯片2中,现场可编辑门阵列芯片2还配置有一非易失性存储器4,产权保护模块3 连接一被保护功能模块5,产权保护模块3包括:

读取单元31,用于在现场可编程逻辑门阵列芯片上电配置完成后,读取非易失性存储器中预先配置的一签名算法类型并发送至加密芯片1;

发送单元32,用于将预先配置的一第一消息摘要以及生成的一第一随机数发送至加密芯片;

加密芯片2还包括一签名单元12,连接存储单元11,用于根据签名算法类型以及私钥对第一消息摘要、第一随机数以及加密芯片自身生成的一第二随机数进行签名得到一签名结果,并将签名结果和第二随机数回传至产权保护模块3;

产权保护模块3还包括一第一保护单元33,用于采用预先配置的一公钥对签名结果进行签名验证得到一验证结果,以及根据签名算法类型对第一消息摘要、第一随机数和第二随机数进行处理得到一处理结果,

并在处理结果与验证结果一致时生成一认证成功信号,以控制被保护功能模块5进入正常工作状态,以及在处理结果与验证结果不一致时生成一认证失败信号,以控制被保护功能模块5保持非正常工作状态。

本发明的优选的实施例中,第一保护单元33连接发送单元32,第一保护单元33包括一重复鉴权子单元331,用于在认证成功信号的生成时刻开始计时并持续输出一第一计时结果,在第一计时结果达到一第一时间时生成一重复鉴权信号;

发送单元32根据重复鉴权信号再次将预先配置的第一消息摘要以及生成的第一随机数发送至加密芯片1。

本发明的优选的实施例中,第一保护单元33包括一临时授权子单元332,用于根据认证失败信号控制被保护功能模块5进入正常工作状态,在认证失败信号的生成时刻开始计时并持续输出一第二计时结果,在第二计时结果达到一第二时间时控制被保护功能模块5进入非正常工作状态。

本发明的优选的实施例中,签名单元12采用硬件电路对第一消息摘要、第一随机数以及第二随机数进行签名;

则产权保护模块3还包括一第二保护单元34,连接发送单元32,用于在发送单元32发送第一消息摘要以及第一随机数后的一第三时间内,未接收到回传的签名结果和第二随机数时生成认证失败信号,以控制被保护功能模块5保持非正常工作状态。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:基于区块链的数据管理方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类