《一种基于ECC的同态加密盲签名方法.docx》由会员分享,可在线阅读,更多相关《一种基于ECC的同态加密盲签名方法.docx(9页珍藏版)》请在第壹文秘上搜索。
1、引数字签名技术是区块链中的一个关键技术,在共享信息的过程中,数字签名技术可以保证信息的安全性与隐私性.盲签名是一种特殊的数字签名,在盲签名的签名过程中,签名者也无法获取到待签名消息的具体内容,可有效的保护用户消息的隐私。在常用的大部分盲签名方案中,使用盲化因子来对共享数据进行盲化处理.盲化因子一旦泄露或者被攻破,盲签名的安全性就会大为降低,并且盲化因子在签名算法过程中需要消耗极大的算力.对此,本文采用全同态密码对共享数据加密以起到盲化作用,并尝试基于ECC构建一个新的盲签名方法,这样签名系统不会因为盲因子的泄露而导致签名的安全性降低,同时还可提高签名运算过程的效率,降低系统的开销。1基本原理1
2、.1 盲签名技术盲签名是数字签名的一种子签名方案,对比传统数字签名,盲签名多了一个对消息进行盲化和脱盲处理的过程,这样可以更好的保证消息的安全性,保证签名者也无法获取到签名消息.如图1所示,消息拥有者在将消息发送给签名者之前,会先使用随机选取的盲化因子对消息m进行盲化处理得到m,再将盲化处理得到之后的盲化值发送给签名者,此时签名者对中运行签名算法,签名完成后将完成后的消息签名再还返回给发送者,最后发送者对接收到的签名消息进行脱盲处理,得到关于原消息的签名.TR-IgggI-d.-wJwa-H1盲签名过程一个盲签名方案包含发送者(KGe4签名者(Sim)和验证者(罚)三个角色.并且还包含一组算法
3、,分别为:密钥生成算法、签名算法和验证算法.1.2 椭圆曲线密码系统椭圆曲线密码系统(E1.1.ipticCurveCryptosystem,ECC)相比较其它密码系统,具有密钥体枳小,需要的带宽要求低的特点,在密码学上使用椭圆曲线密码系统去建立效率高、安全性强的数字签名方案有较大优势。密码学意义上的椭圆曲线方程一般情况下是如式(1)形式的3次方程:y2=xi+ax+b假设g是加法G循环群的一个生成元且d(G)=pG为阶为。的乘法循环群。若满足V,/veG和113e0,p-1.),均有目,e(a.vb)=e(.v)abHe(g.g)1.,则e:GXGTGv即为双线性的。当椭圆曲线处于有限域Z。
4、之上时,称之为素曲线。有限域z。上的椭圆曲线形式如下:modp三(x?+ax+Z)modp(C)将这种形式简化可表示为EPQb1.1.3 全同态密码本文采用文献提出的GSW全同态加密方案.GSW方案是在第一代FHE方案的基础上演化而来,针对FHE方案效率较低的缺点,GSW方案密钥尺寸更短,计宜开销与加宅噪声更小,拥有较高的加密效率.同态加密算法由一组多项式时间算法组成=(.KenGenEnczDeczEvaD,其中幽Ge是密钥生成算法,EMC是加密算法,Oer是解密算法,是对密文所执行的同态计算算法.令A=1.(幻为一个固定的函数.存在一个深度为C的多项式函数g%o,可用其去构造一个全同态加密
5、方案.2盲筌名方法设计采用同态密码对明文进行加密,盲签名方法流程基于医疗区块链结构进行设计,如图2所示。图2盲签名方法流程首先医院节点A使用同态密码对明文m进行盲化处理,格盲化处理得到的m发送给医院签名部门C卷名部门将椭圆曲线密码系统进行初始化,生成加密所俞要的密钥,然后进行签名运算,生成签名OMQ);签名部门C再将签名结果返回医院节点A,节点A对(mcj进行脱盲运算,得到。儿6,最后医院节点B蛉证签名是否正确,如果正确就接受签名,否则拒绝签名.2.1 初始化和密钥生成在ECC初始化阶段,先在一条有限域写上选择一条安全的椭圆曲线Ep(ab),存在某个安全参数,选取一个高效率参数生成函数,输入参
6、数,运行参数生成算法输出所需要的公共参数P*e=(G,G,%g,e).选取双线性映射:”MG,对N以及Mw对于以及有4g*)=Kg时在空钥生成阶段中,系统记录下椭圆曲线与S)上的所有点,选择基点G=(XJJn为基点G的阶,并满足“G二,其中。为椭圆曲线上的无穷远点,E,(ab)、G和n是公共参数。公钥和私钥产生过程如下:ECC随机在椭圆曲线上选择一个点,计算出公钥和私钥;签名者随机选择一个小于n的整数d,再计算出公钥P上=4xG,其中公钥是椭圆曲线J(b)上的一个点;发送者再随机选择整数S,然后计算出私钥=心,由发送者单独保管私钥.2.2 盲化处理令k为一个安全参数,1.为GSW全同态加密算法
7、的层级深度.(1)初始化GSM注tup(K.A):选择左=MK/)的一个模q,参数,n=MK,1.)wN,M=w(,Z)=O(n1.og(g(g)+1.I1.V=(+1)e。(2)密钥生成GSWKeyGeMPara啕:均匀选取1-NsT1.,-=Gf,)%二产沸前,IT月。E4X随机公共矩阵BJZr和一个错误向量e-X二向量A=3r+ewz?,构造矩阵4=(18)27(。通过祗=(65)s=(8r+e5)1=3r+e-3r=e返回#ys和公钥pki-A(3)盲化C:1,1CGSWEne(ParamS,pk.n:令G为如上(”+1)A维的工具矩阵,并均匀选取一个随机矩阵RJ”,计算并生成密文m=
8、nG+ArR(nodq)Z/Av2.3 签名和脱盲处理在消息m进行盲化处理后,把得到的文件m发送给签名者,签名者对m进行签名,即计算(,m)=Sign(pk.G.gm),然后签名者再把(,:)发送给请求签名者.脱盲处理crGSJFQe*(pm0s.sk”.7).(1)输入私钥次=SeZ/,令/满足,q42wq2,令C为C的第1层。(2)在(-q2q2)范围内计算x-,5)(modq).此处要注意(C,s)=cfs并且有Cq=MG7s+R%=m(1.2,4,.y+R7e(modq).选择C的第1列对应于选择该向量的第I个坐标,即2十用,.(3)输出=Ih2,|加果x2:则返回1.验证者收到签名9
9、刈)之后,检直是否有式&6=式。/式段a2),如果等式成立则接受该签名,否则拒绝该签名.效率测试从计算量、盲化时间、方法执行总时间三个方面将本文提出的盲签名方法与常见的一些盲签名方法进行对比测试.3.1 计算量和盲化时间测试比较数据来自于文献,使用Java语言在Ec1.ipse开发环境中进行.将签名中的各种运算都用比较简单的模成运算m来表示,软件实现模乘运算、标量乘运算、双线性对运算等的运算次数的统计.其中运算效率如表1所示,盲签名的效率对比如表2所示.表1运算效率运算缁写运算效率Z;中的模乘运算m-群G中的标量乘运算MIM=29m双线性对运算PIP=87m群G?中的标量乘运算E1=29mZ;
10、中的求逆运篁IU=11.6m散列运算HHR29m2效率对比方案签名发布和蛉证运算总和ZHAHNG方案4M+3P+4E+3H+U5626H向新银方案9M+8P957m黄茹芬方案5M+4E+1P34&”何俊杰方案8M+3P493加GAo方案7E+3P899?”本方法3M+2E+2I+1P255.2m盲化时间测试结果如图3所示.在测试过程中统计了其它一些常见的盲签名方案签名时间,分别为:ZHANG方案盲化时间为0.026秒;向新银方案盲化时间为0034秒;黄茹芬方案盲化时间为0.023秒;何俊杰方案盲化时间为0025秒;GAO方案盲化时间为0.031秒.通过比较可以看出本方案在盲化效率上有一定的优势
11、.ERtff1.):a.018000W&化克血PX53441WW1135228W2!10O23546531.W3W72W343252MWPTKm!0023M6S31.312M3TCM!01207S024M%5S(A221SX16879g7113S228949486I0023546583614551002354tf836130617?ST2355336130613624S510023542M870664101207501684616548W2C1.上:UrAzhaniruryoMSckterS于155雷日0馆叁方1R)图3本自签名方法的签名效率3.2 执行总时间测试使用1.28G的RMVB文件进行签名测试比较本方法与RSA盲签名、ECC盲签名方法的签名时间,对这3个方法进行了30次测试.同等测试环境下,如图4所示,两种常用的盲签名方法的执行总时间在17-19秒附近,本方法的执行总时间在14秒左右,相对具有较高的效率.三图41.28GRMVB文件下效率对比结语本文通过同态加密算法对所签署文件进行加密处理,替代了传统盲化因子,并基于ECC构建了一个盲签名方法,经过测试,在签名及验证阶段的效率相对盲化因子签名方案有较明显的提升,将本方法应用到共享医疗信息系统中,可在保护用户隐私及信息安全性的基础上,简化系统复杂度,提高系统执行效率.