在白盒场景中的椭圆曲线点乘设备和方法技术

技术编号:23057564 阅读:52 留言:0更新日期:2020-01-07 16:17
提供了一种用于计算乘数(k)与椭圆曲线(E)上的基点(G)之间的所述椭圆曲线上的点乘(kG)以供在加密协议中使用的电子点乘设备(100)。所述设备被布置为:根据多个联合编码的第一集合(A

Equipment and method of elliptic curve point multiplication in white box scene

【技术实现步骤摘要】
【国外来华专利技术】在白盒场景中的椭圆曲线点乘设备和方法
本专利技术涉及点乘设备、点乘方法以及计算机可读介质。
技术介绍
在许多应用中,软件用于对消息进行签名,其目的是证明消息和签名者的真实性。签名者使用私钥和消息摘要对消息进行签名。接收消息和签名的任何人都能够使用发送者的公钥来验证签名。安全签名系统应具有以下属性:1、在给定公钥和其他公共系统参数的情况下,应很难找到私钥。2、摘要应是很难找到冲突和原像的加密哈希。这样可以防止攻击者(例如通过在其自己的消息上重复使用来自发送者的旧消息的签名)冒充发送者。3、私钥应保持私密,并且只有发送者才能知道。前两个要求是黑盒安全性的要求。可以相信,诸如椭圆曲线数字签名算法(ECDSA)的签名方案可以满足这些要求。第三个要求具有不同的性质,因为私钥可能有很多方式泄漏。以下是潜在泄漏的非详尽列表。·系统可能要求签名者针对每个新签名输入签名者的私钥。如果系统上安装了密钥记录器,则攻击者就能够在签名者键入私钥时读取私钥。·私钥可能被存储在文件系统上。即使正确设置了文件访问权限,系统上的恶意根用户也可能读取私钥。·私钥可能以加密文件的方式被存储在文件系统上,在文件系统上,解密文件需要键入密码。设法安装了密钥记录器并有权限访问该文件的攻击者能够获得私钥。·私钥可能以加密形式被存储在签名程序内部,并且仅在运行期间才能被解密。解密密钥也被存储在程序内部,并且只有当用户输入正确的密码时解密才能被激活。现在,攻击者能够通过利用操作系统中的漏洞来读取其他用户进程的内存,从而能够从内存中读取经解密的私钥。期望保护诸如ECDSA协议的加密协议的实施方式以防私钥泄漏。
技术实现思路
专利技术人认识到,ECDSA协议中的许多漏洞是由ECDSA所包括的椭圆曲线上的点乘运算引起的。此外,椭圆曲线算术是许多其他加密协议的组成部分,这使得在白盒模型中更加期望具有提高的抵御攻击能力的点乘实施方式。提供了一种用于计算乘数与椭圆曲线上的基点之间的所述椭圆曲线上的点乘以供在加密协议中使用的电子点乘设备。所述设备包括:存储设备,其存储所述椭圆曲线上的所述基点和多个预先计算的辅助点,输入接口,其被布置为接收输入消息的基哈希,处理器电路,其被布置为:从所述基哈希导出采取多个联合编码的第一集合和第二集合的形式的多个导出的哈希和所述乘数,所述第一集合包括多个导出的哈希,所述第一集合中的导出的哈希中的每个都是与所述乘数联合编码的,所述第二集合也包括多个导出的哈希,所述第二集合中的导出的哈希中的每个都是与所述多个导出的哈希中的至少另一个联合编码的,根据多个联合编码的所述第一集合来计算盲基础乘数,根据多个联合编码的所述第二集合来计算多个盲辅助乘数,所述多个盲辅助乘数对应于所述多个辅助点,通过计算以下两项的点加法来执行盲椭圆曲线算术,以获得所述乘数与所述基点的所述点乘:所述盲基础乘数与所述椭圆曲线上的所述基点的点乘,以及盲辅助乘数与辅助点的多个点乘。有趣的是,所需的点乘kG可以被转换为与基点G以及多个额外的辅助点的多个点乘。攻击系统要求攻击者要么找到形成乘法kG的乘数k,要么确定辅助点与基点之间的关系。这两种方法都需要解决椭圆曲线上的离散对数问题,这被认为是不切实际的,这是因为例如与受加密协议保护的资产相比需要更多的资源。替代地,攻击者可以尝试使用错误攻击来攻击系统,然而,可以使用编码系统来对付这些错误。细节将在下面进一步说明。有趣的是,在执行所述盲椭圆曲线算术期间,所述盲基础乘数和所述多个盲辅助乘数是以明文格式表示的。这意味着对于椭圆曲线算术,不需要采取白盒实施方式的形式的保护。专利技术人已经发现,用白盒保护椭圆曲线算术很难,这是因为众所周知椭圆曲线算术对侧信道攻击非常敏感。通过将椭圆曲线乘法分布在多个辅助点上,可以解决椭圆曲线加密中的这一弱点;得到白盒模型中抵御力提高的实现方式。有趣的是,实施例将白盒技术(例如,通过查找表对编码数据进行操作)与盲化(例如,将第一明文计算替换为另一第二明文计算)相结合,使得可以从第二计算结果导出期望的第一计算结果。点乘设备是电子设备,并且可以例如是诸如移动电话的移动电子设备。点乘设备还可以例如是机顶盒、智能卡、计算机等。本文描述的点乘设备和方法可以在广泛的实际应用中应用。这样的实际应用包括包含椭圆曲线计算的加密协议,特别是ECDSA协议。ECDSA可以用于例如在要求认证、数据完整性等的应用中对数据进行签名。这样的应用可以包括消息收发应用、邮件程序、金融应用等。根据本专利技术的方法可以在计算机上被实施为计算机实施的方法,或者被实施在专用硬件中,或者以以上两种实施方式的组合方式来实施。用于根据本专利技术的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括被存储在计算机可读介质上非瞬态程序代码,当所述程序产品在计算机上被运行时,所述非瞬态程序代码用于执行根据本专利技术的方法。在优选实施例中,所述计算机程序包括计算机程序代码,所述计算机程序代码适于在所述计算机程序在计算机上运行时执行根据本专利技术的方法的所有步骤。优选地,所述计算机程序被实施在计算机可读介质上。本专利技术的另一方面提供了一种使计算机程序可用于下载的方法。这方面内容将用于计算机程序被上载到例如苹果公司的App商店、谷歌公司的Play商店或微软公司的Windows商店中并且所述计算机程序可以从这样的商店被下载时的情况。附图说明将仅通过举例的方式参考附图来描述本专利技术的其他细节、方面和实施例。为了简单且清楚地图示附图中的元素,并不一定按比例绘制这些元素。在附图中,与已经描述过的元件相对应的元件可以具有相同的附图标记。在附图中:图1示意性地示出了点乘设备的实施例的示例,图2示意性地示出了导出多个联合编码的第一集合的实施例的示例,图3示意性地示出了导出多个联合编码的第二集合的实施例的示例,图4示意性地示出了ECDSA设备的实施例的示例,图5示意性地示出了点乘方法的实施例的示例,图6示意性地示出了ECDSA签名方法的实施例的示例,图7a示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,图7b示意性地示出了根据实施例的处理器系统的表示。附图标记列表100点乘设备110存储设备120输入接口122基哈希130第一编码计算网络131盲基础乘数135第二编码计算网络136多个盲辅助乘数140椭圆曲线算术单元141点乘结果150第三编码计算网络151盲乘数155第四编码计算网络156盲基哈希157去盲值160第六编码计算网络161ECDSA签名的第二组成部分本文档来自技高网
...

【技术保护点】
1.一种用于计算乘数(k)与椭圆曲线(E)上的基点(G)之间在所述椭圆曲线上的点乘(kG)以供在加密协议中使用的电子点乘设备(100),所述设备包括:/n存储设备(110),其存储所述椭圆曲线上的所述基点(G)和多个预先计算的辅助点(G

【技术特征摘要】
【国外来华专利技术】20170317 EP 17161578.41.一种用于计算乘数(k)与椭圆曲线(E)上的基点(G)之间在所述椭圆曲线上的点乘(kG)以供在加密协议中使用的电子点乘设备(100),所述设备包括:
存储设备(110),其存储所述椭圆曲线上的所述基点(G)和多个预先计算的辅助点(Gi),
输入接口(120),其被布置为接收输入消息(M)的基哈希(h,122),
处理器电路,其被布置为:
从所述基哈希(h)导出采取多个联合编码的第一集合和第二集合的形式的多个导出的哈希(hi)和所述乘数(k),所述第一集合包括多个导出的哈希(Ai=Enc(k,hi),i=0…2n-1,221-223),所述第一集合中的导出的哈希中的每个导出的哈希都是与所述乘数(k)联合编码的,所述第二集合也包括多个导出的哈希,所述第二集合中的导出的哈希中的每个导出的哈希都是与所述多个导出的哈希中的至少另一个导出的哈希联合编码的(Bi=Enc(h2i,h2i+1),i=0…n-1,321-323),
根据多个联合编码的所述第一集合(Ai)来计算盲基础乘数(A,131),
根据多个联合编码的所述第二集合(Bi)来计算多个盲辅助乘数(ηi,136),所述多个盲辅助乘数对应于所述多个辅助点(Gi),
通过计算以下两项的点加法来执行盲椭圆曲线算术,以获得所述乘数(k)与所述基点(G)的所述点乘(141)(kG):
所述盲基础乘数与所述椭圆曲线上的所述基点的所述点乘,以及
盲辅助乘数与辅助点的多个点乘。


2.根据权利要求1所述的点乘设备,其中,在执行所述盲椭圆曲线算术期间,所述盲基础乘数和所述多个盲辅助乘数是以明文格式表示的。


3.根据前述权利要求中的任一项所述的点乘设备,其中,所述处理器电路被配置有第一编码计算网络(130),所述第一编码计算网络将联合编码函数对的第一集合((f,gi),211-213)应用于所述基哈希与所述基哈希自身的联合编码(Enc(h,h),201),联合编码函数对是被布置为从所述基哈希(h)导出所述乘数(k)的去随机化函数(f)与哈希多样化函数的集合(gi,0≤i≤2n-1)中的哈希多样化函数(gi)的联合编码。


4.根据前述权利要求中的任一项所述的点乘设备,其中,所述处理器电路被配置有第二编码计算网络(135),所述第二编码计算网络将联合编码函数对的第二集合((g2i,g2i+1),311-313)应用于所述基哈希与所述基哈希自身的联合编码(Enc(h,h),301),联合编码函数对是哈希多样化函数的所述集合(gi,0≤i≤2n-1)中的至少两个哈希多样化函数(gi)的联合编码。


5.根据权利要求3和4中的任一项所述的点乘设备,其中,根据SLT构造来构造所述去随机化函数和/或所述哈希多样化函数。


6.根据前述权利要求中的任一项所述的点乘设备,其中,多个联合编码的所述第一集合和/或多个联合编码的所述第二集合是逐字节或逐半字节的联合编码。


7.根据前述权利要求中的任一项所述的点乘设备,其中,所述第一编码计算网络和/或所述第二编码计算网络的集合被配置用于基于蒙哥马利数字编码的算术。


8.根据前述权利要求中的任一项所述的点乘设备,其中,所述多个预先计算的辅助点(Gi)已经被获得为在预先计算的乘数与所述基点之间的点乘(G2i=-(aidi-bici)-1(diC2i-ciC2i+1)G,G2i+1=-(aidi-bici)-1(-biC2i+aiC2i+1)G)。


9.根据前述权利要求中的任一项所述的点乘设备,其中,所述盲基础乘数(A)是所述乘数与多个联合编码的所述第一集合中的多样化哈希的加权和,所述多个盲辅助乘数(ηi)被选择为校正所述加权和中的所述多样化哈希。


10.根据前述权利要求中的任一项所述的点乘设备,还被配置用于在所述输入消息上计算ECDSA签名,其中,所述处理器电路被配置为根据所述乘数(k)与所述基点(G)之间在所述椭圆曲线上的所述点乘(kG)来获得所述签名的第一组成部分(r=μ(([k]G)1))。


11.根据权利要求10所述的点乘设备,其中,所述处理器电路被布置为通过以下操作来计算所述签名的第二组成部分(s=(h+rx)k-1):
从所述基哈希(h)导出所述乘数(k)和采取多个联合编码的另外的第一集合和另外的第二集合的形式的另外的多个导出的哈希(ti),所述另外的第一集合包括...

【专利技术属性】
技术研发人员:R·里特曼S·J·A·德雷赫
申请(专利权)人:皇家飞利浦有限公司
类型:发明
国别省市:荷兰;NL

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

1