【技术实现步骤摘要】
全同态加密算法的硬件加速器、同态加密方法及电子设备
[0001]本公开涉及计算机
,尤其涉及一种全同态加密算法的加速器、同态加密方法及电子设备。
技术介绍
[0002]利用同态加密算法对隐私数据进行处理,是目前最有效的隐私数据保护方法之一。在具体的应用场景中,用户可以将自己的隐私数据,如财务记录、病史、个人隐私习惯等隐私数据加密后发送给第三方服务商,第三方服务商直接对加密后的隐私数据进行同态加密计算处理得到密文的计算结果。然后将密文的计算处理结果返回给用户,用户对密文计算处理结果进行解密从而得到明文的计算结果。在整个过程中,用户的隐私数据对第三方服务商来说是可用但不可见的,因此,既让第三方服务商对用户的隐私数据进行了计算处理,又不会使用户的隐私数据泄露给第三方服务商。
[0003]由于第三方服务商需要对加密后的隐私数据进行同态加密计算,并且通常会涉及到各种复杂的计算,因此,第三方服务商需要在自己的服务器上部署同态加密硬件加速器来处理各种计算,然而目前由于同态加密硬件加速器上可编程硬件资源的限制,目前的同态加密硬件加速器通常无法实现全部的同态加密算法,进而无法应对全部的同态加密场景。
技术实现思路
[0004]本公开的目的是提供一种全同态加密算法的硬件加速器、同态加密方法及电子设备,以解决的问题目前的同态加密硬件加速器无法实现全同态加密算法的问题。
[0005]根据本公开的一个方面,提供一种全同态加密算法的硬件加速器,所述硬件加速器包括内存模块、内存控制器、缓存模块以及核心计算模块 ...
【技术保护点】
【技术特征摘要】
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.一种同态加密方法,其特征在于,应用于全同态加密算法的硬件加速器,所述硬件加速器包括内存模块、内存控制器、缓存模块以及核心计算模块;所述核心计算模块包括多种核心算子模块,其中,一种核心算子模块用于实现一种基础计算,所述基础计算为:多种同态加密算法共用的、组合实现全部同态加密算法的计算;所述方法包括:所述内...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。