本发明涉及密码学的。本发明更具体地涉及一种加密处理方法,并且涉及一种相关电子设备和一种相关计算机程序。
背景技术:
1、当通过在非安全环境中执行的软件实施加密算法时,必须采取特定措施,以避免攻击者能够通过对该环境的简单控制来访问秘密数据(例如加密密钥)。
2、寻找在非安全环境中保护加密算法实施的技术被称为“白盒密码学”。
3、s.chow等人在2002年8月15日至16日举行的第9届密码学精选领域年度研讨会(sac’02)的会后论文集中的文章“white box cryptography and an aes implementation[白盒密码学和aes实施]”提出了例如一种用于产生aes算法的技术,每种算法都适用于特定的加密密钥。
4、对于通常在这种情况下提出的解决方案,加密算法被分解为一系列基本处理操作,并使用分别与这些基本处理操作相关联的查找表来操纵隐藏数据。
5、由于使用了这些大量的查找表,这些解决方案消耗了特别大量的内存。
6、椭圆曲线加密数据处理是已知的,例如用于数据的签名。美国国家标准与技术研究院(nist)于2013年7月发布的fips 186-4标准“数字签名标准(dss)”描述了ecdsa签名算法。
7、椭圆曲线在有限体上的特性被用于对数据进行处理时(比如数据的签名)所涉及的计算。这涉及对椭圆曲线的点群中的元素进行操纵,该点群是有限阶的并配备有将椭圆曲线的两个点相加的运算。
8、为了通过私钥对数据进行签名,该群的第一个元素与所述群的生成点相关联,并且确定签名点的仿射坐标,该签名点等于与生成点相等的元素和与第一标量相等的数字通过所述运算的组合。还基于私钥、第一标量、所述仿射坐标和数据来确定签名部分。消息的签名由仿射坐标和签名部分构成。
9、所使用的第一标量可以通过随机抽取来确定,但攻击者可能相对容易阻止随机源,特别是在白盒实施的情况下。所使用的第一标量也可以通过对数据应用伪随机算法来确定。
10、在这两种情况的每一种下,给定消息的签名将始终是相同的,从而促进了damianpoddebniak、juraj somorovsky、sebastian schinzel、manfred lochter和paul rosler在“attacking deterministic signature schemes using fault attacks[使用故障攻击来攻击确定性签名的方案]”,doi 10.1109/eurosp.2018.00031,2018年中提出的攻击。
11、这种攻击包括对同一数据进行两次签名并破坏仿射坐标的计算。攻击者由此获得正确的仿射坐标、错误的仿射坐标、正确的签名部分和带有错误仿射坐标的错误签名部分。然后他能够恢复用于对数据进行签名的私钥。
12、有两种方法可以防御这种攻击。
13、第一种方法包括使用与私钥相关联的公钥来验证数据的签名。但是,验证的速度比签名慢,并且白盒形式的实施也消耗特别大量的内存。
14、第二种方法包括计算两次数据的签名,并比较如此计算的这两个签名。然而,这种方法使计算时间加倍,并且需要加倍白盒实施以抵御注入相同错误的双重故障攻击,这需要消耗两倍的内存。
技术实现思路
1、为了弥补这些缺点,本发明提出了一种在电子设备内实施的基于私钥和椭圆曲线的有限点群对数据进行加密签名的方法,所述群配备有将该椭圆曲线的两个点相加的运算并包括生成点,该方法包括以下步骤:
2、-确定第一签名点,该第一签名点等于与该曲线的第一派生生成点相等的元素和与第一中间标量相等的数字通过所述运算的组合,以及
3、-通过向由该第一中间标量和所选标量的乘积产生的标量加上或从中减去由第一派生标量和第三中间标量的乘积产生的标量来确定第二中间标量,
4、-确定第二签名点,该第二签名点等于与该曲线的所选点相等的元素和与该第二中间标量相等的数字通过所述运算的组合、以及与所述运算的第二派生生成点或该第二派生生成点的相反数中的点相等的其他元素和与该第三中间标量相等的数字通过所述运算的组合,
5、-基于该私钥、该第一中间标量、该第一签名点的仿射坐标和该数据来确定签名部分,
6、并且其中:
7、-该第一派生生成点等于与该曲线的生成点相等的元素和与第二派生标量相等的数字通过所述运算的组合,
8、-该第二派生生成点等于与该曲线的所选点相等的元素和与该第一派生标量相等的数字通过所述运算的组合,
9、-该数据的签名包括该签名部分和基于该第二签名点的仿射坐标确定的另一签名部分。
10、根据本发明的方法的进一步有利和非限制性特征,单独地或以任何技术上可能的组合,如下:
11、-这些其他元素等于该第二派生生成点,并且确定该第二中间标量的步骤基于减法,
12、-这些其他元素等于所述第二派生生成点的相反数,并且确定该第二中间标量的步骤基于加法,
13、-所选标量是该第二派生标量,并且所选点是该生成点,
14、-所选标量的值为一,并且所选点是该第一派生生成点,
15、-该方法还包括通过与该曲线的生成点相等的元素和与该第二派生标量相等的数字通过所述运算的组合来确定该第一派生生成点的步骤,以及通过与该曲线的所选点相等的元素和与该第一派生标量相等的数字通过所述运算的组合来确定该第二派生生成点的步骤,
16、-该第二派生标量和该第一派生标量均是通过随机抽取或通过对该数据应用伪随机算法确定的,
17、-该第三中间标量的值为一,
18、-如果所选标量的值为一,则该第三中间标量具有非零值,
19、-该第一中间标量是通过随机抽取或通过对该数据应用伪随机算法确定的,
20、-该第三中间标量是通过随机抽取确定的,
21、-该第二派生标量的值严格大于一,
22、-该签名部分等于由该第一中间标量的乘法逆元、该第二派生标量的乘法逆元和中间签名标量的乘积产生的标量对该群的阶数取模,所述中间签名标量等于通过哈希函数对该数据的凝聚与由该第一签名点的仿射坐标和该私钥的乘积产生的标量的总和,并且该另一签名部分是该第二签名点的仿射坐标。
23、-该签名部分等于该第一中间标量与由该私钥和通过哈希函数对中间数据的凝聚的乘积产生的标量的总和对该群的阶数取模,所述中间数据是该第一签名点的仿射坐标、该第一签名点的另一仿射坐标、该曲线的另一点的两个仿射坐标和该数据的级联,并且该方法还包括通过该第二签名点的仿射坐标和该第二签名点的另一仿射坐标的级联来确定另一签名部分的步骤,
24、-该签名部分等于该第一中间标量与由该私钥和通过哈希函数对中间数据的凝聚的乘积产生的标量的总和对该群的阶数取模,所述中间数据是该第一签名点的仿射坐标、该第一签名点的另一仿射坐标和该数据的级联,并且该方法还包括通过对该第二签名点的仿射坐标、该第二签名点的另一仿射坐标和该数据的级联应用该哈希函数来确定另一签名部分的步骤,
25、-确定该第一签名点的步骤和确定该签名部分的步骤是以白盒形式实施的,
26、-仅确定该第一签名点的步骤和确定该签名部分的步骤是以白盒形式实施的,
27、-该第一签名点和该第二签名点是以两种不同的方式计算的。
28、本发明还提出了一种计算机程序,其包括能够由处理器执行的指令并且被设计成当这些指令由该处理器执行时实施如上定义的用于对数据进行加密签名的方法。
29、本发明还提出了一种电子设备,其能够基于私钥和椭圆曲线的有限点群对数据进行加密签名,所述群配备有将该椭圆曲线的两个点相加的运算并包括生成点,所述电子设备包括
30、-用于确定第一签名点的确定块,该第一签名点等于与该曲线的第一派生生成点相等的元素和与第一中间标量相等的数字通过所述运算的组合,以及
31、-用于基于该私钥、该第一中间标量、该第一签名点的仿射坐标和该数据来确定签名部分的确定块,
32、-用于通过向由该第一中间标量和所选标量的乘积产生的标量加上或从中减去由第一派生标量和第三中间标量的乘积产生的标量来确定第二中间标量的确定块,
33、-用于确定第二签名点的确定块,该第二签名点等于与该曲线的所选点相等的元素和与该第二中间标量相等的数字通过所述运算的组合、以及与所述运算的第二派生生成点或该第二派生生成点的相反数中的点相等的其他元素和与该第三中间标量相等的数字通过所述运算的组合,
34、并且其中:
35、-该第一派生生成点等于与该曲线的生成点相等的元素和与第二派生标量相等的数字通过所述运算的组合,
36、-该第二派生生成点等于与该曲线的所选点相等的元素和与该第一派生标量相等的数字通过所述运算的组合,并且
37、-该数据的签名包括该签名部分和基于该第二签名点的仿射坐标确定的另一签名部分。
38、该电子设备可以被配置为实施针对如上定义的用于对数据进行加密签名的方法所考虑的实施选项中的每一个。
39、当然,本发明的各种特征、变型和实施例可以以各种组合方式相互结合,只要它们不是相互不兼容或相互排斥的即可。