使用查找表的模乘运算制造技术

技术编号:13595954 阅读:52 留言:0更新日期:2016-08-26 13:22
各实施例涉及一种编码有用于由处理器执行的用于执行模幂运算的指令的非瞬时机器可读介质以及方法、系统,所述非瞬时机器可读介质包括:用于迭代地计算模幂bd mod n的指令,包括:用于将工作值c平方的指令;以及用于根据指数d的比特有条件地将工作值c乘以底数值b的指令,包括:用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令。

【技术实现步骤摘要】

本文公开的各实施例一般地涉及模幂运算,更具体但非排除地,涉及针对基于RSA的数字签名和解密方案的模幂运算。
技术介绍
诸如RSA的许多密码系统利用模幂运算作为模糊数据的一个步骤。具体地,为了对数据进行加密,将编码数据a提升到公共指数e次幂,并使用值N对其进行模运算:c=ae modN。解密稍后被执行,并且包括将加密数据提升到私人指数d次幂:a=cd mod N。类似的模幂运算可用于创建数字签名,差别在于对私人指数和公共指数的使用被交换:私人指数d被用于初始地对数据加密,而公共指数e被用于稍后验证签名。传统地,针对密钥3元组<e,d,N>选择的值非常大。例如,RSA通常使用尺寸为1024到4096比特的密钥。由于这些值很大,现有算法将使用过度量的处理时间来计算给定密码系统所使用的模幂运算。
技术实现思路
各种实施例简单总结如下。在以下概述中有一些简化和省略,其旨在突出和介绍各实施例的一些方面,而非限制本专利技术的范围。在下面的部分中将给出足以使本领域普通技术人员利用和使用专利技术构思的优选实施例的详细描述。本文描述的多种实施例涉及一种编码有指令的非瞬时机器可读介质以及相关方法和设备,所述指令用于由处理器执行以用于执行模幂运算,所述非瞬时机器可读介质包括:用于迭代地计算模幂bd mod n的指令,包括:用于将工作值c平方的指令;以及用于根据指数d的比特有条件地将工作值c乘以底数值b的指令,包括:用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令。描述了多种实施例,其中,在余数系统RNS中表示所述工作值c和所述底数值b,并且用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令包括:将表示所述工作值c的多个工作RNS整数乘以与表示所述底数值b的多个底数RNS整数相关联的多个查找表条目。描述了多种实施例,其中,用于将表示所述工作值c的多个工作RNS整数乘以与表示所述底数值b的多个底数RNS整数相关联的多个查找表条目的指令包括:用于将表示所述工作值c的所述多个工作RNS整数中的一个工作RNS整数乘以与表示所述底数值b的所述多个底数RNS整数中的底数RNS整数相关联的一个查找表条目的指令,所述查找表条目来自与对应于所述底数RNS整数的RNS模数相关联的查找表。描述了多种实施例,其中,用于迭代地计算所述模幂的指令包括:用于在所述指数d的多个比特位置中进行迭代的指令;以及用于将所述工作值c无条件地乘以与所述底数值b相关联的查找表条目的指令包括:用于利用多个查找表中与当前比特位置相关联的查找表的指令。描述了多种实施例,其中,用于根据指数d的比特有条件地将工作值c乘以底数值b的指令包括:用于执行蒙哥马利乘法的指令;以及用于执行蒙哥马利乘法的指令调用所述用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令。多种实施例还包括:用于从另一设备接收由所述用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令使用的查找表的集合的指令。本文描述的多种实施例涉及一种编码有指令的非瞬时机器可读介质以及相关设备和方法,所述指令用于由处理器执行以用于产生用于执行模幂运算的查找表,所述非瞬时机器可读介质包括:用于初始化分别与秘密指数d内的不同比特位置相对应的多个查找表的指令;用于产生用于添入所述多个查找表中的值的指令,包括:用于当所述秘密指数d在与查找表相关联的比特位置处携带第一比特值时根据第一方法产生针对所述查找表的值的指令;用于当所述秘密指数d在与查找表相关联的比特位置处携带与第一比特值不同的第二比特值时根据与第一方法不同的第二方法产生针对所述查找表的值的指令。描述了多种实施例,其中,用于产生用于添入所述多个查找表中的值的指令包括:用于模糊所产生的值的指令。描述了多种实施例,其中,用于模糊所产生的值的指令包括:用于对用于添入第一查找表中的第一值执行第一数学函数的指令;以及用于对用于添入第二查找表中的第二值执行第二数学函数的指令,其中,第二数学函数是第一数学函数的有效逆函数。描述了多种实施例,其中:第一数学函数将模糊值并入第一值中,并且第二数学函数将所述模糊值的模逆的平方并入第二值中。描述了多种实施例,其中,所述模糊值包括:基于第一值将被存储在第一查找表中的位置的索引而不变的恒定值。描述了多种实施例,其中,所述模糊值包括:第一值将被存储在所述查找表中的位置的索引被提升到恒定指数值次幂。描述了多种实施例,其中,用于模糊所产生的值的指令包括:用于对用于添入第一查找表中的第一值执行第一数学函数的指令;以及用于对用于添入第二查找表中的第二值执行第二数学函数的指令,其中,第二数学函数是第一数学函数的有效逆函数。描述了多种实施例,其中:第一数学函数将模糊值并入第一值中,并且第二数学函数将所述模糊值的模逆的平方并入第二值中。描述了多种实施例,其中,所述模糊值包括:基于第一值将被存储在第一查找表中的位置的索引而不变的恒定值。描述了多种实施例,其中,所述模糊值包括:第一值将被存储在所述查找表中的位置的索引被提升到恒定指数值次幂。描述了多种实施例,其中,第一方法和第二方法共同共享至少一个指令。描述了多种实施例,其中,第一方法包括用于将所述值将被存储在查找表中的位置的索引并入所述值中的区分指令;以及第二方法不包括所述区分指令。描述了多种实施例,其中,用于初始化分别与秘密指数d内的不同比特位置相对应的多个查找表的指令包括:用于确定将用于余数系统RNS中的模数M的集合的指令;以及用于针对所述模数M的集合中的每个模数mi初始化分别与秘密指数d内的不同比特位置相对应的多个查找表的指令。本文描述的多种实施例涉及一种编码有指令的非瞬时机器可读介质以及相关设备和方法,所述指令用于由处理器执行以用于产生用于执行模幂运算的查找表,所述非瞬时机器可读介质包括:用于初始化分别与秘密指数d的比特位置与余数系统RNS模数的多个配对相对应的多个查找表Li,j的指令;用于当所述秘密指数d在与第一查找表L0,k相对应的比特位置处的值为0时将所述多个查找表中的第一查找表L0,k的值设置为L0,mi(ai)=(δo*αieo)modmi]]>的指令,其中,ai是针对RNS模数中的模数mi的潜在RNS整数,δo是第一预定常数,e0是第一预定指数;以及用于当所述秘密指数d在与第一查找表L0,k相对应的比特位置处的值为1时将所述多个查找表中的第一查找表L0,mi的值设置为L0,mi(αi)=(δo*αieo*αi)modmi]]>的指令。多种实施例还包括:用于当所述秘密指数d在与最后的查找表Lk-1,mi相对应的比特位置处的值为0时,将所述多个查找表中的第一查找表Lk-1,mi的值设置为Lk-1,mi(ai)=((δk-2-2modN)*(ai-1)2ek-2)modmi]]>的指令,其中,ai是针对RNS模数中的模数mi的潜在RNS整数,δk-2是最后的预定常数,ek-2是最后的预定指数,N是用于模幂运算的模数;以及用于当所述秘密指数d在与最后的查找表Lk-1,mi相对应的比特位置处的值为0时将所述多个查找表中的第一查找表Lk-1,mi的值设置为Lk本文档来自技高网...

【技术保护点】
一种编码有指令的非瞬时机器可读介质,所述指令由处理器执行以执行模幂运算,所述非瞬时机器可读介质包括:用于迭代地计算模幂bd mod n的指令,包括:用于求工作值c的平方的指令;以及用于根据指数d的比特有条件地将工作值c乘以底数值b的指令,包括:用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令。

【技术特征摘要】
2015.02.18 US 14/624,8741.一种编码有指令的非瞬时机器可读介质,所述指令由处理器执行以执行模幂运算,所述非瞬时机器可读介质包括:用于迭代地计算模幂bd mod n的指令,包括:用于求工作值c的平方的指令;以及用于根据指数d的比特有条件地将工作值c乘以底数值b的指令,包括:用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令。2.根据权利要求1所述的非瞬时机器可读介质,其中,在余数系统RNS中表示所述工作值c和所述底数值b,并且用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令包括:将表示所述工作值c的多个工作RNS整数乘以与表示所述底数值b的多个底数RNS整数相关联的多个查找表条目。3.根据权利要求2所述的非瞬时机器可读介质,其中,用于将表示所述工作值c的多个工作RNS整数乘以与表示所述底数值b的多个底数RNS整数相关联的多个查找表条目的指令包括:用于将表示所述工作值c的所述多个工作RNS整数中的工作RNS整数乘以与表示所述底数值b的所述多个底数RNS整数中的底数RNS整数相关联的查找表条目的指令,所述查找表条目来自与对应于所述底数RNS整数的RNS模数相关联的查找表。4.根据权利要求1所述的非瞬时机器可读介质,其中,用于迭代地计算所述模幂的指令包括:用于在所述指数d的多个比特位置进行迭代的指令;以及用于将所述工作值c无条件地乘以与所述底数值b相关联的查找表条目的指令包括:用于利用多个查找表中与当前比特位置相关联的查找表的指令。5.根据权利要求1所述的非瞬时机器可读介质,其中,用于根据指数d的比特有条件地将工作值c乘以底数值b的指令包括:用于执行蒙哥马利乘法的指令,以及用于执行蒙哥马利乘法的指令调用所述用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令。6.根据权利要求1所述的非瞬时机器可读介质,还包括:用于从另一设备接收由所述用于将所述工作值c无条件地乘以与所述底数值相关联的查找表条目的指令使用的查找表的集合的指令。7.一种编码有指令的非瞬时机器可读介质,所述指令由处理器执行以产生用于执行模幂运算的查找表,所述非瞬时机器可读介质包括:用于初始化分别与秘密指数d内的不同比特位置相对应的多个查找表的指令;用于产生用于添入所述多个查找表中的值的指令,包括:用于当所述秘密指数d在与查找表相关联的比特位置处携带第一比特值时根据第一方法产生针对所述查找表的值的指令;用于当所述秘密指数d在与查找表相关联的比特位置处携带与第一比特值不同的第二比特值时根据与第一方法不同的第二方法产生针对所述查找表的值的指令。8.根据权利要求7所述的非瞬时机器可读介质,其中,用于产生用于添入所述多个查找表中的值的指令包括:用于模糊所产生的值的指令。9.根据权利要求8所述的非瞬时机器可读介质,其中,用于模糊所产生的值的指令包括:用于对用于添入第一查找表中的第一值执行第一数学函数的指令;以及用于对用于添入第二查找表中的第二值执行第二数学函数的指令,其中,第二数学函数是第一数学函数的有效逆函数。10.根据权利要求9所述的非瞬时机器可读介质,其中:第一数学函数将模糊值并入第一值中,并且第二数学函数将所述模糊值的模逆的平方并入第二值中。11.根据权利要求10所述的非瞬时机器可读介质,其中,所述模糊值包括:基于第一值将被存储在第一查找表中的位置的索引而不变的恒定值。12.根据权利要求10所述的非瞬时机器可读介质,其中,所述模糊值包括:第一值将被存储在所述查找表中的位置的索引被提升到恒定指数值次幂。13.根据权利要求7所述的非瞬时机器可读介质,其中,第一方法和第二方法共同共享至少一个指令。14.根据权利要求7所述的非瞬时机器可读介质,其中,第一方法包括...

【专利技术属性】
技术研发人员:乔普·威廉·波斯麦克尔·麦克·派德里克·皮德斯
申请(专利权)人:恩智浦有限公司
类型:发明
国别省市:荷兰;NL

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

1