本发明涉及fpga,尤其涉及fpga加密处理,具体是指一种基于fpga实现软件加密处理的方法。
背景技术:
1、项目开发需双方或多方公司协作过程中,经常会出现公司间交换工程源码的情况,但是有些工程源码存在商业价值高的软核部分情况。目前代码加密机制如ngc,edif,dcp等网表形式的封装,很难做到将原核保护的作用。虽然无法知道软核的内部结构,但是参考外部接口及源码中的逻辑即可知道其操作用法,可将软件复制,应用于自身公司的其他产品。
2、而比较常见的xilinx fpga 的dna位宽存在不一致的情况,在 7series和7series以前,dna的位宽为57bits,在ultrascale架构下却是96bits。目前的dna加密授权功能只能针对其中一种,不能兼容两种位宽,其存在一定的局限性。
技术实现思路
1、本发明的目的是克服了上述现有技术的缺点,提供了一种基于fpga实现软件加密处理的方法、装置、处理器及其计算机可读存储介质。
2、为了实现上述目的,本发明的基于fpga实现软件加密处理的方法、装置、处理器及其计算机可读存储介质如下:
3、该基于fpga实现软件加密处理的方法,其主要特点是,所述的方法包括以下步骤:
4、(1)fpga上电获取本地信息;
5、(2)判断当前fpga的dna类型,如果所述的dna类型为第一dna号,则进入步骤(3),如果所述的dna类型为第二dna号,则进入步骤(4);
6、(3)按照第一预设规则对所述的第一dna号进行填充处理,待完成后进入步骤(5);
7、(4)按照第二预设规则对所述的第二dna号进行填充处理,待完成后进入步骤(5);
8、(5)将完成填充处理后的数据按照des加密原则进行加密处理,以获得软件授权码;
9、(6)将获得的软件授权码与本地授权码进行匹配处理,如果匹配一致,则所述的fpga正常工作,否则,所述的fpga停止工作。
10、较佳地,所述的方法在步骤(1)之前还包括:
11、(0)在本地提供以下信息:
12、xilinx dna类型:1bit位宽 1:57bit 0:96bit;
13、软件授权码类型:64bit;以及
14、使用方向加密方提供fpga dna号。
15、较佳地,所述的步骤(2)具体为:
16、当所述的fpga的dna类型为第一dna号时,则当前dna号的位宽为57bit;
17、当所述的fpga的dna类型为第二dna号时,则当前dna号的位宽为96bit。
18、更佳地,当所述的dna号的位宽为57bit时,对其进行位宽填充:57bit+57bit=114bit,由于总位宽低于128bit,则截取低位位宽128 bit-114 bit =14 bit位再次对所述的第一dna号进行填充,具体为:
19、
20、从而使得当前所述的第一dna号的位宽被填充为128bit。
21、更佳地,当所述的dna号的位宽为96bit时,对其进行位宽填充:96bit+96bit=192bit,由于总位宽高于128bit,则截取低位位宽128 bit-96 bit =32 bit位再次对所述的第二dna号进行填充,具体为:
22、
23、从而使得当前所述的第二dna号的位宽被填充为128bit。
24、尤佳地,所述的步骤(5)具体包括以下步骤:
25、(5.1)将完成填充处理后的数据按照64bit进行分组处理,得到两个明文组;
26、(5.2)采用64bit密钥对所述的明文组以按位替代或交换的方式进行加密,处理规则如下:
27、
28、按照以上顺序进行按位交换,得到两组经过处理后的数据;
29、(5.3)将上述步骤得到的数据与密钥进行异或处理,得到两组密文;
30、(5.4)将得到的两组密文进行累加处理,得到最终的一组密文,该密文即为软件授权码,以此完成des加密处理。
31、该实现基于fpga的软件加密处理方法的装置,其主要特点是,所述的装置包括:
32、处理器,被配置成执行计算机可执行指令;
33、存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述所述的基于fpga实现软件加密处理的方法的步骤。
34、该实现基于fpga的软件加密处理方法的处理器,其主要特点是,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述所述的基于fpga实现软件加密处理的方法的步骤。
35、该计算机可读存储介质,其主要特点是,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述所述的基于fpga实现软件加密处理的方法的步骤。
36、采用了本发明的该基于fpga实现软件加密处理的方法、装置、处理器及其计算机可读存储介质,通过在高商业价值的软核或者dcp模块中,再进行封装一层dna加密授权功能模块,该模块的功能为检测fpga dna号,与授权的dna号进行对比,两者一致后生成授权标志信号,逻辑可以利用此标志信号做到代码只有在授权时才能正常工作的情况。由于每片 fpga 的 dna 号具有唯一性和不可更改性,将该模块封装后外部无修改接口,做到用户即使拿到功能源码,里面的内核也不可复制到其他 fpga 上运行,以达到有效保护fpga知识产权的作用。
1.一种基于fpga实现软件加密处理的方法,其特征在于,所述的方法包括以下步骤:
2.根据权利要求1所述的基于fpga实现软件加密处理的方法,其特征在于,所述的方法在步骤(1)之前还包括:
3.根据权利要求1所述的基于fpga实现软件加密处理的方法,其特征在于,所述的步骤(2)具体为:
4.根据权利要求3所述的基于fpga实现软件加密处理的方法,其特征在于,当所述的dna号的位宽为57bit时,对其进行位宽填充:57bit+57bit=114bit,由于总位宽低于128bit,则截取低位位宽128 bit-114 bit =14 bit位再次对所述的第一dna号进行填充,具体为:
5.根据权利要求3所述的基于fpga实现软件加密处理的方法,其特征在于,当所述的dna号的位宽为96bit时,对其进行位宽填充:96bit+96bit=192bit,由于总位宽高于128bit,则截取低位位宽128 bit-96 bit =32 bit位再次对所述的第二dna号进行填充,具体为:
6.根据权利要求4或5所述的基于fpga实现软件加密处理的方法,其特征在于,所述的步骤(5)具体包括以下步骤:
7.一种实现基于fpga的软件加密处理方法的装置,其特征在于,所述的装置包括:
8.一种实现基于fpga的软件加密处理方法的处理器,其特征在于,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现权利要求1~6中任一项所述的基于fpga实现软件加密处理的方法的步骤。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现权利要求1~6中任一项所述的基于fpga实现软件加密处理的方法的步骤。