加速单元、相关装置和方法制造方法及图纸

技术编号:34359626 阅读:13 留言:0更新日期:2022-07-31 07:15
本公开提供了一种加速单元、相关装置和方法。该加速单元包括:一个或多个数论变换单元,用于执行同态加密过程中的数论变换;一个或多个算术逻辑单元,用于执行同态加密过程中的算术运算;调度器,用于将待执行同态加密指令中的运算分配给所述一个或多个数论变换单元和所述一个或多个算术逻辑单元中的至少一个。本公开实施例提高了同态加密硬件部署的通用性、全局性能、和可扩展性。全局性能、和可扩展性。全局性能、和可扩展性。

【技术实现步骤摘要】
加速单元、相关装置和方法


[0001]本公开涉及芯片领域,更具体而言,涉及一种加速单元、相关装置和方法。

技术介绍

[0002]大数据为机器学习、模型分析提供了巨大机遇,但是出于隐私考虑,数据往往不能共享,形成数据孤岛。例如,平台需要收集用户终端上用户的行为偏好数据,以此进行大数据分析,进行资源更合理的投放,但用户又不希望暴露自己的隐私。基于同态加密的隐私计算应运而生。它意在打破数据孤岛,在不泄露数据隐私的前提下利用数据进行计算建模。同态加密是指这样一种加密函数,对明文进行环上的加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的。由于这个良好的性质,可以委托第三方对数据进行处理而不泄露信息。具有同态性质的加密函数是指两个明文a、b满足Dec(En(a)

En(b))=a

b的加密函数,其中En是加密运算,Dec是解密运算,



分别对应明文和密文域上的运算。当

代表加法时,称该加密为加同态加密:当

代表乘法时,称该加密为乘同态加密。
[0003]目前,同态加密在硬件上可以通过中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)等实现。无论是CPU、GPU,还是FPGA,其硬件都是针对同态加密的局部算法设计,有损于全局性能,且硬件针对同态加密的专用算法设计,通用性差。一旦同态加密的算法改变,原来规划的CPU、GPU或FPGA等硬件方式可能不再适用,需要迁移到另一种硬件方式。

技术实现思路

[0004]有鉴于此,本公开旨在提供一种通用的、全局性能好的、扩展性强的同态加密的硬件实现方式。
[0005]根据本公开的一方面,提供了一种加速单元,包括:
[0006]一个或多个数论变换单元,用于执行同态加密过程中的数论变换;
[0007]一个或多个算术逻辑单元,用于执行同态加密过程中的算术运算;
[0008]调度器,用于将待执行同态加密指令中的运算分配给所述一个或多个数论变换单元和所述一个或多个算术逻辑单元中的至少一个。
[0009]可选地,该加速单元还包括:
[0010]指令缓冲器,用于接收控制信号,所述控制信号包括所述待执行同态加密指令;
[0011]取指令单元,用于从所述指令缓冲器取出所述待执行同态加密指令;
[0012]指令译码单元,用于对所述取指令单元取回的所述待执行同态加密指令进行译码,并将译码后的所述待执行同态加密指令发送给所述调度器。
[0013]可选地,所述控制信号还包括访问存储器地址;所述加速单元还包括:存储器接口,与存储器进行数据传输;直接存储器访问单元,用于接收所述指令缓冲器发来的访问存储器地址,指示所述存储器接口按照所述访问存储器地址取所述待执行同态加密指令需要的数据。
[0014]可选地,所述调度器将所述待执行同态加密指令分成以下运算中的至少一个:模乘运算、模加运算、数论变换、逆数论变换、模交换、密钥交换、重新伸缩。
[0015]可选地,对于所述模乘运算或模加运算,所述调度器分配给所述一个或多个算术逻辑单元中的至少一个。
[0016]可选地,对于所述数论变换,所述调度器分配给所述一个或多个数论变换单元中的至少一个。
[0017]可选地,对于所述逆数论变换,所述调度器将所述逆数论变换分解成数论变换与模乘运算的组合,将分解成的数论变换分配给所述一个或多个数论变换单元中的至少一个,分解成的模乘运算分配给所述一个或多个算术逻辑单元中的至少一个。
[0018]可选地,对于所述模交换,所述调度器将所述模交换分解成模加和模乘的组合,分配给所述一个或多个算术逻辑单元中的至少一个。
[0019]可选地,对于所述密钥交换,所述调度器将所述密钥交换分解成数论变换、逆数论变换、模乘、模交换,并按照分解结果分配给所述一个或多个数论变换单元或所述一个或多个算术逻辑单元中的至少一个。
[0020]可选地,对于所述重新伸缩,所述调度器将所述重新伸缩分解成数论变换、逆数论变换、模交换,并按照分解结果分配给所述一个或多个数论变换单元或所述一个或多个算术逻辑单元中的至少一个。
[0021]可选地,所述一个或多个数论变换单元中的至少一个包括:
[0022]第一多项式系数存储子单元;
[0023]第二多项式系数存储子单元;
[0024]旋转因子存储子单元,用于存储所述数论变换中的旋转因子;
[0025]蝴蝶处理子单元,用于执行第一蝴蝶处理和第二蝴蝶处理,其中,所述第一蝴蝶处理包括:从所述第一多项式系数存储子单元读取第一多项式系数对,从所述旋转因子存储子单元中获取该第一多项式系数对所对应的旋转因子,基于该第一多项式系数对和所述旋转因子得到第二多项式系数对,写入所述第二多项式系数存储子单元;所述第二蝴蝶处理包括:从所述第二多项式系数存储子单元读取第三多项式系数对,从所述旋转因子存储子单元中获取该第三多项式系数对所对应的旋转因子,基于该第三多项式系数对和所述旋转因子得到第四多项式系数对,写入所述第一多项式系数存储子单元。
[0026]可选地,所述一个或多个数论变换单元中的至少一个还包括:控制单元,用于控制所述第一多项式系数存储子单元、所述第二多项式系数存储子单元、所述旋转因子存储子单元和所述蝴蝶处理子单元的运行。
[0027]可选地,所述第一多项式系数存储子单元和所述第二多项式系数存储子单元各包括多个存储体,每个存储体具有相应索引,所述第一多项式系数对与所述第三多项式系数对来自相同索引的存储体,所述第二多项式系数对与所述第四多项式系数对来自相同索引的存储体。
[0028]可选地,所述第一多项式系数存储子单元或所述第二多项式系数存储子单元中的存储体有M个,所述蝴蝶处理子单元有M/2个,且对于单个蝴蝶处理子单元,所述第一多项式系数对来自的一对存储体的索引与所述第三多项式系数对来自的一对存储体的索引相同,且该对存储体中的两个存储体的索引相差M/2;所述第二多项式系数对来自的一对存储体
的索引与所述第四多项式系数对来自的一对存储体的索引相同,且该对存储体中的两个存储体的索引相邻。
[0029]可选地,在经过log2M次的第一蝴蝶处理或第二蝴蝶处理后,所述控制单元将所述第一多项式系数存储子单元或所述第二多项式系数存储子单元转置,再由所述蝴蝶处理子单元进行log2M的第一蝴蝶处理或第二蝴蝶处理,其中,所述转置包括:将转置前所述第一多项式系数存储子单元或所述第二多项式系数存储子单元的各存储体中排队在同一序号的多项式系数取出,按照存储体索引顺序放置在转置后的一个存储体中。
[0030]可选地,所述蝴蝶处理子单元包括第一多路选通器、第二多路选通器、第三多路选通器、第四多路选通器、第一加法器、第二加法器、第一减法器、第二减法器、第一乘法器。
[0031]可选地,所述第一多项式系数对或第三多项式系数对中的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加速单元,包括:一个或多个数论变换单元,用于执行同态加密过程中的数论变换;一个或多个算术逻辑单元,用于执行同态加密过程中的算术运算;调度器,用于将待执行同态加密指令中的运算分配给所述一个或多个数论变换单元和所述一个或多个算术逻辑单元中的至少一个。2.根据权利要求1所述的加速单元,还包括:指令缓冲器,用于接收控制信号,所述控制信号包括所述待执行同态加密指令;取指令单元,用于从所述指令缓冲器取出所述待执行同态加密指令;指令译码单元,用于对所述取指令单元取回的所述待执行同态加密指令进行译码,并将译码后的所述待执行同态加密指令发送给所述调度器。3.根据权利要求2所述的加速单元,其中,所述控制信号还包括访问存储器地址;所述加速单元还包括:存储器接口,与存储器进行数据传输;直接存储器访问单元,用于接收所述指令缓冲器发来的访问存储器地址,指示所述存储器接口按照所述访问存储器地址取所述待执行同态加密指令需要的数据。4.根据权利要求1所述的加速单元,其中,所述调度器将所述待执行同态加密指令分成以下运算中的至少一个:模乘运算、模加运算、数论变换、逆数论变换、模交换、密钥交换、重新伸缩。5.根据权利要求4所述的加速单元,其中,对于所述模乘运算或模加运算,所述调度器分配给所述一个或多个算术逻辑单元中的至少一个。6.根据权利要求4所述的加速单元,其中,对于所述数论变换,所述调度器分配给所述一个或多个数论变换单元中的至少一个。7.根据权利要求4所述的加速单元,其中,对于所述逆数论变换,所述调度器将所述逆数论变换分解成数论变换与模乘运算的组合,将分解成的数论变换分配给所述一个或多个数论变换单元中的至少一个,分解成的模乘运算分配给所述一个或多个算术逻辑单元中的至少一个。8.根据权利要求7所述的加速单元,其中,对于所述模交换,所述调度器将所述模交换分解成模加和模乘的组合,分配给所述一个或多个算术逻辑单元中的至少一个。9.根据权利要求8所述的加速单元,其中,对于所述密钥交换,所述调度器将所述密钥交换分解成数论变换、逆数论变换、模乘、模交换,并按照分解结果分配给所述一个或多个数论变换单元或所述一个或多个算术逻辑单元中的至少一个。10.根据权利要求8所述的加速单元,其中,对于所述重新伸缩,所述调度器将所述重新伸缩分解成数论变换、逆数论变换、模交换,并按照分解结果分配给所述一个或多个数论变换单元或所述一个或多个算术逻辑单元中的至少一个。11.根据权利要求1所述的加速单元,其中,所述一个或多个数论变换单元中的至少一个包括:第一多项式系数存储子单元;第二多项式系数存储子单元;旋转因子存储子单元,用于存储所述数论变换中的旋转因子;
蝴蝶处理子单元,用于执行第一蝴蝶处理和第二蝴蝶处理,其中,所述第一蝴蝶处理包括:从所述第一多项式系数存储子单元读取第一多项式系数对,从所述旋转因子存储子单元中获取该第一多项式系数对所对应的旋转因子,基于该第一多项式系数对和所述旋转因子得到第二多项式系数对,写入所述第二多项式系数存储子单元;所述第二蝴蝶处理包括:从所述第二多项式系数存储子单元读取第三多项式系数对,从所述旋转因子存储子单元中获取该第三多项式系数对所对应的旋转因子,基于该第三多项式系数对和所述旋转因子得到第四多项式系数对,写入所述第一多项式系数存储子单元。12.根据权利要求11所述的加速单元,其中,所述一个或多个数论变换单元中的至少一个还包括:控制单元,用于控制所述第一多项式系数存储子单元、所述第二多项式系数存储子单元、所述旋转因子存储子单元和所述蝴蝶处理子单元的运行。13.根据权利要求11所述的加速单元,其中,所述第一多项式系数存储子单元和所述第二多项式系数存储子单元各包括多个存储体,每个存储体具有相应索引,所述第一多项式系数对与所述第三多项式系数对来自相同索引的存储体,所述第二多项式系数对与所述第四多项式系数对来自相同索引的存储体。14.根据权利要求13所述的加速单元,其中,所述第一多项式系数存储子单元或所述第二多项式系数存储子单元中的存储体有M个,所述蝴蝶处理子单元有M/2个,且对于单个蝴蝶处理子单元,所述第一多项式系数对来自的一对存储体的索引与所述第三多项式系数对来自的一对存储体的索引相同,且该对存储体中的两个存储体的索引相差M/2;所述第二多项式系数对来自的一对存储体的索引与所述第四多项式系数对来自的一对存储体的索引相同,且该对存储体中的两个存储体的索引相邻。15.根据权利要求14所述的加速单元,其中,在经过log2M次的第一蝴蝶处理或第二蝴蝶处理后,所述控制单元将所述第一多项式系数存储子单元或所述第二多项式系数存储...

【专利技术属性】
技术研发人员:任轩乐
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1