System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书一个或多个实施例涉及计算机领域,尤其涉及针对取模乘法的处理方法和装置。
技术介绍
1、取模乘法可以表示为ab mod 2f,其是模乘计算中基础且重要的操作,其实现通常可以分位两个步骤:完整的n位乘法ab,保留低f位的信息。其中,被乘数a和乘数b可能属于隐私数据。
2、karatsuba算法可以用于优化乘法ab的实现,这种算法主要应用于两个大数的相乘,原理是将大数分成若干段后变成较小的数,然后针对较小的数进行乘法运算,附带少量的加法操作和移位操作,从而得到两个大数的相乘的结果。
3、现有技术中,上述取模乘法的实现方案仍然不够高效,需要提升其效率。
技术实现思路
1、本说明书一个或多个实施例描述了一种针对取模乘法的处理方法和装置,能够提升其效率。
2、第一方面,提供了一种针对取模乘法的处理方法,在全同态处理芯片中执行,方法包括:
3、从第一存储单元中获取第一位宽的被乘数比特串和乘数比特串,以及取模乘法的模数,所述模数为2的f次幂;
4、将所述被乘数比特串等宽拆解成依序排列的k个第一片段,以及将所述乘数比特串等宽拆解成依序排列的k个第二片段;
5、通过对各个第一片段和第二片段进行选择性地组合相乘,得到若干乘积项的组合形成的若干个分段乘法结果,其中,任意乘积项中第一片段和第二片段各自的排序序号之和不大于目标阈值,所述目标阈值根据f确定;
6、利用加法器和移位电路,对所述若干个分段乘法结果进行加法和移
7、在一种可能的实施方式中,通过对各个第一片段和第二片段进行选择性地组合相乘,得到若干乘积项的组合形成的若干个分段乘法结果,包括:
8、对第一估值矩阵与所述k个第一片段依序排列构成的第一列向量,进行矩阵和向量之间的乘法运算,得到第一选取列向量,其中第一选取列向量的任意元素为第一片段或其组合;
9、对第二估值矩阵与所述k个第二片段依序排列构成的第二列向量,进行矩阵和向量之间的乘法运算,得到第二选取列向量,其中第二选取列向量的任意元素为第二片段或其组合;其中,所述第二估值矩阵与所述第一估值矩阵不同,且各自的矩阵元素为有符号数;
10、对第一选取列向量和第二选取列向量中相同位置的元素进行相乘,得到第三列向量,其中第三列向量的任意元素为第一片段和第二片段的乘积项或其组合形成的分段乘法结果。
11、进一步地,所述对所述若干个分段乘法结果进行加法和移位运算,得到取模乘法结果,包括:
12、将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,得到所述取模乘法结果;其中,所述移位向量为基数的0到k-1次幂依序排列构成的行向量,所述基数为2的第二位宽次幂,所述第二位宽为第一位宽除以k后向上取整的结果;所述插值矩阵的元素为0或1。
13、进一步地,所述插值矩阵包含n1个目标列,所述n1个目标列均包含相同的目标片段,所述目标片段具有n2个1元素,且首尾元素均为1。
14、进一步地,所述将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,包括:
15、通过硬件计算单元实现所述n1个目标列中各自的目标片段起始行对应的n1个分段乘法结果之和,作为第一乘法结果;
16、利用移位电路,根据所述目标片段中非首位的n2-1个元素相对于首位元素的行差值,分别对所述第一乘法结果进行基于所述基数的移位,得到n2-1个移位结果;
17、利用加法器对所述第一乘法结果和所述n2-1个移位结果进行求和,用于得到所述取模乘法结果。
18、进一步地,所述将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,得到所述取模乘法结果,包括:
19、将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,得到初始结果;
20、当f小于或等于k与第二位宽的乘积时,将所述初始结果作为所述取模乘法结果;
21、当f大于k与第二位宽的乘积时,计算高位信息的补充值,根据所述初始结果和所述补充值确定所述取模乘法结果。
22、进一步地,当k为4时,所述第一估值矩阵和所述第二估值矩阵为8行4列的矩阵,所述插值矩阵为4行8列的矩阵。
23、进一步地,所述第一估值矩阵包括5个第一类行向量和3个第二类行向量,所述第一类行向量中仅一个元素为1,其余均为0;第二类行向量中包括一个1元素,一个-1元素,其余为0;其中,1元素和-1元素的列序号之和不大于所述目标阈值;
24、所述第二估值矩阵包括5个第一类行向量和3个第二类行向量,其中各第二类行向量中的非零元素的位置与第一估值矩阵对应相同,非零元素的符号与第一估值矩阵相反。
25、进一步地,当k为4时,所述插值矩阵为4行8列的原始矩阵上添加一行构成的调整矩阵,使得调整矩阵包含3个目标列。
26、进一步地,当k为2时,所述第一估值矩阵和所述第二估值矩阵为3行2列的矩阵,所述插值矩阵为2行3列的矩阵。
27、进一步地,所述第一估值矩阵的各个行中均只具有一个1元素;
28、所述第二估值矩阵的各个行中均只具有一个1元素。
29、进一步地,所述插值矩阵的各个列中均只具有一个1元素。
30、进一步地,当k为3时,所述第一估值矩阵和所述第二估值矩阵为5行3列的矩阵,所述插值矩阵为3行5列的矩阵。
31、进一步地,所述第一估值矩阵包括4个第一类行向量和1个第二类行向量,所述第一类行向量中仅一个元素为1,其余均为0;第二类行向量中包括一个1元素,一个-1元素,其余为0;其中,1元素和-1元素的列序号之和不大于所述目标阈值;
32、所述第二估值矩阵包括4个第一类行向量和1个第二类行向量,其中各第二类行向量中的非零元素的位置与第一估值矩阵对应相同,非零元素的符号与第一估值矩阵相反。
33、进一步地,当k为3时,所述插值矩阵为3行5列的矩阵,其包含2个目标列,每个目标列包含2个1元素。
34、第二方面,提供了一种针对取模乘法的处理装置,装置设置于全同态处理芯片中,包括:
35、获取单元,用于从第一存储单元中获取第一位宽的被乘数比特串和乘数比特串,以及取模乘法的模数,所述模数为2的f次幂;
36、拆解单元,用于将所述获取单元获取的被乘数比特串等宽拆解成依序排列的k个第一片段,以及将所述获取单元获取的乘数比特串等宽拆解成依序排列的k个第二片段;
37、组合乘法单元,用于通过对所述拆解单元得到的各个第一片段和第二片段进行选择性地组合相乘,得到若干乘积项的组合形成的若干个分段乘法结果,其中,任意乘积项中第一片段和第二片段各自的排序序号之和不大于目标阈值,所述目标阈值根据f确定;
38、运算单元,用于利用加本文档来自技高网...
【技术保护点】
1.一种针对取模乘法的处理方法,在全同态处理芯片中执行,所述方法包括:
2.如权利要求1所述的方法,其中,通过对各个第一片段和第二片段进行选择性地组合相乘,得到若干乘积项的组合形成的若干个分段乘法结果,包括:
3.如权利要求2所述的方法,其中,所述对所述若干个分段乘法结果进行加法和移位运算,得到取模乘法结果,包括:
4.如权利要求3所述的方法,其中,所述插值矩阵包含n1个目标列,所述n1个目标列均包含相同的目标片段,所述目标片段具有n2个1元素,且首尾元素均为1。
5.如权利要求4所述的方法,其中,所述将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,包括:
6.如权利要求3所述的方法,其中,所述将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,得到所述取模乘法结果,包括:
7.如权利要求3所述的方法,其中,当k为4时,所述第一估值矩阵和所述第二估值矩阵为8行4列的矩阵,所述插值矩阵为4行8列的矩阵。
8.如权利要求7所述的方法,其中,所述第
9.如权利要求4所述的方法,其中,当k为4时,所述插值矩阵为4行8列的原始矩阵上添加一行构成的调整矩阵,使得调整矩阵包含3个目标列。
10.如权利要求3所述的方法,其中,当k为2时,所述第一估值矩阵和所述第二估值矩阵为3行2列的矩阵,所述插值矩阵为2行3列的矩阵。
11.如权利要求10所述的方法,其中,所述第一估值矩阵的各个行中均只具有一个1元素;
12.如权利要求11所述的方法,其中,所述插值矩阵的各个列中均只具有一个1元素。
13.如权利要求3所述的方法,其中,当k为3时,所述第一估值矩阵和所述第二估值矩阵为5行3列的矩阵,所述插值矩阵为3行5列的矩阵。
14.如权利要求13所述的方法,其中,所述第一估值矩阵包括4个第一类行向量和1个第二类行向量,所述第一类行向量中仅一个元素为1,其余均为0;第二类行向量中包括一个1元素,一个-1元素,其余为0;其中,1元素和-1元素的列序号之和不大于所述目标阈值;
15.如权利要求4所述的方法,其中,当k为3时,所述插值矩阵为3行5列的矩阵,其包含2个目标列,每个目标列包含2个1元素。
16.一种针对取模乘法的处理装置,所述装置设置于全同态处理芯片中,包括:
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-15中任一项的所述的方法。
18.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-15中任一项的所述的方法。
...【技术特征摘要】
1.一种针对取模乘法的处理方法,在全同态处理芯片中执行,所述方法包括:
2.如权利要求1所述的方法,其中,通过对各个第一片段和第二片段进行选择性地组合相乘,得到若干乘积项的组合形成的若干个分段乘法结果,包括:
3.如权利要求2所述的方法,其中,所述对所述若干个分段乘法结果进行加法和移位运算,得到取模乘法结果,包括:
4.如权利要求3所述的方法,其中,所述插值矩阵包含n1个目标列,所述n1个目标列均包含相同的目标片段,所述目标片段具有n2个1元素,且首尾元素均为1。
5.如权利要求4所述的方法,其中,所述将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,包括:
6.如权利要求3所述的方法,其中,所述将插值矩阵和第三列向量相乘,得到中间乘法结果,再将移位向量与中间乘法结果相乘,得到所述取模乘法结果,包括:
7.如权利要求3所述的方法,其中,当k为4时,所述第一估值矩阵和所述第二估值矩阵为8行4列的矩阵,所述插值矩阵为4行8列的矩阵。
8.如权利要求7所述的方法,其中,所述第一估值矩阵包括5个第一类行向量和3个第二类行向量,所述第一类行向量中仅一个元素为1,其余均为0;第二类行向量中包括一个1元素,一个-1元素,其余为0;其中,1元素和-1元素的列序号之和不大于所述目标阈值;
9.如权利要求4所述的方法,其中,当k为4时,所述插值矩阵为4行8列的原始矩阵上添加一行构成的调...
【专利技术属性】
技术研发人员:张博,闫守孟,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。