模乘操作的执行方法及处理器与流程

文档序号:39949980发布日期:2024-11-12 13:58阅读:59来源:国知局
模乘操作的执行方法及处理器与流程

本说明书一个或多个实施例涉及计算机,尤其涉及一种模乘操作的执行方法及装置,以及一种处理器。


背景技术:

1、模乘操作指计算两个整数的乘积后再进行取模运算。在隐私计算和密码学等领域,如格密码、rsa加密和椭圆曲线加密等算法中,模乘操作是核心计算步骤,也是这些算法的性能瓶颈。

2、由此,本说明书实施例提出一种高效的模乘操作算子,可以显著提高相关算法的计算效率,减少处理器的负载和能耗,从而提高系统的安全性和可靠性。


技术实现思路

1、本说明书实施例描述一种模乘操作的执行方法及处理器,

2、根据第一方面,提供一种模乘操作的执行方法,由目标处理器执行;所述目标处理器包括通用处理单元和浮点数计算单元。该方法包括:所述通用处理单元读取目标系数,以及待进行模乘操作的两个目标因子和对应的模数;所述目标系数基于所述模数预计算得到。所述浮点数计算单元处理所述两个目标因子对应的两个浮点数,得到二者的第一乘积对应的第一高位数值和第一低位数值。所述浮点数计算单元处理所述第一低位数值和目标系数对应的两个浮点数,得到二者的第二乘积对应的第二高位数值和第二低位数值。所述浮点数计算单元处理所述第二低位数值和所述模数对应的两个浮点数,得到二者的第三乘积对应的第三高位数值。所述通用处理单元利用所述第一高位数值减去所述第三高位数值,从而利用得到的差值确定目标余数。

3、在一些实施例中,所述两个目标因子分别是数论变换中的多项式系数和旋转因子。

4、在一些实施例中,所述浮点数计算单元处理所述两个目标因子对应的两个浮点数,得到二者的第一乘积对应的第一高位数值和第一低位数值,包括:基于第一参数集执行fma指令,得到第一输出;其中,所述第一参数集包括以所述两个浮点数为乘数,以第一数值为加数;所述第一数值基于浮点数精度而确定。基于第二参数集执行fma指令,得到第二输出;其中,所述第二参数集包括以所述两个浮点数为乘数,以第二数值为加数;所述第二数值基于所述第一输出和浮点数精度而确定。从所述第一输出和所述第二输出分别提取精度位部分,对应作为所述第一高位数值和第一低位数值。

5、在一些实施例中,所述浮点数计算单元处理所述第一低位数值和目标系数对应的两个浮点数,得到二者的第二乘积对应的第二高位数值和第二低位数值,包括:基于第三参数集执行fma指令,得到第三输出;其中,所述第三参数集包括以所述两个浮点数为乘数,以第三数值为加数;所述第三数值基于浮点数精度而确定。基于第四参数集执行fma指令,得到第四输出;其中,所述第四参数集包括以所述两个浮点数为乘数,以第四数值为加数;所述第四数值基于所述第三输出和浮点数精度而确定。从所述第三输出和所述第四输出分别提取精度位部分,对应作为所述第二高位数值和第二低位数值。

6、在一些实施例中,所述浮点数计算单元处理所述第二低位数值和所述模数对应的两个浮点数,得到二者的第三乘积对应的第三高位数值,包括:基于第五参数集执行fma指令,得到第五输出;其中,所述第五参数集包括以所述两个浮点数为乘数,以第五数值为加数;所述第五数值基于浮点数精度而确定。从所述第五输出提取精度位部分,作为所述第三高位数值。

7、在一些实施例中,所述两个目标因子之一是对原始因子左移r位后进行取模运算的结果;其中r为目标因子的约束位数,所述取模运算与所述模乘操作采用相同模数。其中,利用得到的差值确定目标余数,包括:在判断出所述差值不小于0的情况下,将所述差值确定为所述目标余数;在判断出所述差值小于0的情况下,将所述差值与所述模数之和确定为所述目标余数。

8、在一些实施例中,利用得到的差值确定目标余数,包括:在判断出所述差值不小于0的情况下,对所述差值左移r位后进行取模运算,得到所述目标余数;其中r为目标因子的约束位数,所述取模运算与所述模乘操作采用相同模数。在判断出所述差值小于0的情况下,对所述差值与所述模数之间的和值左移r位后进行取模运算,得到所述目标余数。

9、根据第二方面,提供一种模乘操作的执行方法,由目标处理器执行;所述目标处理器包括通用处理单元,和浮点数计算单元。所述方法包括:所述通用处理单元读取待进行模乘操作的两个目标因子和对应的模数,以及对其中的第二目标因子进行预计算而得到的变换因子;所述浮点数计算单元处理第一目标因子和所述变换因子对应的两个浮点数,得到二者的第一乘积对应的第一高位数值;所述浮点数计算单元处理所述两个目标因子对应的两个浮点数,得到二者的第二乘积;所述浮点数计算单元处理所述第一高位数值和所述模数对应的两个浮点数,得到二者的第三乘积;所述通用处理单元利用所述第二乘积减去所述第三乘积,从而利用得到的差值确定目标余数。

10、在一些实施例中,所述两个目标因子分别是数论变换中的多项式系数和旋转因子。

11、在一些实施例中,所述预计算包括:对所述第二目标因子左移r位后先进行取模操作再进行向下取整;其中r为目标因子的约束位数,取模操操作和模乘操作采用相同模数。

12、在一些实施例中,所述浮点数计算单元处理所述变换因子和第二目标因子对应的两个浮点数,得到二者的第一乘积对应的第一高位数值,包括:基于第一参数集执行fma指令,得到第一输出;其中,所述第一参数集包括以所述两个浮点数为乘数,以第一数值为加数;所述第一数值基于浮点数精度而确定。从所述第一输出提取精度位部分,作为所述第一高位数值。

13、在一些实施例中,所述浮点数计算单元处理所述两个目标因子对应的两个浮点数,得到二者的第二乘积,包括:基于第二参数集执行fma指令,得到第二输出;其中,所述第二参数集包括以所述两个浮点数为乘数,以第二数值为加数;所述第二数值基于浮点数精度而确定。基于第三参数集执行fma指令,得到第三输出;其中,所述第三参数集包括以所述两个浮点数为乘数,以第三数值为加数;所述第三数值基于所述第二输出和浮点数精度而确定。从所述第二输出和所述第三输出分别提取精度位部分,拼接得到所述第二乘积。

14、在一些实施例中,所述浮点数计算单元处理所述第一高位数值和所述模数对应的两个浮点数,得到二者的第三乘积,包括:基于第四参数集执行fma指令,得到第四输出;其中,所述第四参数集包括以所述两个浮点数为乘数,以第四数值为加数;所述第四数值基于浮点数精度而确定。基于第五参数集执行fma指令,得到第五输出;其中,所述第五参数集包括以所述两个浮点数为乘数,以第五数值为加数;所述第五数值基于所述第四输出和浮点数精度而确定。从所述第四输出和所述第五输出分别提取精度位部分,拼接得到所述第三乘积。

15、在一些实施例中,利用得到的差值确定目标余数,包括:在判断出所述差值小于所述模数的情况下,将所述差值确定为所述目标余数;在判断出所述差值不小于所述模数的情况下,将利用所述差值减去所述模数的结果确定为所述目标余数。

16、根据第三方面,提供一种处理器,包括通用处理单元和浮点数计算单元;其中,所述通用处理单元用于读取目标系数,以及待进行模乘操作的两个目标因子和对应的模数;所述目标系数基于所述模数预计算得到。所述浮点数计算单元用于处理所述两个目标因子对应的两个浮点数,得到二者的第一乘积对应的第一高位数值和第一低位数值。所述浮点数计算单元还用于处理所述第一低位数值和目标系数对应的两个浮点数,得到二者的第二乘积对应的第二高位数值和第二低位数值。所述浮点数计算单元还用于处理所述第二低位数值和所述模数对应的两个浮点数,得到二者的第三乘积对应的第三高位数值。所述通用处理单元还用于利用所述第一高位数值减去所述第三高位数值,从而利用得到的差值确定目标余数。

17、根据第四方面,提供一种处理器,包括通用处理单元和浮点数计算单元。其中,所述通用处理单元用于读取待进行模乘操作的两个目标因子和对应的模数,以及对其中的第二目标因子进行预计算而得到的变换因子。所述浮点数计算单元用于处理第一目标因子和所述变换因子对应的两个浮点数,得到二者的第一乘积对应的第一高位数值。所述浮点数计算单元用于处理所述两个目标因子对应的两个浮点数,得到二者的第二乘积。所述浮点数计算单元用于处理所述第一高位数值和所述模数对应的两个浮点数,得到二者的第三乘积。所述通用处理单元用于利用所述第二乘积减去所述第三乘积,从而利用得到的差值确定目标余数。

18、综上,采用本说明书实施例披露的模乘操作的执行方法及处理器,利用浮点数计算单元在模乘操作中引入高效的浮点数指令,可以实现模乘操作速度的显著提升。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1