当前位置: 首页 > 专利查询>胡雅婷专利>正文

全同态加密算法的硬件加速器、同态加密方法及电子设备技术

技术编号:38331826 阅读:13 留言:0更新日期:2023-07-29 09:14
本公开提供一种全同态加密算法的硬件加速器、同态加密方法及电子设备,硬件加速器包括核心计算模块;核心计算模块包括多种核心算子模块,其中,一种核心算子模块用于实现一种基础计算,所述基础计算为:多种同态加密算法共用的、组合实现全部同态加密算法的计算;所述内存模块,用于接收和存储主机发送的待计算数据和同态加密算法类型;内存控制器,用于根据核心计算单元的计算需求,将待计算数据和同态加密算法类型从内存模块传输至缓存模块;核心计算模块,用于从缓存模块中获取待计算数据和同态加密算法类型,并针对所述同态加密算法类型,组合调用本地多种核心算子模块对所述待计算数据执行所述同态加密算法类型对应的同态加密计算。态加密计算。态加密计算。

【技术实现步骤摘要】
全同态加密算法的硬件加速器、同态加密方法及电子设备


[0001]本公开涉及计算机
,尤其涉及一种全同态加密算法的加速器、同态加密方法及电子设备。

技术介绍

[0002]利用同态加密算法对隐私数据进行处理,是目前最有效的隐私数据保护方法之一。在具体的应用场景中,用户可以将自己的隐私数据,如财务记录、病史、个人隐私习惯等隐私数据加密后发送给第三方服务商,第三方服务商直接对加密后的隐私数据进行同态加密计算处理得到密文的计算结果。然后将密文的计算处理结果返回给用户,用户对密文计算处理结果进行解密从而得到明文的计算结果。在整个过程中,用户的隐私数据对第三方服务商来说是可用但不可见的,因此,既让第三方服务商对用户的隐私数据进行了计算处理,又不会使用户的隐私数据泄露给第三方服务商。
[0003]由于第三方服务商需要对加密后的隐私数据进行同态加密计算,并且通常会涉及到各种复杂的计算,因此,第三方服务商需要在自己的服务器上部署同态加密硬件加速器来处理各种计算,然而目前由于同态加密硬件加速器上可编程硬件资源的限制,目前的同态加密硬件加速器通常无法实现全部的同态加密算法,进而无法应对全部的同态加密场景。

技术实现思路

[0004]本公开的目的是提供一种全同态加密算法的硬件加速器、同态加密方法及电子设备,以解决的问题目前的同态加密硬件加速器无法实现全同态加密算法的问题。
[0005]根据本公开的一个方面,提供一种全同态加密算法的硬件加速器,所述硬件加速器包括内存模块、内存控制器、缓存模块以及核心计算模块;所述核心计算模块包括多种核心算子模块,其中,一种核心算子模块用于实现一种基础计算,所述基础计算为:多种同态加密算法共用的、组合实现全部同态加密算法的计算;
[0006]所述内存模块,用于接收和存储主机发送的待计算数据和同态加密算法类型;
[0007]内存控制器,用于根据核心计算单元的计算需求,将待计算数据和同态加密算法类型从内存模块传输至缓存模块;
[0008]核心计算模块,用于从缓存模块中获取待计算数据和同态加密算法类型,并针对所述同态加密算法类型,组合调用本地多种核心算子模块对所述待计算数据执行所述同态加密算法类型对应的同态加密计算。
[0009]根据本公开的第二个方面,提出一种同态加密方法,应用于全同态加密算法的硬件加速器,所述硬件加速器包括内存模块、内存控制器、缓存模块以及核心计算模块;所述核心计算模块包括多种核心算子模块,其中,一种核心算子模块用于实现一种基础计算,所述基础计算为:多种同态加密算法共用的、组合实现全部同态加密算法的计算;所述方法包括:
[0010]所述内存模块接收和存储主机发送的待计算数据和同态加密算法类型;
[0011]内存控制器根据核心计算单元的计算需求,将待计算数据和同态加密算法类型从内存模块传输至缓存模块;
[0012]核心计算模块从缓存模块中获取待计算数据和同态加密算法类型,并针对所述同态加密算法类型,组合调用本地多种核心算子模块对所述待计算数据执行所述同态加密算法类型对应的同态加密计算。
[0013]根据本公开的第三个方面,提出一种电子设备,包括第一方面所述的全同态加密算法的硬件加速器。
[0014]采用本申请提出的一种全同态加密算法的硬件加速器、同态加密方法及电子设备,将全部同态加密算法拆分出多种共用的基础计算,在硬件加速器基于可编程硬件资源实例化这些基础计算,形成多种核心算子模块,从而在需要执行某种同态加密算法时,即可以对多种核心算子模块进行组合调用,从而能够实现全部的同态加密算法。相对于将全部同态加密算法的硬件实例化在硬件加速器上,仅将各种核心算子模块实例化在硬件加速器上,可以极大的减少对硬件加速器上可编程硬件资源的使用。进而,基于本申请提出的全同态加密算法的硬件加速器在不需要消耗较多的可编程硬件资源的情况下,就可以使硬件加速器处理全部的同态加密算法,进而可以满足各种同态加密算法的使用场景。
[0015]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0016]图1为本公开一个实施例提供一种的全同态加密算法的硬件加速器的结构示意图;
[0017]图2为本公开一个实施例提供的一种同态加密算法与基本操作的对应关系示意图;
[0018]图3为本公开一个实施例提供的另一种的全同态加密算法的硬件加速器的结构示意图;
[0019]图4为本公开一个实施例提供的一种基于本申请的硬件加速器实现NTT/INTT操作的流程示意图;
[0020]图5为本公开一个实施例提供的一种基于本申请的硬件加速器实现自同构操作的流程示意图;
[0021]图6为本公开一个实施例提供的一种MM/MA的电路结构示意图;
[0022]图7为本公开一个实施例提供的一种RNSconv的电路结构示意图。
具体实施方式
[0023]在介绍本公开实施例之前,应当说明的是:
[0024]本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
[0025]本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区
分。
[0026]本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
[0027]应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
[0028]为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0029]近年来,同态加密算法发展迅速,虽然目前已经提出了一系列的同态加密算法,但其理论和实际应用之间仍有很大的差距。即使使用高度优化的同态加密算法库,同态加密算法应用程序在CPU上的运行速度仍然比未加密的应用程序慢10,000到100,000倍。由于同态加密算法所使用的密文大小要比文明大得多,并且对于密文的计算强度要比对明文的计算强度大几个数量级,因此,利用并不擅长计算的CPU来完成同态加密算法是十分低效的,并且也会严重影响CPU对其他事务的处理能力。
[0030]因此,近年来的研究致力于设计特定的硬件加速器,将同态加密算法涉及的计算从CPU中解放出来,以达到加速同态加密算法的目的。根据所采用的硬件,它们可以分为三类:基于GPU(graphics processing unit,图形处理器)的硬件加速器、基于FPGA本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种全同态加密算法的硬件加速器,其特征在于,所述硬件加速器包括内存模块、内存控制器、缓存模块以及核心计算模块;所述核心计算模块包括多种核心算子模块,其中,一种核心算子模块用于实现一种基础计算,所述基础计算为:多种同态加密算法共用的、组合实现全部同态加密算法的计算;所述内存模块,用于接收和存储主机发送的待计算数据和同态加密算法类型;内存控制器,用于根据核心计算单元的计算需求,将待计算数据和同态加密算法类型从内存模块传输至缓存模块;核心计算模块,用于从缓存模块中获取待计算数据和同态加密算法类型,并针对所述同态加密算法类型,组合调用本地多种核心算子模块对所述待计算数据执行所述同态加密算法类型对应的同态加密计算。2.根据权利要求1所述的硬件加速器,其特征在于,所述多种核心算子模块包括模加算子模块、模乘算子模块、NTT/INTT算子模块、自同构算子模块以及取模算子模块;所述同态加密算法类型包括:同态加法、同态乘法、缩放、秘钥切换、旋转、自举、Modup和Moddown。3.根据权利要求2所述的硬件加速器,所述同态加密算法类型为自举或旋转;所述核心计算模块,具体用于组合调用本地的模加算子模块、模乘算子模块、NTT/INTT算子模块、自同构算子模块以及取模算子模块,对所述待计算数据执行自举或旋转计算。4.根据权利要求2所述的硬件加速器,所述同态加密算法类型为模乘、密钥切换或缩放;所述核心计算模块,具体用于组合调用本地的模加算子模块、模乘算子模块、NTT/INTT算子模块以及取模算子模块,对所述待计算数据执行模乘、密钥切换或缩放计算。5.根据权利要求2所述的硬件加速器,所述NTT/INTT算子模块用于实现融合旋转因子后的NTT/INTT运算,所述融合旋转因子后的NTT/INTT运算包括三次迭代,在每次迭代中,以8个操作数为一组,输入若干组操作数,或者以8个操作数为一组,输出若干组操作数;所述缓存模块包括BRAMS,其中BRAMS包括若干个数据行;所述核心计算模块,在调用NTT/INTT算子模块时,具体用于在第一次迭代时,将NTT/INTT算子模块输出的每一组操作数在一个时钟周期,按照索引值的顺序并行输入至BRAMS的连续的8个数据行中,其中,每组操作数中各操作数的索引值间隔为1,后一组操作数的索引值最小的操作数,存储在前一组中索引值第二小的操作数所在的行;在第二次迭代时,在一个时钟周期,从所述BRAMS的连续的8个数据行中,并行获取索引值间隔为8的8个操作数至NTT/INTT算子模块;在第三次迭代时,将NTT/INTT算子模块输出的每一组操作数在一个时钟周期,按照索引值的顺序并行输入至BRAMS的连续的8个数据行中,其中,每组操作数中各操作数的索引值间隔为64,后一组操作数的索引值最小的操作数,存储在前一组中索引值第二小的操作数所在的行。6.根据权利要求2所述的硬件加速器,所述缓存模块包括BRAMS,其中BRAMS包括若干个数据行;所述自同构算子模块包括映射缓存区;所述核心计算模块,在调用所述自同构算子模块时,具体用于将待计算的长向量均分为包括若干数据的若干个子向量;
针对每个子向量,将该子向量中的每个数据分别并行的存储在BRAMS的若干行中;在所述映射缓存区中,根据第一行映射公式和第二行映射公式,对所述若干子向量进行行映射,得到行映射结果;针对行映射结果,利用列映射公式进行列映射,得到所述若干子向量的映射结果,从而得到所述待计算的长向量的映射结果。7.一种同态加密方法,其特征在于,应用于全同态加密算法的硬件加速器,所述硬件加速器包括内存模块、内存控制器、缓存模块以及核心计算模块;所述核心计算模块包括多种核心算子模块,其中,一种核心算子模块用于实现一种基础计算,所述基础计算为:多种同态加密算法共用的、组合实现全部同态加密算法的计算;所述方法包括:所述内...

【专利技术属性】
技术研发人员:胡雅婷
申请(专利权)人:胡雅婷
类型:发明
国别省市:

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

1