加密处理方法、装置、设备及存储介质与流程

未命名 08-17 阅读:131 评论:0


1.本技术涉及加密技术领域,尤其涉及一种加密处理方法、装置、设备及存储介质。


背景技术:

2.curve25519椭圆曲线是一条255比特的蒙哥马利曲线,基于curve25519的密钥协商标准x25519被广泛应用于tls(transport layer security,安全传输层协议),esim(embedded-sim,嵌入式sim卡)等领域。在标准x25519中,每个参与密钥协商和/或密钥生成的用户有一个32字节的私钥和对应的32字节的公钥,公钥为蒙哥马利曲线上点的横坐标也即x坐标。生成密钥和密钥协商过程中curve25519(k,q)表示该曲线上仅使用x坐标的点乘运算。
3.curve25519曲线上仅使用x坐标的点乘运算一般采用齐次射影坐标的蒙哥马利梯子算法实现。在实际使用中,由于需要抵御侧信道攻击,现有技术中点乘运算的实现通常是在采用蒙哥马利梯子的基础上,还通过蒙哥马利梯子运算的初始化以利用随机数对点坐标等敏感数据进行盲化,从而对敏感数据得以保护。另外,在实际使用中,还需要抵御错误注入攻击。而对椭圆曲线来说,点乘运算前后检查点是否在曲线上是抵抗错误注入攻击的有效手段。因此,则需将仅使用x坐标进行的点乘运算变为使用(x,y)进行点乘运算,也即在点乘运算前需进行两次模幂运算得到y,再进行点乘运算。
4.然而,在点乘运算中,现有解决方案存在点乘运算性能低、容易遭受选择输入攻击以及无法抵抗错误注入攻击或者抵抗错误注入攻击的防护能力会严重影响点乘运算性能等缺陷。


技术实现要素:

5.本技术提供一种加密处理方法、装置、设备及存储介质,用于解决现有的密钥生成和/或密钥协商过程的加密处理中点乘运算性能低、容易遭受选择输入攻击以及无法抵抗错误注入攻击或者错误注入攻击的防护能力严重影响点乘运算性能的技术问题。
6.第一方面,本技术提供一种加密处理方法,包括:
7.根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,所述目标点的相对坐标包括所述目标点的横坐标和所述目标点的相对纵坐标,所述目标点的横坐标非小子群元素;
8.根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程,其中,通过随机数随机化用户密钥对的私钥得到所述随机化后私钥,所述目标点的阶根据勒让德符号获得;
9.根据所述坐标中间值判断所述目标点对应的结果点是否在所述蒙哥马利曲线上,根据判断结果得到目标点乘结果,所述目标点乘结果应用于密钥生成场景和/或密钥协商场景。
10.在一种可能的设计中,所述根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯
子运算进行初始化,获取雅克比坐标系下的坐标中间值,包括:
11.根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,所述坐标中间值包括第一纵坐标中间值、第二纵坐标中间值、第一横坐标中间值、第二横坐标中间值以及统一z坐标中间值和斜率值。
12.在一种可能的设计中,所述根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,包括:
13.根据所述目标点的横坐标以及第一初始化算法得到所述第一纵坐标中间值,所述第一纵坐标中间值为所述目标点的纵坐标的平方转换至所述雅克比坐标系下的值。
14.在一种可能的设计中,所述根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,包括:
15.根据所述目标点的横坐标以及横坐标随机化算法得到统一z坐标中间值;
16.根据所述统一z坐标中间值以及第二初始化算法得到所述第二纵坐标中间值;
17.其中,所述第二纵坐标中间值为所述目标点的相对纵坐标转换至所述雅克比坐标系下的值,所述统一z坐标中间值为所述目标点以及所述目标点的第一参考点和第二参考点在所述雅克比坐标系下的统一z坐标中间值。
18.在一种可能的设计中,所述根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,包括:
19.根据所述目标点的横坐标以及第三初始化算法得到所述斜率值;
20.根据所述斜率值、所述目标点的横坐标以及第四初始化算法得到所述第一横坐标中间值以及所述第二横坐标中间值;
21.其中,所述斜率值为参考直线的斜率转换至所述雅克比坐标系下的值,所述参考直线为经过所述目标点以及所述第一参考点和所述第二参考点的直线,所述第一横坐标中间值为第一相对横坐标转换至所述雅克比坐标系下的值,所述第二横坐标中间值为第二相对横坐标转换至所述雅克比坐标系下的值,所述第一相对横坐标根据所述第一参考点的横坐标和所述目标点的横坐标得到,所述第二相对横坐标根据所述第二参考点的横坐标和所述目标点的横坐标得到。
22.在一种可能的设计中,所述根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程,包括:
23.根据所述随机化后私钥、所述目标点的阶以及迭代输入值进行所述蒙哥马利运算的迭代过程;
24.其中,所述迭代输入值包括所述斜率值、所述第二纵坐标中间值、所述统一z坐标中间值以及所述第一横坐标中间值和所述第二横坐标中间值。
25.在一种可能的设计中,所述根据所述坐标中间值判断所述目标点对应的结果点是否在所述蒙哥马利曲线上,包括:
26.根据所述统一z坐标中间值、所述第一纵坐标中间值、所述第二横坐标中间值以及所述目标点的横坐标进行第一模数运算,得到z坐标结果值以及横坐标结果值;
27.根据所述第二纵坐标中间值、所述第二横坐标中间值以及所述斜率值进行第二模数运算,得到纵坐标结果值;
28.根据所述横坐标结果值以及所述z坐标结果值进行第三模数运算,得到临时值;
29.判断所述纵坐标结果值是否等于所述临时值;
30.若是,得到的所述判断结果包括所述目标点对应的结果点在所述蒙哥马利曲线上。
31.在一种可能的设计中,所述根据所述统一z坐标中间值、所述第一纵坐标中间值、所述第二横坐标中间值以及所述目标点的横坐标进行第一模数运算,得到z坐标结果值以及横坐标结果值,包括:
32.根据所述统一z坐标中间值和所述第一纵坐标中间值进行所述第一模数运算的第一子运算,得到所述z坐标结果值;
33.根据所述第二横坐标中间值、所述z坐标结果值以及所述目标点的横坐标进行所述第一模数运算的第二子运算,得到所述横坐标结果值。
34.在一种可能的设计中,所述根据判断结果得到目标点乘结果,包括:
35.根据所述判断结果输出所述横坐标结果值以及所述z坐标结果值;
36.将所述横坐标结果值以及所述z坐标结果值输入至第四模数运算,将得到的运算结果确定为所述目标点乘结果。
37.在一种可能的设计中,在所述根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程之前,还包括:
38.判断所述目标点的横坐标是否为所述小子群元素,所述小子群元素根据所述蒙哥马利曲线获得;
39.若否,通过所述勒让德符号、所述目标点的横坐标以及所述蒙哥马利曲线获得所述目标点的阶。
40.第二方面,本技术提供一种加密处理装置,包括:
41.初始化模块,用于根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,所述目标点的相对坐标包括所述目标点的横坐标和所述目标点的相对纵坐标,所述目标点的横坐标非小子群元素;
42.迭代模块,用于根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程,其中,通过随机数随机化用户密钥对的私钥得到所述随机化后私钥,所述目标点的阶根据勒让德符号获得;
43.结果判断模块,用于根据所述坐标中间值判断所述目标点对应的结果点是否在所述蒙哥马利曲线上,根据判断结果得到目标点乘结果,所述目标点乘结果应用于密钥生成场景和/或密钥协商场景。
44.第三方面,本技术提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
45.所述存储器存储计算机执行指令;
46.所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面中所提供的任意一种可能的加密处理方法。
47.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面中所提供的任意一种可能的加密处理方法。
48.第五方面,本技术提供一种计算机程序产品,包括计算机执行指令,该计算机执行
指令被处理器执行时用于实现第一方面中所提供的任意一种可能的加密处理方法。
49.本技术提供一种加密处理方法、装置、设备及存储介质,首先根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,目标点的相对坐标包括的目标点的横坐标,目标点的横坐标非小子群元素,然后根据坐标中间值、随机化后私钥以及目标点的阶进行蒙哥马利梯子运算的迭代过程,其中,通过随机数随机化用户密钥对的私钥得到随机化后私钥,再根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,根据判断结果得到目标点乘结果,目标点乘结果应用于密钥生成场景和/或密钥协商场景。基于目标点的相对坐标进行蒙哥马利梯子运算的初始化得到雅克比坐标系下的坐标中间值,利用坐标中间值进行蒙哥马利梯子运算的迭代过程,可以极大降低计算量,提高点乘运算性能。并且进行蒙哥马利梯子运算的目标点的横坐标非小子群元素,可以避免运算过程出现无穷远点,避免遭受选择输入攻击。进一步地,根据坐标中间值判断目标点对应的结果点是否在曲线上以使得加密处理过程具备抵抗错误注入攻击的能力且不影响点乘运算性能。
附图说明
50.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
51.图1为本技术实施例提供的一种系统架构示意图;
52.图2为本技术实施例提供的一种加密处理方法的流程示意图;
53.图3为本技术实施例提供的一种蒙哥马利梯子运算初始化的流程示意图;
54.图4为本技术实施例提供的一种判断流程示意图;
55.图5为本技术实施例提供的一种加密处理装置的结构示意图;
56.图6为本技术实施例提供的一种初始化模块的结构示意图;
57.图7为本技术实施例提供的另一种加密处理装置的结构示意图;
58.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
59.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的方法和装置的例子。
60.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这
些过程、方法、产品或设备固有的其它步骤或单元。
61.现有技术中点乘运算的实现通常是在采用蒙哥马利梯子的基础上,还通过蒙哥马利梯子运算的初始化以利用随机数对点坐标等敏感数据进行盲化,从而对敏感数据得以保护。然而,对于蒙哥马利曲线y2=x3+ax2+x,以curve25519为例,定义为公钥也即点的x坐标的集合则为{q:q∈{0,1,

,2
256-1}},上则存在如下3个子群覆盖公钥集合:
62.(a)、{∞,(0,0)};
63.(b)、x∈f
p
且y∈f
p
,这个群的大小为8p1,其中p1=2
252
+27742317777372353535851937790883648493,存在阶为1,2,4,8,p1,8p1的点,f
p
为蒙哥马利曲线的第一有限域;
64.(c)、x∈f
p
且这个群的大小为4p2,其中p2=2
253

55484635554744707071703875581767296995,存在阶为1,2,4,p2,4p2的点,为蒙哥马利曲线的第二有限域。
65.由此可发现现有方案存在如下缺陷:第一,由于curve25519()的输入只有x坐标,无法确认点属于哪个子群,也就无法确认点的阶n的具体值,由于点的阶n用于密钥随机化,若n错误则会导致点乘运算结果错误,因此,只能令n=8p1*p2以保证阶的正确性,这使得随机化中km=k+r*n=k+8r*p1p2,而k的长度为255比特,若r的长度为128比特,则k+r*n的长度即为638比特,与没有密钥随机化的点乘运算相比其性能会下降150%;第二,现有的抵御侧信道攻击时的点乘运算计算量非常大,例如点坐标盲化的计算量为5m+4a,蒙哥马利梯子运算中迭代过程的计算量为11m+8a,m指模乘运算,a指模加或模减运算,计算量之大势必影响点乘运算性能。而抵御错误注入攻击时使用(x,y)进行点乘运算的计算量又远大仅使用x坐标的点乘运算,例如迭代过程的计算量高达32m+19a,以及当y属于第二有限域时计算y的运算需在上进行,上的模乘计算量是f
p
上的3倍,对性能影响极大,从而导致抵抗错误注入攻击的防护能力严重影响点乘运算性能,而若仅抵御侧信道攻击则又无法抵御错误注入攻击;第三,当点为小子群点时,在蒙哥马利梯子运算过程中会周期性出现无穷远点o,出现无穷远点时运算的功耗相较正常点的运算功耗低,因而攻击者可以从功耗曲线上分辨出相关特征以获取私钥k,从而遭受选择输入攻击。
66.针对现有技术中存在的上述问题,本技术提供一种加密处理方法、装置、设备及存储介质。本技术提供的加密处理方法的发明构思在于:(1)根据勒让德符号获得目标点的阶,确定目标点的阶,有效降低随机化中阶n的长度,提高点乘运算性能,克服现有技术中第一种缺陷;(2)根据目标点的相对坐标对蒙哥马利梯子运算进行初始化的得到坐标中间值,使用坐标中间值进行蒙哥马利梯子运算的迭代过程,在初始化过程中的点坐标盲化中可以令目标点的纵坐标为1,避免根据目标点的横坐标获得目标点的纵坐标的运算过程,并且使得蒙哥马利梯子运算的迭代过程的计算量减少,提高运算性能。并且根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,使得加密处理过程具备抵抗错误注入攻击的
能力且不影响点乘运算性能,从而克服现有技术中的第二种缺陷;(3)进行蒙哥马利梯子运算的目标点的横坐标非小子群元素,也就是仅对不属于小子群元素的目标点的横坐标进行蒙哥马利梯子运算,避免运算过程中出现无穷远点,从而避免遭受选择输入攻击,克服现有技术中第三种缺陷。
67.图1为本技术实施例提供的一种系统架构示意图。如图1所示,中央处理器(central processing unit,cpu)100可以被配置为执行本技术实施例提供的加密处理方法,例如,在用户需要进行加密通信时,相应的上层应用则需要发起点乘运算的操作,因而下发点乘命令,cpu 100响应点乘命令获取标量值,例如从第一存储器200中读取标量值k,该标量值可以用于表示用户密钥对的私钥。继而cpu 100可以根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,以及根据坐标中间值、随机化后私钥以及目标点的阶进行蒙哥马利梯子运算的迭代过程,再根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,最后根据判断结果得到目标点乘结果,将得到的目标点乘结果应用密钥生成场景和/或密钥协商场景以进行加密通信。
68.其中,cpu 100可以从随机数发生器300读取随机数以对用户密钥对的私钥也即标量值k进行随机化得到随机化后私钥。
69.可选地,在cpu 100执行本技术实施例提供的加密处理方法时,还可以通过计算速度快的协处理器400运行该过程,例如加快初始化以及蒙哥马利梯子运算,提高运算效率。
70.可选地,系统架构还可以包括有第二存储器500,用于存储点乘代码以及候选点乘结果和目标点乘结果,点乘代码用来实现加密处理方法,也包括有蒙哥马利梯子运算。
71.可选地,第一存储器200可以包括非易失存储器(non volatile memory,nvm),第二存储器500可以包括随机访问存储器(random access memory,ram)。
72.需要说明的是,上述图1所示的系统架构仅仅是示意性的,本技术实施例提供的加密处理方法、装置、设备及存储介质包括但不仅限于上述系统架构。
73.图2为本技术实施例提供的一种加密处理方法的流程示意图。如图2所示,本技术实施例提供的加密处理方法,包括:
74.s101:判断目标点的横坐标是否为小子群元素。
75.其中,小子群元素根据蒙哥马利曲线获得。
76.对目标点的横坐标是否属于小子群进行判断,也即判断目标点t的横坐标(x
t
)是否在小子群中。其中,目标点t的横坐标(x
t
)用于表征用户密钥对的公钥。
77.根据蒙哥马利曲线获取所有小子群内的点,小子群内的点也就是小子群元素。小子群是指目标点的阶远小于蒙哥马利曲线阶的子群。可以采用数组smallorder表示所有小子群内的点的横坐标对p取模后的值,以减少小子群元素的数量。蒙哥马利曲线例如curve25519,也即255比特的蒙哥马利曲线。
78.例如,smallorder[5]={0,1,325606250916557431795983626356110631294008115727848805560023387167927233504,39382357235489614581723060781553021112529911719440698176882885853963445705823,57896044618658097711785492504343953926634992332820282019728792003956564819948}。
[0079]
判断目标点t的横坐标(x
t
)对p取模后的值是否在数组中,若是,则表示目标点t的横坐标(x
t
)属于小子群元素。若否,则表示目标点t的横坐标(x
t
)非小子群元素。
[0080]
由于用户密钥对的私钥(也即标量值k)的集合为{k|k∈2
254
+8{0,1,

,2
251-1}},因此对应的蒙哥马利梯子运算[k]t的过程中会周期性出现o,o表示无穷远点。换言之,若目标点t的横坐标(x
t
)为小子群元素,则点乘过程中会周期性出现无穷远点,输出无穷远点。反之,若目标点t的横坐标(x
t
)未在数组中,则表示目标点t的横坐标(x
t
)非小子群元素,蒙哥马利梯子运算[k]t过程中则不会周期性出现无穷远点。因而在蒙哥马利梯子运算前进行小子群筛选,可以避免蒙哥马利梯子运算过程中周期性出现无穷远点,进而防止攻击者利用小子群在蒙哥马利梯子运算实现的点乘运算过程中因存在功耗差异导致密钥泄露,达到有效避免选择输入攻击的效果,提高抵御测信道攻击的能力。
[0081]
s102:若确定目标点的横坐标非小子群元素,通过勒让德符号、目标点的横坐标以及蒙哥马利曲线获得目标点的阶。
[0082]
在确定目标点的横坐标非小子群元素后,进一步通过勒让德符号以及目标点的横坐标基于蒙哥马利曲线获取目标点的阶,以明确目标点的阶,降低随机化中阶n的长度,提高点乘运算的效率和性能。
[0083]
例如,将目标点的横坐标输入如公式(1)表示的蒙哥马利曲线的曲线模型得到目标点的纵坐标的平方值如公式(2)所示,进而利用公式(3)、公式(4)以及公式(5)获取目标点的纵坐标的平方值对应的勒让德符号,根据勒让德符号确定目标点的纵坐标所属子群,进而根据其所属子群确定出目标点的阶n。
[0084]
y2=x3+486662x2+x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0085]yt2
=x
t3
+486662x
t2
+x
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0086]
v=y
t2 mod p=(x
t3
+486662x
t2
+x
t
)mod p
ꢀꢀꢀ
(3)
[0087]
ls_pre=exp(v,p12)=v
p12 mod p
ꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0088]
p12=28948022309329048855892746252171976963317496166410141009864396001978282409974
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0089]
其中x和y分别表示蒙哥马利曲线上的点的横坐标和纵坐标,公式(1)表示蒙哥马利曲线的曲线模型,例如curve25519。将目标点t的横坐标(x
t
)输入公式(1)即可得到公式(2)表示的目标点t的纵坐标(y
t
)的平方值y
t2
。v表示目标点t的纵坐标(y
t
)的平方值y
t2
除以p得到的余数,p为curve25519参数。ls_pre表示目标点的纵坐标的平方值对应的勒让德符号。若勒让德符号ls_pre为1,则目标点的纵坐标所属子群为蒙哥马利曲线的第一有限域,即y
t
∈f
p
,参照前述覆盖公钥集合的3个子群中(b)子群可见,若y
t
∈f
p
,目标点t的阶n为8p1;若勒让德符号ls_pre为p-1,则目标点的纵坐标所属子群为蒙哥马利曲线的第二有限域,即参照前述覆盖公钥集合的3个子群中的(c)子群内容可见若目标点t的阶n为4p2。故而,确定出目标点t的阶n的具体取值。可以理解的是,在进行加密处理时,8p1和4p2均已知。
[0090]
s103:根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值。
[0091]
使用点的相对坐标(x,y’)进行蒙哥马利梯子运算的初始化,例如目标点t的相对坐标(x
t
,y’),得到雅克比(jacobian)坐标系下的坐标中间值。其中,y’=y/y
t
,(x,y)是蒙哥马利梯子运算中实际的点坐标,y
t
是和目标点的横坐标(x
t
)对应的y坐标,目标点的相对坐
标包括目标点的横坐标和目标点的相对纵坐标。
[0092]
在一些实施例中,坐标中间值可以包括第一纵坐标中间值ys、第二纵坐标中间值y’t
、第一横坐标中间值x
rt
、第二横坐标中间值x
qt
以及统一z坐标中间值z和斜率值m。在蒙哥马利梯子运算的初始化中使用(x,y’)而不是(x,y),可以在实现初始化的初始化模型(new_mtg_ladder_setup_msk)中令y
t
=1,从而无需计算y
t
,避免根据x
t
还原y
t
的运算过程,从而减少计算量提高点乘运算性能。
[0093]
例如,步骤s103的可能实现方式可以通过如下公式(6)得以实现:
[0094]
x
rt
,x
qt
,m,y’t
,z,ys=new_mtg_ladder_setup_msk(x
t
)
ꢀꢀ
(6)
[0095]
也即可以将目标点的横坐标(x
t
)输入至蒙哥马利梯子运算的初始化模型(new_mtg_ladder_setup_msk),输出即为雅克比坐标系下的坐标中间值,具体可以包括第一纵坐标中间值、第二纵坐标中间值、第一横坐标中间值、第二横坐标中间值以及统一z坐标中间值和斜率值。
[0096]
需要说明的是,本步骤s103中目标点的横坐标为经过步骤s101的判断已确定其非小子群元素。
[0097]
s104:根据坐标中间值、随机化后私钥以及目标点的阶进行蒙哥马利梯子运算的迭代过程。
[0098]
其中,随机化后私钥是通过随机数随机化用户密钥对的私钥得到。例如可以通过如下所示公式(7)进行密钥随机化以通过随机数随机化用户密钥对的私钥,得到随机化后私钥。
[0099]
km=k+r*n//r是随机数
ꢀꢀꢀ
(7)
[0100]
其中,km表示采用随机数对标量值k随机化,对于curve25519,随机数r的长度可以为128比特或者更长。
[0101]
可选地,在随机化用户密钥对的私钥之前,可以响应点乘命令获取用户密钥对的私钥也即标量值k,例如响应点乘命令从第一存储器中获取标量值k。
[0102]
根据坐标中间值、随机化后私钥以及目标点的阶进行蒙哥马利梯子运算,得到对应的运算结果即候选点乘结果。需要说明的是,目标点的阶根据步骤s102中的勒让德符号获得。
[0103]
在一种可能的设计中,步骤s104的可能实现方式包括:
[0104]
根据随机化后私钥、目标点的阶以及迭代输入值执行蒙哥马利运算的迭代过程。
[0105]
例如,迭代输入值可以包括斜率值m、第二纵坐标中间值y’t
、统一z坐标中间值z以及第一横坐标中间值x
rt
和第二横坐标中间值x
qt
,进而可以通过如下所示步骤实现迭代过程:
[0106]
for t=bits-1to 0://bits是km的比特长度
[0107]
if(km
t
==1)
[0108]
x
qt
,x
rt
,m,y’t
,z=new_mtg_ladder_update(x
qt
,x
rt
,m,y’t
,z)
[0109]
else
[0110]
x
qt
,x
rt
,m,y’t
,z=new_mtg_ladder_update(x
rt
,x
qt
,m,y’t
,z)
[0111]
其中,t表示当前轮询到的比特位置,km
t
表示km中第t比特的值,new_mtg_ladder_update表示迭代过程。
[0112]
迭代过程的具体实现方式可以如下表1所示:
[0113]
表1
[0114][0115]
其中,第一迭代参考点a和第二迭代参考点b的关系是a=t+b,x
at
是x
at
=x
a-x
t
转换到雅克比(jacobian)坐标系下的值,x
bt
是x
bt
=x
b-x
t
转换到雅克比坐标系下的值,m’是经过点a,b,t的直线的斜率,m’是m’转换到雅克比坐标系下的值,y’t
是点t的相对纵坐标,y’t
是y’t
转换到雅克比坐标系下的值,z是雅克比坐标系下的统一z坐标中间值;第三参考点c=a+b,x
ct
是x
ct
=x
c-x
t
转换到雅克比坐标系下的值,第四参考点d=[2]b,x
dt
是x
dt
=x
d-x
t
转换到雅克比坐标系下的值,m”是经过点c,d,t的直线的斜率,m”是m”转换到雅克比坐标系下的值,y”t
是y’t
根据z’转换到雅克比坐标系下的值,z’是更新后的雅克比坐标系下的统一z坐标中间值。另外,第一迭代参考点a包括第一参考点r,第二迭代参考点b包括第二参考点q,相应地,x
at
和x
bt
可以分别为x
qt
、x
rt
或者x
rt
,x
qt
。s105:根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,根据判断结果得到目标点乘结果。
[0116]
其中,目标点乘结果应用于密钥生成场景和/或密钥协商场景。
[0117]
在完成迭代之后,根据坐标中间值检查目标点t对应的结果点(x
out
,y’out
)是否在蒙哥马利曲线上,通过检查得到判断结果,根据判断结果得到目标点乘结果[k]t的x
out
坐标,进而将目标点乘结果应用于密钥生成场景和/或密钥协商场景。
[0118]
在一些实施例中,可以通过如下公式(8)得到进行检查并得到目标点乘结果:
[0119]
x
out = new_mtg_ladder_final(z, ys, x
qt
, x
t
, m, y’t
)
ꢀꢀꢀ
(8)
[0120]
其中,x
out
表示目标点乘结果,new_mtg_ladder_final表示实现检查并得到目标点乘结果所使用的相应算法,z、ys、x
qt
、m、y’t
则依次为坐标中间值中的统一z坐标中间值、第一纵坐标中间值、第二横坐标中间值、斜率值以及第二纵坐标中间值,x
t
表示目标点的横坐标。
[0121]
在本步骤中,对结果点是否在蒙哥马利曲线上的检查基于坐标中间值得以实现,使其不同于现有技术中实现结果点是否在蒙哥马利曲线上的检查需要根据结果点的横坐标(x
out
)还原对应的y坐标(y
out
),从而极大地降低了计算量,提高了运算性能,并使得加密处理过程具备抵御错误注入攻击的能力且不影响运算性能。
[0122]
在一种可能的设计中,图2所示实施例描述加密处理方法的算法实现过程可如下表2所示:
[0123]
表2
[0124][0125][0126]
表2中第5步使用相对坐标(x,y’)进行蒙哥马利梯子运算的迭代过程的实现过程可以如上表1所示,其中当t=0时迭代过程结束。
[0127]
本技术实施例提供的加密处理方法,首先根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,目标点的相对坐标所包括的目标点的横坐标非小子群元素。然后根据坐标中间值、随机化后私钥以及目标点的阶进行蒙哥马利梯子运算的迭代过程,再根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,根据判断结果得到目标点乘结果,将目标点乘结果应用于密钥生成场景和/或密钥协商场景。基于目标点的相对坐标进行蒙哥马利梯子运算的初始化得到雅克比坐标系下的坐标中间值,利用坐标中间值进行蒙哥马利梯子运算的迭代过程,可以极大降低计算量,提高点乘运算性能。并且进行蒙哥马利梯子运算的目标点的横坐标非小子群元素,可以避免运算过程出现无穷远点,避免遭受选择输入攻击。进一步地,根据坐标中间值判断候选点乘结果对应的结果点是否在曲线上以使得加密处理过程具备抵抗错误注入攻击的能力且不影响点乘运算性能。
[0128]
在一种可能的设计中,步骤s103可能的实现方式中,根据目标点的横坐标以及蒙哥马利梯子运算的初始化模型得到坐标中间值的可能实现方式如图3所示。图3为本技术实施例提供的一种蒙哥马利梯子运算初始化的流程示意图。如图3所示,本技术实施例包括:
[0129]
s201:根据目标点的横坐标以及第一初始化算法得到第一纵坐标中间值。
[0130]
如公式(6)所示的初始化模型包括如公式(10)所示的第一初始化算法,将目标点的横坐标输入至第一初始化算法可以得到第一纵坐标中间值,第一纵坐标中间值ys为目标点的纵坐标的平方ys转换至雅克比坐标系下的值。
[0131]ys
=x
t3
+a*x
t2
+x
t mod p
ꢀꢀꢀ
(10)
[0132]
其中,a表示curve25519曲线参数,a=486662。
[0133]
s202:根据目标点的横坐标以及横坐标随机化算法得到统一z坐标中间值。
[0134]
如公式(6)所示的初始化模型包括如公式(11)和(12)所示的横坐标随机化算法,将目标点的横坐标输入至横坐标随机化算法可以得到统一z坐标中间值z,统一z坐标中间值为目标点t以及目标点的第一参考点r和第二参考点q在雅克比坐标系下的统一的z坐标。
[0135]
z2 = 4*((x
t
*r’)
3 + a*r’*(x
t
*r’)
2 + x
t
*r
’3) mod p
ꢀꢀꢀꢀ
(11)
[0136]
z = 2*r’2 mod p
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0137]
其中,r’是长度为256比特的另一随机数,a是curve25519曲线参数,为486662。
[0138]
s203:根据统一z坐标中间值以及第二初始化算法得到第二纵坐标中间值。
[0139]
如公式(6)所示的初始化模型包括如公式(13)所示的第二初始化算法,将统一z坐标中间值的过渡值即公式(11)所示,输入至第二初始化算法可以得到第二纵坐标中间值y’t
。第二纵坐标中间值y’t
为目标点的相对纵坐标y’t
转换至雅克比坐标系下的值。y’t
为目标点t的相对y坐标。
[0140]
y’t = z2
2 mod p
ꢀꢀꢀ
(13)
[0141]
s204:根据目标点的横坐标以及第三初始化算法得到斜率值。
[0142]
如公式(6)所示的初始化模型包括如公式(14)所示的第三初始化算法,将目标点的横坐标输入至第三初始化算法可以得到斜率值m。斜率值m为参考直线的斜率转换至雅克比坐标系下的值,参考直线为经过目标点以及第一参考点r和第二参考点q的直线。其中,第一参考点r和第二参考点q的关系为r=t+q。
[0143]
m = 3*(x
t
*r’)
2 + 2*a*x
t
*r’2 + r’2 mod p
ꢀꢀꢀ
(14)
[0144]
s205:根据斜率值、目标点的横坐标以及第四初始化算法得到第一横坐标中间值以及第二横坐标中间值。
[0145]
如公式(6)所示的初始化模型包括如公式(15)和(16)所示的第四初始化算法,将目标点的横坐标和斜率值以及统一z坐标中间值的过渡值输入至公式(15)得到第一横坐标中间值x
rt
,通过公式(16)可以得到第二横坐标中间值x
qt
。其中,第一横坐标中间值x
rt
是第一相对横坐标(x
rt
=x
r-x
t
)转换到雅克比坐标系下的值,第二横坐标中间值x
qt
是第二相对横坐标(x
qt
=x
q-x
t
)转换到雅克比坐标系下的值,xr和xq分别为第一参考点r和第二参考点q各自的横坐标。
[0146]
x
rt = m2ꢀ‑ꢀ
(3*x
t
*r
’ꢀ
+ a*r’)*z2 mod p
ꢀꢀꢀ
(15)
[0147]
x
qt = 0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0148]
通过如上公式(10)至(16)所示的初始化模型可以对蒙哥马利梯子运算实现初始化,得到雅克比坐标系下的坐标中间值。
[0149]
如图3实施例所描述可知,表2中第3步使用相对坐标(x,y’)进行蒙哥马利梯子运算的初始化的算法实现过程可以如下表3所示:
[0150]
表3
[0151][0152]
通过上述实施例描述可见,在图3所示实施例实现初始化的过程中,可以令y
t
=1,从而无需计算y
t
,避免根据x
t
还原y
t
的运算过程,从而可以减少计算量提高点乘运算性能,使得基于目标点的相对坐标实现初始化过程的运算性能为现有技术的1.7倍。
[0153]
在一种可能的设计中,步骤s105中根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,根据判断结果确定目标点乘结果的可能实现方式如图4所示。图4为本技术实施例提供的一种判断流程示意图。如图4所示,本技术实施例包括:
[0154]
s301:根据统一z坐标中间值、第一纵坐标中间值、第二横坐标中间值以及目标点的横坐标进行第一模数运算,得到z坐标结果值以及横坐标结果值。
[0155]
如公式(8)所示的算法包括如公式(17)和(18)所示的第一模数运算的第一子运算和第二子运算,例如,将统一z坐标中间值z、以及第一纵坐标中间值ys输入至公式(17)所示的第一模数运算的第一子运算,得到z坐标结果值zs。将第二横坐标中间值x
qt
、z坐标结果值zs以及目标点的横坐标x
t
输入至公式(18)所示的第一模数运算的第二子运算,得到横坐标结果值xq。
[0156]zs = (z
2 * ys) mod p
ꢀꢀꢀ
(17)
[0157]
x
q = (x
qt + x
t * zs) mod p
ꢀꢀꢀ
(18)
[0158]
s302:根据第二纵坐标中间值、第二横坐标中间值以及斜率值进行第二模数运算,得到纵坐标结果值。
[0159]
如公式(8)所示的算法包括如公式(19)所示的第二模数运算,例如,将第二纵坐标中间值y’t
、第二横坐标中间值x
qt
以及斜率值m输入至公式(19)所示的第二模数运算,可以得到纵坐标结果值y
qs

[0160]yqs = (y’t + 2*m*x
qt
)
2 mod p
ꢀꢀꢀ
(19)
[0161]
s303:根据横坐标结果值以及z坐标结果值进行第三模数运算,得到临时值。
[0162]
如公式(8)所示的算法包括如公式(20)所示的第三模数运算,例如,将横坐标结果值xq以及z坐标结果值zs输入至公式(20)所示的第三模数运算,可以得到临时值tmp2。
[0163]
tmp2 = 4*(x
q3 + a*x
q2
*z
s + xq*z
s2
) mod p
ꢀꢀꢀ
(20)
[0164]
其中,a是curve25519曲线参数为486662。
[0165]
s304:判断纵坐标结果值是否等于临时值。
[0166]
判断纵坐标结果值y
qs
是否与临时值tmp2相等,若是,表示目标点对应的结果点在蒙哥马利曲线上,进一步执行步骤s305。反之,若不相等,则报错,即执行步骤s306。
[0167]
s305:根据判断结果输出横坐标结果值以及z坐标结果值。
[0168]
经过步骤s304得到的判断结果包括目标点对应的结果点在蒙哥马利曲线上,则进一步输出横坐标结果值xq以及z坐标结果值zs,并进一步执行步骤s307。
[0169]
s306:生成报错信息,并输出报错信息。
[0170]
经过步骤s304得到的判断结果包括目标点对应的结果点不在蒙哥马利曲线上,可以通过如下所示报错函数(21)生成报错信,并输出报错信息。
[0171]
assert y
qs == tmp2:
ꢀ“
fault detected
”ꢀꢀꢀ
(21)
[0172]
其中,assert表示报错函数。
[0173]
s307:将横坐标结果值以及z坐标结果值输入至第四模数运算,将得到的运算结果确定为目标点乘结果。
[0174]
如公式(8)所示的算法包括如公式(22)和(23)所示的第四模数运算,例如,将z坐标结果值zs输入至公式(22)得到z坐标过渡值z
sinv
,进而将横坐标结果值xq以及z坐标过渡值z
sinv
输入至公式(23),将得到的公式(23)的运算结果确定为目标点乘结果x
out
,以输出目标点乘结果x
out

[0175]zsinv = z
s ‑
1 mod p
ꢀꢀꢀ
(22)
[0176]
x
out = (x
q * z
sinv
) mod p
ꢀꢀꢀ
(23)
[0177]
可选地,在步骤s307之前还可以包括对z坐标结果值zs是否不等于0的判断,若成立则正常执行步骤s307,反之则报错。
[0178]
如图4实施例描述可知,表2中第6步检查结果点是否在曲线上并得到最终结果点的x
out
坐标的算法实现过程可以如下表4所示:
[0179]
表4
[0180][0181]
通过如上公式(17)至(23)所示的相应算法,可以对结果点是否在蒙哥马利曲线上实现判断并根据判断结果确定目标点乘结果,从而使得本技术实施例提供的加密处理方法具备抵抗错误注入攻击的能力。并且,该实现方式不同于现有技术中在进行结果点是否在蒙哥马利曲线上的判断时还需根据结果点的横坐标(x
out
)还原对应的y坐标(y
out
)的相应实现方式,从而极大地降低了计算量,提高了运算性能,使得加密处理过程具备抵御错误注入攻击的能力不影响运算性能。
[0182]
在一种可能的设计中,为了进一步提升运算效率与性能,在上述各实施例中响应点乘命令读取标量值之前,还可以包括:
[0183]
根据处理器的配置判断是否将点乘代码从第一存储器转存至第二存储器,例如处理器的配置较低,则需进行转存以有利于提高运算效率,否则,可以不需要转存。若需要转存,则可以将点乘代码从第一存储器转存至第二存储器,进而从第二存储器或者数据接口获取基点,获取到的基点用于进行点乘运算,其中,点乘代码用于实现点乘运算,点乘运算包括蒙哥马利梯子运算的初始化和迭代过程。
[0184]
可选地,上述实施例得到的目标点乘结果可以存储在第一存储器和/或第二存储器。
[0185]
图5为本技术实施例提供的一种加密处理装置的结构示意图。如图5所示,本技术实施例提供的加密处理装置400,包括:
[0186]
初始化模块401,用于根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,目标点的相对坐标包括目标点的横坐标和目标点的相对纵坐标,目标点的横坐标非小子群元素;
[0187]
迭代模块402,用于根据坐标中间值、随机化后私钥以及目标点的阶进行蒙哥马利梯子运算的迭代过程,其中,通过随机数随机化用户密钥对的私钥得到随机化后私钥;
[0188]
结果判断模块403,用于根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,根据判断结果得到目标点乘结果,目标点乘结果应用于密钥生成场景和/或密钥协商场景。
[0189]
在一种可能的设计中,初始化模块401,用于:
[0190]
根据目标点的横坐标以及蒙哥马利梯子运算的初始化模型得到坐标中间值,坐标中间值包括第一纵坐标中间值、第二纵坐标中间值、第一横坐标中间值、第二横坐标中间值以及统一z坐标中间值和斜率值。
[0191]
在一种可能的设计中,图6为本技术实施例提供的一种初始化模块的结构示意图,如图6所示,该初始化模块401,包括:第一初始化算法模块4011;第一初始化算法模块4011,用于:
[0192]
根据目标点的横坐标以及第一初始化算法得到第一纵坐标中间值,第一纵坐标中间值为目标点的纵坐标的平方转换至雅克比坐标系下的值。
[0193]
在一种可能的设计中,初始化算法模块401,还包括:第二初始化算法模块4012;第二初始化算法模块4012,用于:
[0194]
根据目标点的横坐标以及横坐标随机化算法得到统一z坐标中间值;
[0195]
根据统一z坐标中间值以及第二初始化算法得到第二纵坐标中间值;
[0196]
其中,第二纵坐标中间值为目标点的相对纵坐标转换至雅克比坐标系下的值,统一z坐标中间值为目标点以及目标点的第一参考点和第二参考点在雅克比坐标系下的统一z坐标。
[0197]
在一种可能的设计中,初始化算法模块401,还包括:第三初始化算法模块4013;第三初始化算法模块4013,用于:
[0198]
根据目标点的横坐标以及第三初始化算法得到斜率值;
[0199]
根据斜率值、目标点的横坐标以及第四初始化算法得到第一横坐标中间值以及第二横坐标中间值;
[0200]
其中,斜率值为参考直线的斜率转换至雅克比坐标系下的值,参考直线为经过目标点以及第一参考点和第二参考点的直线,第一横坐标中间值为第一相对横坐标转换至雅克比坐标系下的值,第二横坐标中间值为第二相对横坐标转换至雅克比坐标系下的值,第一相对横坐标根据第一参考点的横坐标和目标点的横坐标得到,第二相对横坐标根据第二参考点的横坐标和目标点的横坐标得到。
[0201]
在一种可能的设计中,迭代模块402,用于:
[0202]
根据随机化后私钥、目标点的阶以及迭代输入值进行蒙哥马利运算的迭代过程;
[0203]
其中,迭代输入值包括斜率值、第二纵坐标中间值、统一z坐标中间值以及第一横坐标中间值和第二横坐标中间值。
[0204]
在一种可能的设计中,结果判断模块403,用于:
[0205]
根据统一z坐标中间值、第一纵坐标中间值、第二横坐标中间值以及目标点的横坐标进行第一模数运算,得到z坐标结果值以及横坐标结果值;
[0206]
根据第二纵坐标中间值、第二横坐标中间值以及斜率值进行第二模数运算,得到纵坐标结果值;
[0207]
根据横坐标结果值以及z坐标结果值进行第三模数运算,得到临时值;
[0208]
判断纵坐标结果值是否等于临时值;
[0209]
若是,得到的判断结果包括目标点对应的结果点在蒙哥马利曲线上。
[0210]
在一种可能的设计中,结果判断模块403,还用于:
[0211]
根据统一z坐标结果值和第一纵坐标中间值进行第一模数运算的第一子运算,得到z坐标结果值;
[0212]
根据第二横坐标中间值、z坐标结果值以及目标点的横坐标进行第一模数运算的第二子运算,得到横坐标结果值。
[0213]
在一种可能的设计中,结果判断模块403,还用于:
[0214]
根据判断结果输出横坐标结果值以及z坐标结果值;
[0215]
将横坐标结果值以及z坐标结果值输入至第四模数运算,将得到的运算结果确定为目标点乘结果。
[0216]
在图5基础上,图7为本技术实施例提供的另一种加密处理装置的结构示意图。如图7所示,本技术实施例提供的加密处理装置400,还包括:子群筛选与阶获取模块404,子群筛选与阶获取模块404,用于:
[0217]
判断目标点的横坐标是否为小子群元素,小子群元素根据蒙哥马利曲线获得;
[0218]
若否,通过勒让德符号、目标点的横坐标以及蒙哥马利曲线获得目标点的阶。
[0219]
本技术实施例提供的加密处理装置,可以执行上述方法实施例中加密处理方法的各步骤,其实现原理和技术效果类似,在此不再赘述。
[0220]
图8为本技术实施例提供的一种电子设备的结构示意图。如图8所示,该电子设备500可以包括:处理器501,以及与处理器501通信连接的存储器502。
[0221]
存储器502,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机执行指令。
[0222]
存储器502可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0223]
处理器501用于执行存储器502存储的计算机执行指令,以实现加密处理方法。
[0224]
其中,处理器501可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0225]
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。当存储器502是独立于处理器501之外的器件时,电子设备500,还可以包括:
[0226]
总线503,用于连接处理器501以及存储器502。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
[0227]
可选的,在具体实现上,如果存储器502和处理器501集成在一块芯片上实现,则存储器502和处理器501可以通过内部接口完成通信。
[0228]
本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random accessmemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令用于上述实施例中方法的各步骤。
[0229]
本技术还提供了一种计算机程序产品,包括计算机执行指令,该计算机指令被处理器执行时实现上述实施例中方法的各步骤。
[0230]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求书指出。
[0231]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。

技术特征:
1.一种加密处理方法,其特征在于,包括:根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,所述目标点的相对坐标包括所述目标点的横坐标和所述目标点的相对纵坐标,所述目标点的横坐标非小子群元素;根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程,其中,通过随机数随机化用户密钥对的私钥得到所述随机化后私钥,所述目标点的阶根据勒让德符号获得;根据所述坐标中间值判断所述目标点对应的结果点是否在所述蒙哥马利曲线上,根据判断结果得到目标点乘结果,所述目标点乘结果应用于密钥生成场景和/或密钥协商场景。2.根据权利要求1所述的加密处理方法,其特征在于,所述根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,包括:根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,所述坐标中间值包括第一纵坐标中间值、第二纵坐标中间值、第一横坐标中间值、第二横坐标中间值以及统一z坐标中间值和斜率值。3.根据权利要求2所述的加密处理方法,其特征在于,所述根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,包括:根据所述目标点的横坐标以及第一初始化算法得到所述第一纵坐标中间值,所述第一纵坐标中间值为所述目标点的纵坐标的平方转换至所述雅克比坐标系下的值。4.根据权利要求2所述的加密处理方法,其特征在于,所述根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,包括:根据所述目标点的横坐标以及横坐标随机化算法得到统一z坐标中间值;根据所述统一z坐标中间值以及第二初始化算法得到所述第二纵坐标中间值;其中,所述第二纵坐标中间值为所述目标点的相对纵坐标转换至所述雅克比坐标系下的值,所述统一z坐标中间值为所述目标点以及所述目标点的第一参考点和第二参考点在所述雅克比坐标系下的统一z坐标。5.根据权利要求4所述的加密处理方法,其特征在于,所述根据所述目标点的横坐标以及所述蒙哥马利梯子运算的初始化模型得到所述坐标中间值,包括:根据所述目标点的横坐标以及第三初始化算法得到所述斜率值;根据所述斜率值、所述目标点的横坐标以及第四初始化算法得到所述第一横坐标中间值以及所述第二横坐标中间值;其中,所述斜率值为参考直线的斜率转换至所述雅克比坐标系下的值,所述参考直线为经过所述目标点以及所述第一参考点和所述第二参考点的直线,所述第一横坐标中间值为第一相对横坐标转换至所述雅克比坐标系下的值,所述第二横坐标中间值为第二相对横坐标转换至所述雅克比坐标系下的值,所述第一相对横坐标根据所述第一参考点的横坐标和所述目标点的横坐标得到,所述第二相对横坐标根据所述第二参考点的横坐标和所述目标点的横坐标得到。6.根据权利要求2-5任一项所述的加密处理方法,其特征在于,所述根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程,包括:根据所述随机化后私钥、所述目标点的阶以及迭代输入值进行所述蒙哥马利运算的迭
代过程;其中,所述迭代输入值包括所述斜率值、所述第二纵坐标中间值、所述统一z坐标中间值以及所述第一横坐标中间值和所述第二横坐标中间值。7.根据权利要求6所述的加密处理方法,其特征在于,所述根据所述坐标中间值判断所述目标点对应的结果点是否在所述蒙哥马利曲线上,包括:根据所述统一z坐标中间值、所述第一纵坐标中间值、所述第二横坐标中间值以及所述目标点的横坐标进行第一模数运算,得到z坐标结果值以及横坐标结果值;根据所述第二纵坐标中间值、所述第二横坐标中间值以及所述斜率值进行第二模数运算,得到纵坐标结果值;根据所述横坐标结果值以及所述z坐标结果值进行第三模数运算,得到临时值;判断所述纵坐标结果值是否等于所述临时值;若是,得到的所述判断结果包括所述目标点对应的结果点在所述蒙哥马利曲线上。8.根据权利要求7所述的加密处理方法,其特征在于,所述根据所述统一z坐标中间值、所述第一纵坐标中间值、所述第二横坐标中间值以及所述目标点的横坐标进行第一模数运算,得到z坐标结果值以及横坐标结果值,包括:根据所述统一z坐标中间值和所述第一纵坐标中间值进行所述第一模数运算的第一子运算,得到所述z坐标结果值;根据所述第二横坐标中间值、所述z坐标结果值以及所述目标点的横坐标进行所述第一模数运算的第二子运算,得到所述横坐标结果值。9.根据权利要求7所述的加密处理方法,其特征在于,所述根据判断结果得到目标点乘结果,包括:根据所述判断结果输出所述横坐标结果值以及所述z坐标结果值;将所述横坐标结果值以及所述z坐标结果值输入至第四模数运算,将得到的运算结果确定为所述目标点乘结果。10.根据权利要求1所述的加密处理方法,其特征在于,在所述根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程之前,还包括:判断所述目标点的横坐标是否为所述小子群元素,所述小子群元素根据所述蒙哥马利曲线获得;若否,通过所述勒让德符号、所述目标点的横坐标以及所述蒙哥马利曲线获得所述目标点的阶。11.一种加密处理装置,其特征在于,包括:初始化模块,用于根据蒙哥马利曲线上目标点的相对坐标对蒙哥马利梯子运算进行初始化,获取雅克比坐标系下的坐标中间值,所述目标点的相对坐标包括所述目标点的横坐标和所述目标点的相对纵坐标,所述目标点的横坐标非小子群元素;迭代模块,用于根据所述坐标中间值、随机化后私钥以及所述目标点的阶进行所述蒙哥马利梯子运算的迭代过程,其中,通过随机数随机化用户密钥对的私钥得到所述随机化后私钥;结果判断模块,用于根据所述坐标中间值判断所述目标点对应的结果点是否在所述蒙哥马利曲线上,根据判断结果得到目标点乘结果,所述目标点乘结果应用于密钥生成场景
和/或密钥协商场景。12.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-10任一项所述的加密处理方法。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-10任一项所述的加密处理方法。14.一种计算机程序产品,包括计算机执行指令,该计算机执行指令被处理器执行时用于实现如权利要求1-10任一项所述的加密处理方法。

技术总结
本申请提供一种加密处理方法、装置、设备及存储介质,根据蒙哥马利曲线上目标点的相对坐标初始化蒙哥马利梯子运算,获取雅克比坐标系下的坐标中间值,根据坐标中间值、随机化后私钥和目标点的阶进行蒙哥马利梯子运算的迭代过程,根据坐标中间值判断目标点对应的结果点是否在蒙哥马利曲线上,根据判断结果得到可用于密钥生成场景和/或密钥协商场景的目标点乘结果。基于目标点的相对坐标进行初始化和迭代过程,可以极大降低计算量,提高运算性能。目标点的横坐标非小子群元素可以避免运算过程出现无穷远点,免遭选择输入攻击。根据坐标中间值判断目标点对应的结果点是否在曲线上可以使得加密处理过程具备抵抗错误注入攻击的能力且不影响运算性能。能力且不影响运算性能。能力且不影响运算性能。


技术研发人员:刘力睿 胡永波
受保护的技术使用者:深圳市汇顶科技股份有限公司
技术研发日:2023.05.25
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐