具有旁道攻击对策的模幂运算制造技术

技术编号:20500433 阅读:30 留言:0更新日期:2019-03-03 04:10
提供一种用于在加密运算的模幂运算函数中实现安全性的方法。当调用所述模幂运算函数时,获取密钥作为参数。所述密钥可以是加密密钥对的公用密钥或私用密钥。在所述模幂运算函数内,所述方法查明所述密钥的长度是否大于L位,其中L为正整数。如果所述密钥的长度大于L位,那么实施对付攻击的对策。所述对策可包含阻止或防止通过分析而查明关于所述密钥的信息的一或多种技术(例如,硬件和/或软件技术)。可随后使用所述密钥执行一或多个幂运算。可以使用相同的模幂运算函数来执行加密和解密运算,但是是利用不同的密钥。

Modular power operation with bypass attack games

A method for realizing security in modular power operation functions of cryptographic operations is provided. When the modular power operation function is called, the key is obtained as a parameter. The key may be a public key or a private key of an encrypted key pair. Within the modular power operation function, the method finds out whether the length of the key is greater than the L bit, where L is a positive integer. If the length of the key is greater than L-bit, the countermeasure against the attack is implemented. The countermeasures may include one or more technologies (e.g., hardware and/or software technologies) that prevent or prevent the identification of information about the key by analysis. One or more power operations may then be performed using the key. The same modular exponentiation function can be used to perform encryption and decryption operations, but different keys are used.

【技术实现步骤摘要】
【国外来华专利技术】具有旁道攻击对策的模幂运算相关申请的交叉引用本申请案主张2016年7月22日在美国专利商标局建议申请的第15/217,760号美国非临时专利申请案的优先权和权益,所述非临时专利申请案的整个内容以引用的方式并入本文中。
一或多个特征涉及机密性保护、认证、加密密钥产生,且更具体地说,涉及针对试图曝露加密密钥的旁道攻击或可用于曝露加密密钥的信息的对策。
技术介绍
公用密钥密码学,或非对称密码术,是一种加密系统,其使用两个类别的密钥:可能广泛地分发的公共密钥,而私用密钥仅对拥有者已知。在公用密钥加密系统中,消息可使用公共密钥(例如,分配给任何人)加密,但这种消息仅可使用对应的私用密钥解密。许多这种加密系统,例如维斯特-沙米尔-阿德勒曼(Rivest-Shamir-Adleman;RSA)和迪菲-赫尔曼密钥协议算法,使用模幂运算作为基本运算。在模幂运算中,对模数执行一种幂运算。在一个实例中,模幂运算计算上升到e次幂(指数)的整数b(底数),be,除以正整数m(模数)时的余数。一般来说,加密系统采用(a)公用指数(亦称为公用密钥),(b)私用指数(亦称为私用密钥),和(c)共模(与私用和公共密钥一起使用)。这些密码中使用的私用指数(私用密钥)通常对于例如功率分析和时点分析的旁道分析是脆弱的。旁道攻击允许攻击者通过测量除算法结果的其它信息,例如功率消耗、计算时间或装置的射频发射来恢复关于密码操作输入的信息。这种旁道分析试图曝露例如私用指数(私用密钥),借此允许攻击者接入使用对应公用密钥加密的内容。挫败简单功率分析(SimplePowerAnalysis;SPA)的一个典型方法是蒙哥马利阶梯。为挫败差分功率分析(DifferentialPowerAnalysis;DPA),通常需要盲发来遮盖功率信息泄露。全部这些对策以一种攻击者难以利用的方式减慢了幂运算性能。然而,模幂运算函数的整体速度受到影响(即,操作耗费更长时间)。旁道攻击的近期进展触发了在需要时盲发底数和/或模数作为额外保护的需要。另一方面密码系统中的公用指数不需要对策。因此,密码系统通常作出特殊布置,来仅在寻求私用指数时添加对策。逐个改变每个私用密钥的密码用法成为逐个处理的工作。许多安全性软件模块和/或库对于公用和私用密码(加密/解密)使用相同的基本模幂运算函数调用。为区别公共密钥或密码与私用密钥或密码,在一个实例中,加密库可能使用密码内容中的标签以指示对策需求(例如,用于私用密码的对策)。在模幂运算函数调用之前,调用另一个功能,以接通或断开对策标签(例如,对于私用密码接通,对于公用密码断开)。标签通常需要在再次调用模幂运算函数调用之前被复位。因此,调用模幂运算函数的人需要了解这种标签,以确保实现对策,这一点是不能够始终假设的。使用单一模幂运算函数的另一种简单但昂贵的方法是在执行或调用模幂运算函数时,始终允许低层应用软件编程接口(applicationprogramminginterface;API)中的对策。然而,对公用密钥使用的惩罚是减速而没有任何安全性增益。由于公用密钥假定为由包含攻击者的每个人所知,因此在产生公用指数或公用密钥允许对策什么都无法获得。因此,当使用单一模幂运算函数时,需要一种方法来保护私用密钥产生和/或用法,但避免公用密钥产生和/或用法方面的性能损失。
技术实现思路
提供一种用于在加密运算的模幂运算函数中实现安全性的方法。相同的模幂运算函数可执行加密和解密运算,但是是利用不同的密钥。当调用模幂运算函数时,可获取作为参数。密钥可能是加密密钥对的公用密钥或私用密钥。在所述模幂运算函数内,所述方法查明所述密钥的长度是否大于L位,其中L为正整数。举例来说,L=3字节或24位。如果密钥的长度大于L位,那么实施对付攻击的对策。对策可包含阻止或防止通过分析查明关于密钥的信息的一或多种技术。或者,如果密钥的长度小于或等于L位,那么可绕过对策。可随后使用密钥执行一或多个幂运算。在不同实例中,对策可包含基于硬件和/或基于软件的对策。举例来说,对策可包含密钥的加密盲发。在其它例子中,实施对策可包含以下各项中的至少一个:(a)切换到功率均衡电路,其独立于所述密钥的值而利用大致相同的功率量进行所述一或多个幂运算,(b)切换到时间均衡电路,其独立于所述密钥的所述值而耗费大致相同的时间量进行所述一或多个幂运算,或(c)切换到功率均衡和时间均衡电路,其独立于所述密钥的所述值而利用大致相同的功率和时间量进行所述一或多个幂运算。在使用模幂运算函数进行加密的实例中,可获取数据m和模数n,其中一或多个幂运算对数据m进行加密以获取密文c,其中c=mkpubmodulon,且kpub=密钥。在使用模幂运算函数进行解密的实例中,可获取数据c和模数n,其中一或多个幂运算对数据c进行解密以获取数据m,其中c=mkpubmodulon,且kpub=密钥。在使用模幂运算函数进行加密签名的实例中,获取消息m和模数n,且一或多个幂运算使用私用密钥kpriv对消息m进行签名以获取签名s,其中s=mkprivmodulon,且kpriv=密钥。在使用模幂运算函数进行加密认证的实例中,可获取签名s和模数n,且一或多个幂运算使用公用密钥kpub认证签名s以获取消息m,其中m=skpubmodulon,且kpub=密钥。提供模幂运算电路,其包括寄存器和耦合到寄存器的处理电路。寄存器可用于在调用模幂运算时获取密钥作为参数。处理电路经配置以进行以下操作:(a)查明所述密钥的长度是否大于L位,其中L为正整数,(b)如果所述密钥的长度大于L位,那么实施对付攻击的对策,和/或(c)使用所述密钥执行一或多个幂运算。如果密钥的长度大于L位,那么处理电路可实施所述对策,否则所述一或多个幂运算绕过所述对策。在一个实例中,处理电路可经配置以通过对所述密钥应用加密盲发来实施所述对策。在另一个实例中,所述处理电路可包含以下各项中的至少一个:(a)功率均衡电路,其独立于所述密钥的值而利用大致相同的功率量进行所述一或多个幂运算,(b)时间均衡电路,其独立于所述密钥的所述值而耗费大致相同的时间量进行所述一或多个幂运算,和/或(c)功率均衡和时间均衡电路,其独立于所述密钥的所述值而利用大致相同的功率和时间量进行所述一或多个幂运算。附图说明图1为说明一般方法的框图,其在执行幂运算时,可由模幂运算函数实施以决定是否应用对策。图2说明用于在加密运算的模幂运算函数中实现安全性的方法。图3说明可实施的硬件对策操作的实例。图4说明可实施的软件对策操作的实例。图5说明可使用自动选择的对策进行的幂运算的各种实例。图6说明经配置以实施对付旁道攻击的对策的示范性的模幂运算电路的框图。具体实施方式在以下描述中,给出具体细节以提供对描述的实施方案的透彻理解。然而,所属领域的一般技术人员将理解,可在没有这些具体细节的情况下实践所述实施方案。例如,可以框图展示电路以便不以不必要的细节混淆实施方案。在其它情况下,可依次详细展示众所周知的电路、结构和技术以便不混淆实施方案。词语“示范性”在本文中用于意味着“充当实例、例子或说明”。本文中描述为“示范性”的任何实施方案或实施例未必应解释为比其它实施例优选或有利。同样,术语“实施例”并不要求所有实施例均包含所论本文档来自技高网
...

【技术保护点】
1.一种用于在加密运算的模幂运算函数中实现安全性的方法,其包括:当调用所述模幂运算函数时,获取密钥作为参数;在所述模幂运算函数内,查明所述密钥的长度是否大于L位,其中L为正整数;如果所述密钥的长度大于L位,那么实施对付攻击的对策;以及使用所述密钥执行一或多个幂运算。

【技术特征摘要】
【国外来华专利技术】2016.07.22 US 15/217,7601.一种用于在加密运算的模幂运算函数中实现安全性的方法,其包括:当调用所述模幂运算函数时,获取密钥作为参数;在所述模幂运算函数内,查明所述密钥的长度是否大于L位,其中L为正整数;如果所述密钥的长度大于L位,那么实施对付攻击的对策;以及使用所述密钥执行一或多个幂运算。2.根据权利要求1所述的方法,其中所述密钥为加密密钥对的公用密钥或私用密钥。3.根据权利要求1所述的方法,其中L=24位。4.根据权利要求1所述的方法,其中相同模幂运算函数执行加密和解密运算,但是是利用不同的密钥。5.根据权利要求1所述的方法,其中所述对策包含阻止或防止通过分析而查明关于所述密钥的信息的一或多种技术。6.根据权利要求1所述的方法,其中所述对策包含所述密钥的加密盲发。7.根据权利要求1所述的方法,其中实施所述对策包含以下各项中的至少一个:切换到功率均衡电路,其独立于所述密钥的值而利用大致相同的功率量进行所述一或多个幂运算,切换到时间均衡电路,其独立于所述密钥的所述值而耗费大致相同的时间量进行所述一或多个幂运算,或切换到功率均衡和时间均衡电路,其独立于所述密钥的所述值而利用大致相同的功率和时间量进行所述一或多个幂运算。8.根据权利要求1所述的方法,其进一步包括:如果所述密钥的长度小于或等于L位,那么绕过所述对策。9.根据权利要求1所述的方法,其进一步包括:获取数据m和模数n,其中所述一或多个幂运算对所述数据m进行加密以获取密文c,其中c=mkpubmodulon,且kpub=密钥。10.根据权利要求1所述的方法,其进一步包括:获取数据c和模数n,其中所述一或多个幂运算对所述数据c进行解密以获取数据m,其中c=mkpubmodulon,且kpub=密钥。11.根据权利要求1所述的方法,其进一步包括:获取消息m和模数n,并且所述一或多个幂运算使用私用密钥kpriv对所述消息m进行签名,以获取签名s,其中s=mkprivmodulon,且kpriv=密钥。12.根据权利要求1所述的方法,其进一步包括:获取签名s和模数n,且所述一或多个幂运算使用公用密钥kpub认证所述签名s来获取消息m,其中m=skpubmodulon,且kpub=密钥。13.一种机器可读存储媒体,其具有用于在模幂运算函数中实现安全性的一或多个指令,所述指令在由至少一个处理电路执行时致使所述至少一个处理电路进行以下操作:当调用所述模幂运算函数时,获取密钥作为参数;在所述模幂运算函数内,查明所述密钥的长度是否大于L位,其中L为正整数;如果所述密钥的长度大于L位,那么实施对付攻击的对策;以及使用所述密钥执行一或多个幂运算。14.根据权利要求13所述的机器可读存储媒体,其中所述密钥是加密密钥对的公用密钥或私用密钥。15.根据权利要求13所述的机器可读存...

【专利技术属性】
技术研发人员:肖露邓晶J·Y·金
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1