基于FPGA硬件的安全计算方法和装置制造方法及图纸

技术编号:24964882 阅读:16 留言:0更新日期:2020-07-21 15:08
本说明书实施例提供配置FPGA硬件的方法和装置以及基于FPGA硬件的数据处理方法和装置,其中,包括初始化FPGA硬件的方法,在该方法中,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述FPGA芯片基于所述第一存储器中当前存储的配置文件配置,其中,该方法在所述FPGA硬件端执行,包括:获取被存入所述第一存储器中的首版配置文件,其中,所述首版配置文件中包括至少一个初始密钥,并且所述首版配置文件中包括所述至少一个密钥各自的密钥所属方共同确定的预定运行逻辑;以及基于所述首版配置文件重新配置所述FPGA芯片。

【技术实现步骤摘要】
基于FPGA硬件的安全计算方法和装置
本说明书实施例涉及数据处理方法,更具体地,涉及FPGA硬件的初始化方法和装置、FPGA硬件的更新方法和装置以及基于FPGA硬件的数据处理方法和装置。
技术介绍
随着大数据、人工智能等新技术的发展,多方数据融合方面的需求越来越多,数据隐私保护变得越来越重要。例如,在一种情况中,第一方数据需要传到第二方服务器上以与第二方数据一起训练计算模型,在该情况中,第一方会担心他们的数据是否被第二方存盘后用于其它目的。SGX技术就是为了满足这种需求而开发的一种技术,其将各方的用户数据圈在CPU中的一块“飞地(enclave)”中,从硬件层面保证数据不被其它黑客程序盗走,而且提供了完善的认证机制防止使用者的任意一方盗取其他方的数据。但这种机制本身的安全性、可信度需要通过英特尔公司的服务进行保障。因此,需要一种更有效的安全计算方案,以保障各方数据安全。
技术实现思路
本说明书实施例旨在提供一种更有效的安全计算方案,以解决现有技术中的不足。为实现上述目的,本说明书一个方面提供一种初始化FPGA硬件以用于安全计算的方法,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述FPGA芯片基于所述第一存储器中当前存储的配置文件配置,所述方法在所述FPGA硬件端执行,包括:获取被存入所述第一存储器中的首版配置文件,其中,所述首版配置文件中包括至少一个初始密钥,并且所述首版配置文件中包括由所述至少一个密钥各自的密钥所属方共同确定的预定运行逻辑,其中,所述至少一个初始密钥是所述安全计算的各个参与方各自的初始密钥,或者所述至少一个初始密钥是所述安全计算的预定数目的可信管理方各自的初始密钥;以及基于所述首版配置文件重新配置所述FPGA芯片。在一个实施例中,所述FPGA硬件通过PCIE总线与服务器连接,其中,获取被存入所述第一存储器中的首版配置文件包括,获取由所述服务器通过PCIE总线写入所述第一存储器的首版配置文件。在一个实施例中,所述首版配置文件通过由各个所述密钥所属方同时在所述FPGA硬件所在现场共同监督而生成并提供,以使得所述首版配置文件中包括的任一方的初始密钥只对该方自身可见,并使得所述首版配置文件不可篡改。本说明书另一方面提供一种初始化FPGA硬件以用于安全计算的方法,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述FPGA芯片基于所述第一存储器中当前存储的配置文件配置,所述FPGA芯片中包括熔丝存储器,其中,所述熔丝存储器中预先存储有至少一个第一密钥,其中,所述至少一个第一密钥是所述安全计算的各个参与方各自的第一密钥,或者所述至少一个第一密钥是所述安全计算的预定数目的可信管理方各自的第一密钥,所述方法在所述FPGA硬件端执行,包括:获取被存入所述第一存储器中的首版配置文件,其中,所述首版配置文件中包括由所述至少一个第一密钥各自的密钥所属方共同确定的预定运行逻辑;以及基于所述首版配置文件重新配置所述FPGA芯片。在一个实施例中,所述可信管理方为所述安全计算的一个参与方。本说明书另一方面提供一种更新用于安全计算的FPGA硬件的方法,所述FPGA硬件中存储有至少一个第一密钥,其中,所述至少一个第一密钥是所述安全计算的各个参与方各自的第一密钥,或者所述至少一个第一密钥是所述安全计算的预定数目的可信管理方各自的第一密钥,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述第一存储器中存储有第一配置文件,所述第一配置文件包括由所述至少一个第一密钥各自的密钥所属方共同确定的第一运行逻辑,所述FPGA芯片当前基于所述第一配置文件而配置,所述方法在所述FPGA硬件端执行,包括:获取加密文件,其中,所述加密文件通过各个所述密钥所属方中的至少一方以第一预定顺序依次加密而获取,其中,第一次加密的加密对象包括第二配置文件,所述第二配置文件包括由所述至少一个第一密钥各自的密钥所属方共同确定的第二运行逻辑;使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取所述第二配置文件,并将其存入所述第一存储器中,其中,所述第二预定顺序与所述第一预定顺序相对应,所述工作密钥基于相应一方的第一密钥获取;以及基于所述第二配置文件重新配置所述FPGA芯片。在一个实施例中,所述第一次加密通过由所述至少一个第一密钥各自的密钥所属方共同监督而完成,以保证所述第二配置文件不被篡改。在一个实施例中,所述第一次加密的加密对象还包括所述第二配置文件的代码哈希值,其中,使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取所述第二配置文件包括,使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取所述第二配置文件及其代码哈希值,所述方法还包括,在获取所述第二配置文件及其代码哈希值之后,通过所述代码哈希值对所述第二配置文件进行校验。在一个实施例中,所述工作密钥为相应的一方的第一密钥。在一个实施例中,所述至少一方中包括第一方,所述FPGA硬件基于以下步骤获取所述第一方的工作密钥:获取所述第一方的加密的工作密钥;以及使用所述第一方的第一密钥对所述加密的工作密钥解密,以获取所述第一方的工作密钥。在一个实施例中,所述工作密钥在所述FPGA硬件断电时被消除。在一个实施例中,所述工作密钥定期更新。在一个实施例中,所述FPGA芯片中还包括熔丝存储器,其中,各个所述第一密钥被存储在所述熔丝存储器中。在一个实施例中,各个所述第一密钥被存储在所述第一存储器中。在一个实施例中,所述加密文件的加密对象还包括所述至少一个第一密钥各自的密钥所属方各自的第二密钥,其中,使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密包括,使用所述至少一个第一密钥各自的密钥所属方各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取第二配置文件,并在每次解密时获取相应的密钥所属方的第二密钥,所述方法还包括,在每次解密时获取相应的密钥所属方的第二密钥之后,将该第二密钥存储在所述第一存储器中,以作为相应的密钥所属方的更新的第一密钥。在一个实施例中,所述FPGA芯片具有其自身的硬件密钥,其中,将该第二密钥存储在所述第一存储器中包括,通过所述FPGA芯片使用其自身的硬件密钥对该第二密钥加密,以及,将该加密的第二密钥存入所述第一存储器。在一个实施例中,所述第一密钥为存储在所述第一存储器中的第一配置文件中包括的初始密钥,其中,所述第一配置文件为用于初始化所述FPGA硬件以用于安全计算的配置文件,其中,所述第一密钥通过所述第一配置文件被存入所述FPGA芯片的逻辑电路内。本说明书另一方面提供一种基于FPGA硬件的数据处理方法,所述FPGA硬件用于安全计算,其中,所述F本文档来自技高网...

【技术保护点】
1.一种初始化FPGA硬件以用于安全计算的方法,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述FPGA芯片基于所述第一存储器中当前存储的配置文件配置,所述方法在所述FPGA硬件端执行,包括:/n获取被存入所述第一存储器中的首版配置文件,其中,所述首版配置文件中包括至少一个初始密钥,并且所述首版配置文件中包括由所述至少一个密钥各自的密钥所属方共同确定的预定运行逻辑,其中,所述至少一个初始密钥是所述安全计算的各个参与方各自的初始密钥,或者所述至少一个初始密钥是所述安全计算的预定数目的可信管理方各自的初始密钥;以及/n基于所述首版配置文件重新配置所述FPGA芯片。/n

【技术特征摘要】
1.一种初始化FPGA硬件以用于安全计算的方法,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述FPGA芯片基于所述第一存储器中当前存储的配置文件配置,所述方法在所述FPGA硬件端执行,包括:
获取被存入所述第一存储器中的首版配置文件,其中,所述首版配置文件中包括至少一个初始密钥,并且所述首版配置文件中包括由所述至少一个密钥各自的密钥所属方共同确定的预定运行逻辑,其中,所述至少一个初始密钥是所述安全计算的各个参与方各自的初始密钥,或者所述至少一个初始密钥是所述安全计算的预定数目的可信管理方各自的初始密钥;以及
基于所述首版配置文件重新配置所述FPGA芯片。


2.根据权利要求1所述的方法,其中,所述FPGA硬件通过PCIE总线与服务器连接,其中,获取被存入所述第一存储器中的首版配置文件包括,获取由所述服务器通过PCIE总线写入所述第一存储器的首版配置文件。


3.根据权利要求1所述的方法,其中,所述首版配置文件通过由各个所述密钥所属方同时在所述FPGA硬件所在现场共同监督而生成并提供,以使得所述首版配置文件中包括的任一方的初始密钥只对该方自身可见,并使得所述首版配置文件不可篡改。


4.一种初始化FPGA硬件以用于安全计算的方法,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述FPGA芯片基于所述第一存储器中当前存储的配置文件配置,所述FPGA芯片中包括熔丝存储器,其中,所述熔丝存储器中预先存储有至少一个第一密钥,其中,所述至少一个第一密钥是所述安全计算的各个参与方各自的第一密钥,或者所述至少一个第一密钥是所述安全计算的预定数目的可信管理方各自的第一密钥,所述方法在所述FPGA硬件端执行,包括:
获取被存入所述第一存储器中的首版配置文件,其中,所述首版配置文件中包括由所述至少一个第一密钥各自的密钥所属方共同确定的预定运行逻辑;以及
基于所述首版配置文件重新配置所述FPGA芯片。


5.根据权利要求1或4所述的方法,其中,所述可信管理方为所述安全计算的一个参与方。


6.一种更新用于安全计算的FPGA硬件的方法,所述FPGA硬件中存储有至少一个第一密钥,其中,所述至少一个第一密钥是所述安全计算的各个参与方各自的第一密钥,或者所述至少一个第一密钥是所述安全计算的预定数目的可信管理方各自的第一密钥,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述第一存储器中存储有第一配置文件,所述第一配置文件包括由所述至少一个第一密钥各自的密钥所属方共同确定的第一运行逻辑,所述FPGA芯片当前基于所述第一配置文件而配置,所述方法在所述FPGA硬件端执行,包括:
获取加密文件,其中,所述加密文件通过各个所述密钥所属方中的至少一方以第一预定顺序依次加密而获取,其中,第一次加密的加密对象包括第二配置文件,所述第二配置文件包括由所述至少一个第一密钥各自的密钥所属方共同确定的第二运行逻辑;
使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取所述第二配置文件,并将其存入所述第一存储器中,其中,所述第二预定顺序与所述第一预定顺序相对应,所述工作密钥基于相应一方的第一密钥获取;以及
基于所述第二配置文件重新配置所述FPGA芯片。


7.根据权利要求6所述的方法,其中,所述第一次加密通过由所述至少一个第一密钥各自的密钥所属方共同监督而完成,以保证所述第二配置文件不被篡改。


8.根据权利要求7所述的方法,其中,所述第一次加密的加密对象还包括所述第二配置文件的代码哈希值,其中,使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取所述第二配置文件包括,使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取所述第二配置文件及其代码哈希值,所述方法还包括,在获取所述第二配置文件及其代码哈希值之后,通过所述代码哈希值对所述第二配置文件进行校验。


9.根据权利要求6所述的方法,其中,所述工作密钥为相应的一方的第一密钥。


10.根权利要求6所述的方法,其中,所述至少一方中包括第一方,所述FPGA硬件基于以下步骤获取所述第一方的工作密钥:
获取所述第一方的加密的工作密钥;以及
使用所述第一方的第一密钥对所述加密的工作密钥解密,以获取所述第一方的工作密钥。


11.根据权利要求10所述的方法,其中,所述工作密钥在所述FPGA硬件断电时被消除。


12.根据权利要求10所述的方法,其中,所述工作密钥定期更新。


13.根据权利要求6所述的方法,其中,所述FPGA芯片中还包括熔丝存储器,其中,各个所述第一密钥被存储在所述熔丝存储器中。


14.根据权利要求6所述的方法,其中,各个所述第一密钥被存储在所述第一存储器中。


15.根据权利要求14所述的方法,其中,所述加密文件的加密对象还包括所述至少一个第一密钥各自的密钥所属方各自的第二密钥,其中,使用所述至少一方的各自的工作密钥以第二预定顺序对所述加密文件依次解密包括,使用所述至少一个第一密钥各自的密钥所属方各自的工作密钥以第二预定顺序对所述加密文件依次解密,以获取第二配置文件,并在每次解密时获取相应的密钥所属方的第二密钥,所述方法还包括,在每次解密时获取相应的密钥所属方的第二密钥之后,将该第二密钥存储在所述第一存储器中,以作为相应的密钥所属方的更新的第一密钥。


16.根据权利要求15所述的方法,其中,所述FPGA芯片具有其自身的硬件密钥,其中,将该第二密钥存储在所述第一存储器中包括,通过所述FPGA芯片使用其自身的硬件密钥对该第二密钥加密,以及,将该加密的第二密钥存入所述第一存储器。


17.根据权利要求6所述的方法,其中,所述第一密钥为存储在所述第一存储器中的第一配置文件中包括的初始密钥,其中,所述第一配置文件为用于初始化所述FPGA硬件以用于安全计算的配置文件,其中,所述第一密钥通过所述第一配置文件被存入所述FPGA芯片的逻辑电路内。


18.一种基于FPGA硬件的数据处理方法,所述FPGA硬件用于安全计算,其中,所述FPGA硬件中存储有至少一个第一密钥,所述至少一个第一密钥是所述安全计算的各个参与方各自的第一密钥,或者所述至少一个第一密钥是所述安全计算的预定数目的可信管理方各自的第一密钥,其中,所述FPGA硬件中包括FPGA芯片,所述FPGA芯片基于由所述至少一个第一密钥各自的密钥所属方共同确定的运行逻辑而配置,所述方法在所述FPGA硬件端执行,包括:
获取所述各个参与方各自的加密数据;
使用所述各个参与方各自的工作密钥对相应的所述加密数据解密,以获取各方的明文数据,所述各个参与方各自的工作密钥分别基于所述至少一个第一密钥中相应的第一密钥获取;
基于所述各方的明文数据进行计算,以获取计算结果;以及
输出所述计算结果。


19.根据权利要求18所述的方法,其中,所述加密数据通过对称加密获取,所述各个参与方包括第一方,其中,输出所述计算结果包括,使用所述第一方的工作密钥对所述计算结果加密,以获取第一加密结果;以及输出用于发送给所述第一方的第一加密结果。


20.根据权利要求18所述的方法,其中,所述加密数据通过非对称加密获取,所述工作密钥是所述非对称加密的解密密钥,所述非对称加密还包括与所述工作密钥对应的加密密钥,所述各个参与方包括第一方,其中,所述第一方的加密密钥基于与所述第一方相应的第一密钥获取,其中,输出所述计算结果包括,使用所述第一方的加密密钥对所述计算结果加密,以获取第一加密结果;以及输出用于发送给所述第一方的第一加密结果。


21.根据权利要求18所述的方法,其中,所述至少一个第一密钥是所述安全计算的各个参与方各自的第一密钥,所述FPGA硬件中还存储有所述各个参与方各自的第二密钥,所述加密数据通过非对称加密获取,所述各个参与方包括第一方,其中,所述第一方的工作密钥为所述第一密钥,所述第一方的第二密钥为与所述第一方的第一密钥对应的用于加密的密钥,其中,输出所述计算结果包括,使用所述第一方的第二密钥对所述计算结果加密,以获取第一加密结果;以及输出用于发送给所述第一方的第一加密结果。


22.根据权利要求18所述的方法,其中,所述至少一个第一密钥是所述安全计算的预定数目的可信管理方各自的第一密钥,所述各个参与方中包括第一方,所述预定数目的可信管理方中包括第一管理方,其中,所述第一管理方与所述第一方相对应,所述FPGA硬件基于如下步骤获取所述第一方的工作密钥:
获取所述第一方的加密的工作密钥,所述加密的工作密钥通过由所述第一管理方使用其第一密钥对第一方的工作密钥加密而生成,其中,所述第一方的工作密钥由所述第一管理方从所述第一方接收;以及
使用所述第一管理方的第一密钥对所述加密的工作密钥解密,以获取所述第一方的工作密钥。


23.一种初始化FPGA硬件以用于安全计算的装置,所述FPGA硬件包括FPGA芯片、和与所述FPGA芯片连接的第一存储器,所述第一存储器为非易失性存储器,所述FPGA芯片基于所述第一存储器中当前存储的配置文件配置,所述装置部署在所述FPGA硬件端,包括:
获取单元,配置为,获取被存入所述第一存储器中的首版配置文件,其中,所述首版配置文件中包括至少一个初始密钥,...

【专利技术属性】
技术研发人员:潘国振涂依晨周妮徐建国刘永超
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1