本发明涉及信息安全,并且更具体地,涉及一种基于椭圆曲线的解密方法及系统。
背景技术:
1、随着信息技术的飞速发展,信息安全变得越来越重要,为了保证信息的安全传输,许多公钥加密算法被提出。2010年底,我国国家密码管理局发布了sm2椭圆曲线公钥密码算法,包括数字签名算法、密钥交换协议和公钥加解密算法。作为我国首个发布的公钥密码算法标准,sm2算法旨在保障各类信息系统的安全,对我国商用密码产品和信息安全体系建设意义重大。目前,sm2算法的可证安全性达到了公钥密码算法的最高安全级别。
2、为了满足新型电力系统的业务需求,数据安全方案既要考虑适用性和安全性,又要降低复杂度和能耗,然而,sm2解密算法的计算效率被点乘运算的计算效率所限制。
技术实现思路
1、针对上述问题,本发明提出了一种基于椭圆曲线的解密方法,包括:
2、基于终端设备将私钥片段和密文发送至密码设备;
3、基于密码设备在所述密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足,则对所述私钥片段和密文进行辅助计算,获取辅助计算的计算结果,并将所述辅助计算的计算结果返回至终端设备;
4、基于终端设备在密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足对所述辅助计算的计算结果进行点乘运算,获取点乘运算的计算结果,并将所述点乘运算的计算结果及密文发送至密码设备;
5、基于密码设备根据所述点乘运算的计算结果对密文进行解密得到明文,将所述明文返回值终端设备。
6、可选的,基于终端设备将所述sm2私钥私钥和密文发送至密码设备前,所述解密方法,还包括:
7、针对密码设备和终端设备预先设置相同的公开参数;
8、基于终端设备随机选取秘密,以随机选取的秘密作为密钥。
9、可选的,预先设置相同的公开参数,包括如下中的至少一种:
10、p、q、e和g;
11、其中,p为大素数,e为定义在有限域fp上的椭圆曲线,g=(xg,yg)是e上q阶的基点,q为阶数。
12、可选的,随机选取的密钥满足如下:
13、d∈[1,q-1]
14、其中,d为随机选取的秘密,q为阶数。
15、可选的,基于终端设备将所述sm2私钥片段和密文发送至密码设备,包括:
16、基于终端设备将私钥拆分为多个私钥片段,拆分公式如下:
17、d=2128(d1+d2)+264(d3+d4)+d5
18、将私钥片段di(i=1,2,3,4)表示为二进制形式,所述二进制左侧最高位为1;
19、拆分后的私钥片段满足:
20、1≤l1≤128,1≤l2≤128,1≤l3≤192,1≤l4≤192,l1=l2,l3=l4且l2<l3;
21、其中,li是私钥片段di的二进制比特长度;
22、基于终端设备将(di,c)发送至密码设备devi cei;
23、其中,c为密文。
24、可选的,基于密码设备在所述密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足,则对所述私钥片段和密文进行辅助计算,获取辅助计算的计算结果,并将所述辅助计算的计算结果返回至终端设备,包括:
25、基于密码设备devi cei(i=1,2,3,4)从密文c中取出比特串c1,验证c1是否满足椭圆曲线方程,其中c1为密文c的前512位组成的比特串;
26、若不满足则报错并退出,向终端设备发送报错信息;
27、若满足,基于密码设备devicei根据(私钥片段di,密文c)计算得到辅助计算的计算结果dic1;
28、密码设备devicei将辅助计算的计算结果dic1返回至终端设备。
29、可选的,基于终端设备在密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足对所述辅助计算的计算结果进行点乘运算,获取点乘运算的计算结果,并将所述点乘运算的计算结果及密文发送至密码设备,包括:
30、基于终端设备从密文c中取出比特串c1,验证c1是否满足椭圆曲线方程,其中c1为密文c的前512位组成的比特串;
31、若不满足则报错并退出,并发出报错信息;
32、若满足,基于终端设备计算得到d5c1及根据辅助计算的计算结果dic1(i=1,2,3,4)计算得到2128d1c1,2128d2c1,264d3c1,264d4c1,d5为第五私钥片段;
33、基于所述d5c1,2128d1c1,2128d2c1,264d3c1和264d4c1,计算得到点乘运算结果dc1:
34、dc1=(2128(d1+d2)+264(d3+d4)+d5)c1=2128d1c1+2128d2c1+264d3c1+264d4c1+d5c1;
35、将所述点乘运算的计算结果dc1记为{x2,y2},并将{x2,y2}及密文c发送至密码设备device1。
36、可选的,基于密码设备根据所述点乘运算的计算结果对密文进行解密得到明文,将所述明文返回值终端设备,包括:
37、将密文c表示为c1||c3||c2,c1的比特长度是512位,c3的比特长度是256位,klen是密文中c2的比特长度,⊕为异或运算,||为级联运算,hash()是单项哈希函数,kdf()是密钥派生函数。
38、基于密码设备device1计算kdf(x2||y2,klen),并将结果记为比特串t,比特串t为全0比特串,则报错并退出,并向终端设备发送报错信息;
39、基于密码设备device1从c中取出比特串c2,计算明文m=c2⊕t,计算hash(x2||m||y2)并将结果记为u;
40、基于密码设备device1从c中取出比特串c3,对c3和u进行对比,若u≠c3,则报错并退出,向终端设备发送报错信息;
41、密码设备device1将明文m通过安全信道发送给终端设备;
42、再一方面,本发明还提出了一种基于椭圆曲线的解密系统,包括:
43、初始化单元,用于基于终端设备将私钥片段和密文发送至密码设备;
44、辅助计算单元,用于基于密码设备在所述密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足,则对所述私钥片段和密文进行辅助计算,获取辅助计算的计算结果,并将所述辅助计算的计算结果返回至终端设备;
45、点乘运算单元,用于基于终端设备在密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足对所述辅助计算的计算结果进行点乘运算,获取点乘运算的计算结果,并将所述点乘运算的计算结果及密文发送至密码设备;
46、解密单元,用于基于密码设备根据所述点乘运算的计算结果对密文进行解密得到明文,将所述明文返回值终端设备。
47、可选的,基于终端设备将所述sm2私钥私钥和密文发送至密码设备前,所述解密方法,还包括:
48、针对密码设备和终端设备预先设置相同的公开参数;
49、基于终端设备随机选取秘密,以随机选取的秘密作为密钥。
50、可选的,预先设置相同的公开参数,包括如下中的至少一种:
51、p、q、e和g;
52、其中,p为大素数,e为定义在有限域fp上的椭圆曲线,g=(xg,yg)是e上q阶的基点,q为阶数。
53、可选的,随机选取的密钥满足如下:
54、d∈[1,q-1]
55、其中,d为随机选取的秘密,q为阶数。
56、可选的,基于终端设备将所述sm2私钥片段和密文发送至密码设备,包括:
57、基于终端设备将私钥拆分为多个私钥片段,拆分公式如下:
58、d=2128(d1+d2)+264(d3+d4)+d5
59、将私钥片段di(i=1,2,3,4)表示为二进制形式,所述二进制左侧最高位为1;
60、拆分后的私钥片段满足:
61、1≤l1≤128,1≤l2≤128,1≤l3≤192,1≤l4≤192,l1=l2,l3=l4且l2<l3;
62、其中,li私钥片段di的二进制比特长度;
63、基于终端设备将(di,c)发送至密码设备devicei;
64、其中,c为密文。
65、可选的,基于密码设备在所述密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足,则对所述私钥片段和密文进行辅助计算,获取辅助计算的计算结果,并将所述辅助计算的计算结果返回至终端设备,包括:
66、基于密码设备devicei(i=1,2,3,4)从密文c中取出比特串c1,验证c1是否满足椭圆曲线方程,其中c1为密文c的前512位组成的比特串;
67、若不满足则报错并退出,向终端设备发送报错信息;
68、若满足,基于密码设备devicei根据(私钥片段di,密文c)计算得到辅助计算的计算结果dic1;
69、密码设备devicei将辅助计算的计算结果dic1返回至终端设备。
70、可选的,基于终端设备在密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足对所述辅助计算的计算结果进行点乘运算,获取点乘运算的计算结果,并将所述点乘运算的计算结果及密文发送至密码设备,包括:
71、基于终端设备从密文c中取出比特串c1,验证c1是否满足椭圆曲线方程,其中c1为密文c的前512位组成的比特串;
72、若不满足则报错并退出,并发出报错信息;
73、若满足,基于终端设备计算得到d5c1及根据辅助计算的计算结果dic1(i=1,2,3,4)计算得到2128d1c1,2128d2c1,264d3c1,264d4c1,d5为第五私钥片段;
74、基于所述d5c1,2128d1c1,2128d2c1,264d3c1和264d4c1,计算得到点乘运算结果dc1:
75、dc1=(2128(d1+d2)+264(d3+d4)+d5)c1=2128d1c1+2128d2c1+264d3c1+264d4c1+d5c1;
76、将所述点乘运算的计算结果dc1记为{x2,y2},并将{x2,y2}及密文c发送至密码设备device1。
77、可选的,基于密码设备根据所述点乘运算的计算结果对密文进行解密得到明文,将所述明文返回值终端设备,包括:
78、将密文c表示为c1||c3||c2,c1的比特长度是512位,c3的比特长度是256位,klen是密文中c2的比特长度,⊕为异或运算,||为级联运算,hash()是单项哈希函数,kdf()是密钥派生函数。
79、基于密码设备device1计算kdf(x2||y2,klen),并将结果记为比特串t,比特串t为全0比特串,则报错并退出,并向终端设备发送报错信息;
80、基于密码设备device1从c中取出比特串c2,计算明文mc2⊕t,计算hash(x2||m||y2)并将结果记为u;
81、基于密码设备device1从c中取出比特串c3,对c3和u进行对比,若u≠c3,则报错并退出,向终端设备发送报错信息;
82、密码设备device1将明文m通过安全信道发送给终端设备;
83、再一方面,本发明还提供了一种计算设备,包括:一个或多个处理器;
84、处理器,用于执行一个或多个程序;
85、当所述一个或多个程序被所述一个或多个处理器执行时,实现如上述所述的方法。
86、再一方面,本发明还提供了一种计算机可读存储介质,其上存有计算机程序,所述计算机程序被执行时,实现如上述所述的方法。
87、与现有技术相比,本发明的有益效果为:
88、本发明提出了一种基于椭圆曲线的解密方法,包括:基于终端设备将私钥片段和密文发送至密码设备;基于密码设备在所述密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足,则对所述私钥片段和密文进行辅助计算,获取辅助计算的计算结果,并将所述辅助计算的计算结果返回至终端设备;基于终端设备在密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足对所述辅助计算的计算结果进行点乘运算,获取点乘运算的计算结果,并将所述点乘运算的计算结果及密文发送至密码设备;基于密码设备根据所述点乘运算的计算结果对密文进行解密得到明文,将所述明文返回值终端设备。本发明具有高的安全性和应用价值。
1.一种基于椭圆曲线的解密方法,其特征在于,所述解密方法,包括:
2.根据权利要求1所述的解密方法,其特征在于,基于终端设备将所述sm2私钥私钥和密文发送至密码设备前,所述解密方法,还包括:
3.根据权利要求2所述的解密方法,其特征在于,所述预先设置相同的公开参数,包括如下中的至少一种:
4.根据权利要求2所述的解密方法,其特征在于,所述随机选取的密钥满足如下:
5.根据权利要求1所述的解密方法,其特征在于,所述基于终端设备将所述sm2私钥片段和密文发送至密码设备,包括:
6.根据权利要求1所述的解密方法,其特征在于,所述基于密码设备在所述密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足,则对所述私钥片段和密文进行辅助计算,获取辅助计算的计算结果,并将所述辅助计算的计算结果返回至终端设备,包括:
7.根据权利要求1所述的解密方法,其特征在于,所述基于终端设备在密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足对所述辅助计算的计算结果进行点乘运算,获取点乘运算的计算结果,并将所述点乘运算的计算结果及密文发送至密码设备,包括:
8.根据权利要求1所述的解密方法,其特征在于,所述基于密码设备根据所述点乘运算的计算结果对密文进行解密得到明文,将所述明文返回值终端设备,包括:
9.一种基于椭圆曲线的解密系统,其特征在于,所述解密系统,包括:
10.根据权利要求9所述的解密系统,其特征在于,基于终端设备将所述sm2私钥私钥和密文发送至密码设备前,所述解密方法,还包括:
11.根据权利要求10所述的解密系统,其特征在于,所述预先设置相同的公开参数,包括如下中的至少一种:
12.根据权利要求10所述的解密系统,其特征在于,所述随机选取的密钥满足如下:
13.根据权利要求9所述的解密系统,其特征在于,所述基于终端设备将所述sm2私钥片段和密文发送至密码设备,包括:
14.根据权利要求9所述的解密系统,其特征在于,所述基于密码设备在所述密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足,则对所述私钥片段和密文进行辅助计算,获取辅助计算的计算结果,并将所述辅助计算的计算结果返回至终端设备,包括:
15.根据权利要求9所述的解密系统,其特征在于,所述基于终端设备在密文中取出比特串,并验证所述比特串是否满足椭圆曲线方程,若满足对所述辅助计算的计算结果进行点乘运算,获取点乘运算的计算结果,并将所述点乘运算的计算结果及密文发送至密码设备,包括:
16.根据权利要求9所述的解密系统,其特征在于,所述基于密码设备根据所述点乘运算的计算结果对密文进行解密得到明文,将所述明文返回值终端设备,包括:
17.一种计算机设备,其特征在于,包括:
18.一种计算机可读存储介质,其特征在于,其上存有计算机程序,所述计算机程序被执行时,实现如权利要求1-8中任一所述的方法。