Fpga产权保护方法及系统的制作方法

文档序号:8412777阅读:313来源:国知局
Fpga产权保护方法及系统的制作方法
【技术领域】
[0001]本发明涉及对FPGA产权保护技术,特别涉及一种基于加密芯片模块的FPGA产权保护方法及系统。
【背景技术】
[0002]FPGA(Field Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。其最大特点为可编程及在线动态重构,这使得应用FPGA后能够显著降低成本和缩短设计周期,近年来随着FPGA性能的提高和成本的下降,其使用范围越来越广。
[0003]FPGA在系统上电时将片外PROM中的BIT数据流加载到片内SRAM中,完成对FPGA的编程,从而实现设计者的不同功能。该流程使得监测FPGA加载管脚的数据流就可实现对FPGA功能设计的复制。由此产生的盗版现象使设计者承受着巨大的经济损失,每年由于盗版导致的损失高达数千亿美元,而且还在以每年12?15%的速率增加;除经济损失外,应用在军工、航天等特殊场合的FPGA设计一旦被破解,造成的后果将是无法估量的,因此如何有效保护FPGA内部设计的知识产权变得越来越重要。
[0004]现有FPGA产权保护方案大致可分为直接加密法和鉴权法,其中直接加密法要求特定型号FPGA,因而在应用上有很大局限性;而基于加密芯片模块的鉴权法与FPGA型号无关,应用更加广泛。
[0005]如图1所示,以基于Maxim公司推出的一种加密芯片的鉴权法为例,其方案流程为:FPGA产权保护程序启动后产生随机数,并通过Ι-wire协议将该随机数发送给加密芯片模块;加密芯片模块根据随机数、事先协商好的密钥等数据通过诸如SHA-1算法等加密算法得到唯一的MAC(信息认证码)值,并同样经由Ι-wire协议回传给FPGA。FPGA产权保护程序将加密芯片模块得出的MAC值与本地按相同数据相同算法得到的MAC值进行匹配,若两者一致,则判定FPGA程序运行在授权环境下,认证成功,进入正常工作状态,反之,认证失败,进入非正常工作状态。
[0006]由此可知,若加密芯片模块中未写入约定好的密钥,即使FPGA程序及相关电路遭到复制,破解者仍不能得到正常工作的FPGA系统,从而有效保护了设计者的知识产权,设计者也可以通过加密芯片模块的发放数量实现套量控制。
[0007]上述方案存在如下缺点:
[0008]1.现有的FPGA产权保护方案只能对当前工作环境是否为授权环境进行认证,而无法同时支持设计者对FPGA内部各功能的权限配置,设计者如需对不同用户开放不同功能权限,则需要其他外设辅助完成;
[0009]2.现有的FPGA产权保护方案只能通过加密芯片模块的发放数量实现套量控制,而不能支持设计者对不同用户进行授权次数的控制。

【发明内容】

[0010]本发明所要解决的技术问题是:提出一种FPGA产权保护方法及系统,改善传统技术中存在的无法支持设计者对FPGA内部功能的权限配置和对不同用户进行授权次数控制的问题。
[0011]本发明解决其技术问题所采用的技术方案是:一种FPGA产权保护系统,包括:
[0012]FPGA产权保护模块,用于在系统上电后产生随机数发送给加密芯片模块,并获取加密芯片模块产生的MAC值;采用权限控制字结合原始密钥根据密钥算法产生新密钥,并将产生的新密钥与随机数根据加密算法计算获得本地MAC值,将加密芯片模块产生的MAC值与本地MAC值进行比较认证,若认证成功则向加密芯片模块输出权限控制字;若未成功认证,则继续进行迭代认证:采用权限控制字与新密钥根据密钥算法迭代出下一级密钥,将下一级密钥作为新密钥与随机数根据加密算法计算获得本地新的MAC值,并将加密芯片模块产生的MAC值与本地新的MAC值进行比较;如此循环,直至认证成功或者权限控制字的迭代次数超过授权次数而导致本次认证失败;
[0013]加密芯片模块,用于在收到FPGA发送的随机数后,根据随机数及存储的动态密钥根据加密算法计算获得MAC值,并发送给FPGA产权保护模块,在收到FPGA产权模块发送的权限控制字后结合该权限控制字及存储的动态密钥根据密钥算法产生新的动态密钥,并以所述新的动态密钥替换存储的动态密钥。
[0014]进一步的,所述FPGA产权保护模块采用多个权限控制字结合原始密钥根据密钥算法产生对应的多个新密钥,并将产生的多个新密钥分别与随机数根据加密算法计算获得对应的多组本地MAC值。
[0015]进一步的,所述FPGA产权保护模块将加密芯片模块产生的MAC值与本地MAC值进行比较认证的方法是:
[0016]FPGA产权保护模块将加密芯片模块产生的MAC值与所述计算获得的对应多组本地MAC值进行比较,若有某一组本地MAC值与加密芯片模块产生的MAC值相等,则认证成功;若所有的本地MAC值与加密芯片模块产生的MAC值都不相等,则未成功认证。
[0017]进一步的,所述FPGA模块在认证成功后向加密芯片模块输出权限控制字的方法是:
[0018]FPGA模块在认证成功后向加密芯片模块输出与加密芯片模块产生的MAC相等的本地MAC对应的权限控制字。
[0019]进一步的,所述FPGA产权保护模块若未成功认证,则继续进行迭代认证的方法是:
[0020]首先对各个权限控制字的迭代认证次数加1,判断各个权限控制字当前的迭代次数是否超过该控制字对应的授权次数,若未超过,则继续采用该权限控制字与对应的新密钥根据密钥算法迭代出下一级密钥,将下一级密钥作为新密钥与随机数根据加密算法计算获得本地新的MAC值,并将加密芯片模块产生的MAC值与本地新的MAC值进行比较认证,如此循环,直至认证成功或者所有的权限控制字当前的迭代次数均超过对应的授权次数而导致本次认证失败。
[0021]此外,本发明还提供了一种FPGA产权保护方法,其包括以下步骤:
[0022]A.系统上电,FPGA产权保护模块产生随机数并发送给加密芯片模块;
[0023]B.加密芯片模块获取随机数并结合该随机数及存储的动态密钥根据加密算法计算获得MAC值,发送该MAC值给FPGA产权保护模块;
[0024]C.FPGA产权保护模块采用权限控制字结合原始密钥根据密钥算法产生新密钥,并将产生的新密钥与随机数根据加密算法计算获得本地MAC值;
[0025]D.FPGA产权保护模块将本地MAC值与从加密芯片模块获得的MAC值进行比较认证,若认证成功,则进入步骤E,否则进入步骤G ;
[0026]E.FPGA产权保护模块向加密芯片模块输出权限控制字;
[0027]F.加密芯片模块结合该权限控制字及存储的动态密钥根据密钥算法产生新的动态密钥,并以所述新的动态密钥替换存储的动态密钥,本次认证流程结束;
[0028]G.对该权限控制字的迭代次数加I ;判断该权限控制字的迭代次数是否超过授权次数,若未超过,则进入步骤H,若超过,则认证失败,本次认证流程结束;
[0029]H.采用权限控制字与新密钥根据密钥算法迭代出下一级密钥,将下一级密钥作为新密钥与随机数根据加密算法计算获得本地新的MAC值,返回步骤D。
[0030]进一步的,步骤C中,FPGA产权保护模块采用多个权限控制字结合原始密钥根据密钥算法产生对应的多个新密钥,并将产生的多个新密钥分别与随机数根据加密算法计算获得对应的多组本地MAC值。
[0031]进一步的,步骤D中,FPGA产权保护模块将本地MAC值与从加密芯片模块获得的MAC值进行比较认证的方法是:
[0032]FPGA产权保护模块将加密芯片模块产生的MAC值与所述计算获得的对应多组本地MAC值进行比较,若有某一组本地MAC值与加密芯片模块产生的MAC值相等,则认证成功,进入步骤E ;若所有的本地MAC值与加密芯片模块产生的MAC值都不相等,则未成功认证,进入步骤G。
[0033]进一步的,步骤E中,所述FPGA模块在认证成功后向加密芯片模块输出权限控制字的方法是:
[0034]FPGA模块在认证成功后向加密芯片模块输出与加密芯片模块产生的MAC相等的本地MAC对应的权限控制字。
[0035]进一步的,步骤G中,当所有的权限控制字的迭代次数均超过对应的授权次数时,则认证失败,本次认证流程结束。
[0036]本发明的有益效果是:
[0037]1、本发明通过对原始密钥加入附加信息并进行迭代产生新密钥的方式巧妙的将附加信息(功能权限控制字)及FPGA程序运行次数存储到了新产生的密钥中,对应FPGA程序只需存有原始密钥即可实现对新密钥存储信息的读取,进而指导FPGA程序对功能权限及授权次数进行判定和控制。
[0038]2、本发明迭代算法中的授权次数及芯片中的动态密钥共同决定了 FPGA程序的剩余可运行次数;每当系统认证成功一次,FPGA控制加密芯片模块内动态密钥进行一次迭代更新,当加密芯片模块内动态密钥较FPGA中原始密钥迭代次数超过授权次数后,当前环境转为非授权环境。因此,对同样的FPGA程序只需使用写入不同动态密钥的加密芯片模块即可实现授权次数控制。权限控制字的存在则使得设计者对FPGA程序的权限功能配置成为可能。
[0039]3、本发明填补了 FPGA产权保护相关应用对授权次数控制的空白,并为设计者提供了更加灵活的FPGA产权保护方案。
【附图说明】
[0040]图1为传统技术中FPGA产权保护方案原理图;
[0041 ] 图2为本发明实施例的FPGA产权保护方法流程图。
【具体实施方式】
[0042]本发明旨在提出一种FPGA产权保护方法及系统,解决传统技术中存在的无法支持设计者对FPGA内部功能的权限配置和对不同用户进行授权次数控制的问题。在本发明中,始终将权限控制字作为附加信息与原始密钥经过密钥算法存储到了新密钥中,对应FPGA程序只需存有原始密钥即可实现对新密钥存储信息的读取,从而实现设计者对FPGA功能权限的配置,另一方面,本发明还实现了对FPGA剩余可运行次数的控制:每当系统认证成功一次,FPGA控制加密芯片模块内动态密钥进行一次迭代更新,当加密芯片模块内动态密钥较FPGA中原始密钥
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1