一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种电力培训仿真考核数据的安全传输方法及装置与流程

2021-12-17 19:51:00 来源:中国专利 TAG:


1.本发明涉及电力系统仿真技术领域,尤其是涉及一种电力培训仿真考核数据的安全传输方法及装置。


背景技术:

2.电力培训仿真对学员的考核可分为现场和网上考核两种方式,对于现场考核的安全性可由现场监考老师来保证,而对于网上考核的安全都采用摄像头来监督。当前,随着云技术在电力系统的广泛应用,基于云技术来进行电力培训仿真也会得到普及,这样就更凸显了网上考核方式的其实用性。
3.在此背景下,以往基于摄像头来监督来保证网上考核安全的不足就显现出来了,比如当学员进行对其意义重大的网上考核时,可采用抓包软件获得优秀学员提交的考试答案报文,通过替换报文中的学员信息后再提交到服务端,就可完成抄袭功能,这就需要对每个学员所提交的考核信息进行加密。
4.rsa系统是公钥系统中最具有典型意义的方法,然而,密钥长度的增加导致了其加解密的速度大为降低,从而使其应用范围越来越受到制约。为了克服rsa的不足,公钥系统椭圆曲线加密算法(ecc)被提出来了,它是基于在有限域上求椭圆曲线的离散对数的困难性而提出的一种算法。椭圆曲线加密算法ecc算法具有安全性更高、运算量小、存储空间占用小和带宽要求低的优点。
5.ecc算法的数学原理是椭圆曲线和离散对数,使得ecc算法要比rsa算法复杂很多,这种复杂的计算虽带来了性能提升的好处,但是也同时潜藏了一些问题。首先是一套ecc 算法标准所对应的这条曲线,可能暗藏数学机关并可以通过后门来破解。另外一个问题就是基于ecc的专利太多,而且这些专利很多都被一个公司所持有,这个公司就是黑莓,这就使得开发一套新的ecc方案有可能被认为触犯了某个专利。故虽然ecc目前发展良好,但是也面临着各种挑战。


技术实现要素:

6.本发明的目的在于提供一种电力培训仿真考核数据的安全传输方法及装置,基于椭圆曲线加密算法的思想,以双勾函数(double hook function)的特性为基础,通过基于双勾函数数字签名法的加密算法(dhc)来确保电力培训仿真的考核安全性。
7.为达到上述目的,本发明采用的技术方案如下:
8.本发明提供一种电力培训仿真考核数据的安全传输方法,包括:
9.采用从密码中心获得的学员公钥对学员电力培训仿真考核的考试答案,采用基于双勾函数的数据加密算法进行加密,并利用学员私钥进行数字签名;
10.采用学员公钥对接收到的数字签名进行验证;
11.采用学员私钥对验证通过的加密消息进行解密,得到学员考试答案。
12.进一步的,所述密码中心存储有公钥和私钥对,学员选择自己的公约和私钥并告
之密码中心;
13.所述学员的公钥和私钥基于双勾函数生成,
14.公钥表示为:(β,x0,kg);
15.私钥表示为:k;
16.其中,β为双勾函数曲线渐近线与x轴的夹角,x0为双勾函数曲线转折点的x轴值, g为双勾函数曲线的基点,kg为双勾函数曲线上的一点,
17.kg需满足:从双勾函数曲线的基点g开始做k次操作,得到的与双勾函数曲线的交点;
18.k次操作是指,
19.在双勾函数曲线的基点g处做双勾函数曲线渐近线的法线,为第一次操作,得到与双勾函数曲线的交点;
20.在交点处做x轴的平行线,为第二次操作,得到与双勾函数曲线的第二个交点;
21.在第二个交点处做双勾函数曲线渐近线的法线,为第三次操作,得到与双勾函数曲线的第三个交点;
22.在第三个交点处做x轴的平行线,为第四次操作,得到与双勾函数曲线的第四个交点;
23.以此类推。
24.进一步的,所述双勾函数需满足:
25.双勾函数曲线渐近线与x轴的夹角β取值在30至60范围内,β用弧度表示;
26.双勾函数曲线的基点的x轴值需大于x0。
27.进一步的,采用基于双勾函数的数据加密算法对考试答案进行加密,包括:
28.每次从考试答案中取设定字节的整数i,从双勾函数曲线的点kg处做i次运算,得到的 4字节浮点数值作为密文;
29.i次运算是指,
30.从双勾函数曲线的点kg处开始,i为奇数时在该点处做双勾函数曲线渐近线的法线,取交点的y值;
31.i为偶数时在交点处做x轴的平行线,取交点的x值的负数;
32.以此类推。
33.进一步的,所述设定字节为4字节,2字节或1字节。
34.进一步的,对验证通过的加密消息进行解密,包括:
35.从双勾函数曲线的基点g处循环做运算,直至运算得到的值与密文所对应的浮点数差满足设定的精度为止;
36.将循环次数n减去私钥k所得的整数所对应的二进制就是对应的明文;
37.所述循环做运算指,
38.从双勾函数曲线的基点g处开始,奇数次运算时在该点处做双勾函数曲线渐近线的法线,取交点的y值;
39.偶数次运算时在交点处做x轴的平行线,取交点的x值的负数;
40.以此循环运算;
41.所述设定的精度为,浮点数差小于0.00001。
42.进一步的,利用学员私钥进行数字签名,包括:
43.选择随机数r,计算点rg;
44.根据随机数r,加密后的考试答案m的哈希值h,私钥k,计算s=(h kx)/r;
45.将加密后的考试答案m和签名{rg,s}发给接收方;
46.其中,x表示双勾函数曲线的基点g的x轴值。
47.进一步的,对接收到的数字签名进行验证,包括:
48.根据加密后的考试答案m采用与发送方相同的哈希算法计算哈希值h;
49.采用学员公钥计算:hg/s xk/s,其中,k=kg;
50.将计算结果与rg比较,如相等即验签成功。
51.本发明另一方面还提供一种电力培训仿真考核数据的安全传输装置,包括:
52.加密模块,用于采用从密码中心获得的学员公钥对学员电力培训仿真考核的考试答案,采用基于双勾函数的数据加密算法进行加密,并利用学员私钥进行数字签名;
53.验签模块,用于采用学员公钥对接收到的数字签名进行验证;
54.以及,
55.解密模块,用于采用学员私钥对验证通过的加密消息进行解密,得到学员考试答案。
56.进一步的,所述学员公钥和私钥基于双勾函数生成,
57.公钥表示为:(β,x0,kg);
58.私钥表示为:k;
59.其中,β为双勾函数曲线渐近线与x轴的夹角,x0为双勾函数曲线转折点的x轴值, g为双勾函数曲线的基点,kg为双勾函数曲线上的一点,
60.kg需满足:从双勾函数曲线的基点g开始做k次操作,得到的与双勾函数曲线的交点;
61.k次操作是指,
62.在双勾函数曲线的基点g处做双勾函数曲线渐近线的法线,为第一次操作,得到与双勾函数曲线的交点;
63.在交点处做x轴的平行线,为第二次操作,得到与双勾函数曲线的第二个交点;
64.在第二个交点处做双勾函数曲线渐近线的法线,为第三次操作,得到与双勾函数曲线的第三个交点;
65.在第三个交点处做x轴的平行线,为第四次操作,得到与双勾函数曲线的第四个交点;
66.以此类推。
67.本发明具有以下有益效果:
68.(1)安全性更高:本发明采用基于双勾函数对电力培训仿真中的考试答案进行加密,由于双勾函数在曲线形态上分为不连续两条曲线,且这两条曲线是对称性,这使dhc算法相较于ecc只有一条连续的曲线多了一层数据加密手段。
69.(2)运算量小,处理速度快:双勾函数(y=ax b/x,ab>0)的参数只有a和b两个 (ecc的椭圆曲线至少大与2个参数),本发明中采用加密参数三元组(β,x0,xg),比 ecc算法的加密参数至少减了2个,故在一定的相同的计算资源条件下,dhc加密和签名验证的速度
比ecc快得多。
70.(3)存储空间占用小:由于双勾函数的参数少,在具有相同的安全强度前提下,dhc 相较于ecc的密钥长度,这就意味着它所占的存贮空间要小得多。这对于加密算法在资源受限环境上(如智能卡等)的应用具有特别重要的意义。
附图说明
71.图1为双勾函数曲线;
72.图2为基于双勾函数的一次加密示意图;
73.图3为本发明的电力培训仿真考核数据的安全传输方法流程图。
具体实施方式
74.下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
75.非对称密码算法对大量信息的加密及网络环境下的加密性能优于对称密码算法,在非对称密码算法中,ecc算法首先需要定义一组共同接受的椭圆曲线加密用参数,简单的,这组参数可表示为(curve,g,n)。其中,curve表示椭圆曲线点域和几何方程;g是所有点倍积运算的基点;n是该椭圆曲线的可倍积阶数(multiplicative order),作为一个很大的质数, n的几何意义在于,ng=0,即点倍积ng的结果不存在,而对于小于n的任何一个正整数 m=[1,n

1],点倍积mg都可以得到一个合理的处于该椭圆曲线上的点。
[0076]
本发明在进行网上电力培训仿真时,提出一种基于双勾函数数字签名法的加密算法 (dhc),该算法基于ecc的曲线加密思想。
[0077]
本发明采用的双勾函数形如:
[0078][0079]
其在xy平面内所对应的曲线如图1所示,
[0080]
双勾函数的图像是分别以y轴和y=ax为渐近线的两支曲线,且图像上任意一点到两条渐近线的距离之积恰为渐近线夹角(0

180
°
)的正弦值与|b|的乘积。
[0081]
若a>0,b>0,在第一象限内,双勾函数的转折点为
[0082]
双勾函数的最值:当定义域为(0, ∞)时,(a>0,b>0),在处为最小值,最小值为
[0083]
当定义域为(

∞,0)时,(a>0,b>0),在处为最小值,最小值为
[0084]
双勾函数是奇函数;令那么:增区间:{x|x≤

k}和{x|x≥k};减区间:{x|

k≤x<0} 和{x|0<x≤k}
[0085]
变化趋势:在y轴左边先增后减,在y轴右边先减后增。双勾函数的两条渐近线分别为 y轴和y=ax。
[0086]
本发明的双勾函数加密原理如下:
[0087]
双勾函数分为两条对称曲线,需要加密的原文分布在x轴上,密文是加密操作后对应的y值。将加密原文定义在以(0, ∞)上,其中分布在的原文对应x轴上的曲线;如图2所示。
[0088]
图2中垂直于渐近线的法线为:y=

x/a m,
[0089]
以由双勾函数曲线上的点(x0,y0)为一个开始的(原文,密文)对,从点(x0,y0)做渐近线的法线(此为第一次操作),交双勾函数曲线上的点(x1,y1),再由点(x1,y1)的做x轴的平行线(此为第二次操作),交于勾函数曲线上的点(x2,y2),
[0090]
由下列方程:
[0091][0092]
求得m=y0 x0/a,从而求得点(x1,y1)值如下:
[0093][0094][0095]
再由点(x1,y1)做平行线,交于双勾函数曲线上的点(x2,y2),由下列方程:
[0096][0097]
求得:
[0098][0099][0100]
再从点(x2,y2)开始按上述方法做渐近线的法线(此为第三次操作),并与交点处做x 轴的平行线(此为第四次操作),交于双勾曲线上。依此可进行第五次、第六次,直至第n 次。此时n为偶数时的交点位于靠近渐近线的曲线上;n为奇数时的交点位于靠近y轴的曲线上。
[0101]
可以看出第n次交于双勾曲线上的点由三个参数决定:重复次数n,双勾函数参量a
和 b(这两个参量也可以换成渐近线与x轴的夹角β,用弧度表示;和最低点(x0,y0)的x0值) 以及基点g(xg,yg),即三元组(β,x0,xg)。
[0102]
参量a和b,与夹角β,最低点之间的关系如下:
[0103]
渐进线的方程为:y=ax,
[0104]
则,a=y/x,而sinβ=y/x,
[0105]
故,a=arcsinβ;
[0106]
给出转折点根据求出的a,可求得b。
[0107]
最低点也就是转折点。
[0108]
这样由法线和平行线操作次数构成的集是一个阿贝尔群(p, )。
[0109]
封闭性:s和t是整数操作次数,属于p,那么s t也是操作次数,也属于p。
[0110]
结合性:(s t) c=s (t c),为双勾曲线上同一点。
[0111]
单位元:0即为单位元(在基点g没操作),因为对于所有操作次数s,s 0=0 s= s,为双勾曲线上同一点。
[0112]
逆元:s的逆元为

s(由操作s次后的双勾曲线上的点,反向操作,即当s为奇数时,做渐近线的法线;s为偶数时,作平行线,交于双勾函数曲线上的另一点),因为s (

s)=0, 即单位元(回到基点g)。
[0113]
所以由法线和平行线操作次数构成的集p是阿贝尔群(p, )。
[0114]
双勾函数曲线上求解的问题描述为:已知(1)双勾函数曲线e;(2)双勾函数曲线e 上一点g(基点);(3)双勾函数曲线e上的一点xg(x为由g作法线和平行线的总次数)。据此求解x,这个问题的难度保证了基于双勾函数曲线加码的安全性。
[0115]
基于双勾函数数字签名法的加密算法(dhc)具体如下:
[0116]
基于双勾函数的数据加密算法属于非对称密钥加密系统体系,又称公钥密钥加密体系。它需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。
[0117]
针对上面确定的双勾函数加密三元组(β,x0,xg),都采用上面基于素数的公共密钥机制来生成。这三个数中都是带小数的实数,为确保法线能尽可能不平行于y轴,β取值因在30至60之内为宜。同时,为了使第一次操作就是做法线,xg应取最低点x0的右边值,即xg大于x0。
[0118]
在双勾函数曲线加密中,给定双勾函数曲线e,基点g和点kg(该点为从g点开始,做了k次上述操作后与双勾函数曲线e的交点),称(β,x0,kg)为公钥,(β,x0,g) 值为私钥,更简单地k就是真正的私钥。
[0119]
计算公钥和私钥利用了上述“运算”中两种操作:奇数为做渐近线的法线,记录交点的y 值;偶数为做平行于x的平行线,记录交点的x值的负数,即记录双勾函数曲线下半部对称的点的x值。
[0120]
采用dhc算法对数据进行加密和解密,首先要确定分组的大小。由于dhc算法计算出的取值(奇数为做渐近线的法线,取交点的y值;偶数为做平行于x的平行线,取交点的x值的负数,即记录双勾函数曲线下半部对称的点的x值)是用4字节表示的浮点数表示,而从缓
冲区明文m中取出的数是整数(次数),为保证加密后的报文长度不变,每次从m 中取4字节的整数i出来,从双勾函数曲线的点kg处做i次运算,从而得到4字节明文对应的密文。
[0121]
使用dhc算法解密时,从双勾函数曲线的点g处循环做运算(奇数为做渐近线的法线,取交点的y值;偶数为做平行于x的平行线,取交点的x值的负数,即记录双勾函数曲线下半部对称的点的x值),直至与4字节密文所对应的浮点数差小于0.00001为止(按照 ieee754的标准,单精度浮点数有效位最多小数点后7位),并将这次的循环次数n减去私钥k所得的整数,其4字节所对应的二进制就是明文中对应的4字节信息。
[0122]
上述加解密保证了明文和密文等长,但以4字节做为整数的过程计算量大。为此取明文中的2字节做为整数(操作次数),每次从m中取2字节的整数i出来,从双勾函数曲线的点kg处做i次运算,从而得到2字节明文对应的4字节密文,因而密文长度是明文的2 倍。为了更快的应用场合,也可以每次从m中取1字节的整数i出来,从双勾函数曲线的点kg处做i次运算,从而得到1字节明文对应的4字节密文,因而密文长度是明文的4倍。
[0123]
在进行网上电力培训仿真时,本发明实施例采用基于双勾函数数字签名法的加密算法 (dhc)来确保电力培训仿真的考核安全性。
[0124]
加密的功能重点在于“数据的安全性”,可以防止数据被监听攻击。加密和解密时,发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的私钥进行解密,其中公钥和私钥匙相对的,任何一个作为公钥,则另一个就为私钥。
[0125]
数字签名的功能可对签名者进行身份认证;能保证信息的完整性(在交易过程中,没有被篡改)。数字签名和验证过程为:发送报文时,发送方用一个hash算法从报文中产生固定长度的报文摘要,然后利用自己的私钥对这个摘要进行加密,这个过程就叫签名。这个加密后的摘要作为报文的数字签名和报文一起发送给接收方,接收方用发送方的公钥解密被加密的摘要(报文附加的数字签名)得到结果a,然后用与发送方一样的hash算法从接收到的原始报文中算出报文摘要b。最后,把a和b作比较。如果相同,那么接收方就能确认该数字签名是发送方的。
[0126]
综上,数字签名的功能确保了每个考生所提交答案的安全性(在提交答卷的过程中,没有被篡改)。
[0127]
作为本发明的一个实施例,采用基于双勾函数数字签名法的加密算法(dhc)进行电力培训仿真中安全考核的方法,参见图3,具体实施过程如下:
[0128]
步骤一、教员根据每个学员的邮箱信息在密码中心为其申请证书,如图3中所示,为学员bob的邮箱“bob@b.com”申请证书。
[0129]
步骤二、教员收到密码中心下发的学员bob的私钥。
[0130]
步骤三、学员bob从密码中心获得他的公钥。
[0131]
步骤四、学员bob对获得的公钥进行验证以确定是他的公钥。
[0132]
步骤五、学员bob采用获得的公钥加密其考试答案,并利用自已的私钥进行数字签名,一并发给教员。
[0133]
步骤六、教员采用学员的公钥对数字签名进行验证,验证通过后,采用学员bob的私钥解密报文,获得学员bob的考试答案。
[0134]
本发明实施例中,使用dhc算法进行数字签名时,设私钥、公钥分别为k、k,即k= kg,其中g为位于双勾函数(y=ax b/x,ab>0)曲线上的基点。
[0135]
根据如下原理:
[0136]
hg/s xk/s=hg/s x(kg)/s=(h xk)g/s=r(h xk)g/(h kx)=rg。
[0137]
私钥签名的过程为:
[0138]
1、选择随机数r,计算点rg。
[0139]
2、根据随机数r,消息m的哈希值h,私钥k,计算s=(h kx)/r。
[0140]
3、将消息m和签名{rg,s}发给接收方。
[0141]
此处的消息m为加密后的考试答案。
[0142]
上述计算中,x表示双勾函数曲线的基点g的x轴值,kx是指在双勾曲线上从基点做了k次上文所提的操作(垂直线和平行线)的次数。
[0143]
公钥验证签名的过程为:
[0144]
1、接收方收到消息m以及签名{rg,s}。
[0145]
2、根据消息m采用与发送方相同的哈希算法求解哈希值h。
[0146]
3、使用发送方公钥k计算:hg/s xk/s,
[0147]
将计算结果与rg比较,如相等即验签成功。
[0148]
上述计算中,xk指在双勾曲线上从点k做了x次上文所提的操作(垂直线和平行线) 的次数。
[0149]
本发明另一方面还提供一种电力培训仿真考核数据的安全传输装置,包括:
[0150]
加密模块,用于采用从密码中心获得的学员公钥对学员电力培训仿真考核的考试答案,采用基于双勾函数的数据加密算法进行加密,并利用学员私钥进行数字签名;
[0151]
验签模块,用于采用学员公钥对接收到的数字签名进行验证;
[0152]
以及,
[0153]
解密模块,用于采用学员私钥对验证通过的加密消息进行解密,得到学员考试答案。
[0154]
进一步的,所述学员公钥和私钥基于双勾函数生成,
[0155]
公钥表示为:(β,x0,kg);
[0156]
私钥表示为:k;
[0157]
其中,β为双勾函数曲线渐近线与x轴的夹角,x0为双勾函数曲线转折点的x轴值, g为双勾函数曲线的基点,kg为双勾函数曲线上的一点。
[0158]
进一步的,所述加密模块具体用于,
[0159]
每次从考试答案中取设定字节的整数i,从双勾函数曲线的点kg处做i次运算,得到的 4字节浮点数值作为密文;
[0160]
i次运算是指,
[0161]
从双勾函数曲线的点kg处开始,i为奇数时在该点处做双勾函数曲线渐近线的法线,取交点的y值;
[0162]
i为偶数时在交点处做x轴的平行线,取交点的x值的负数;
[0163]
以此类推。
[0164]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0165]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和 /或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和 /或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0166]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0167]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0168]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献