资源描述:
《基于椭圆曲线离散对数的无证书混合加密》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于椭圆曲线离散对数的无证书混合加密基于椭圆曲线离散对数困难问题,结合KEM-DEM混合加密结构,提出一个新的无证书混合加密方案。采用椭圆曲线签名算法保证用户自主生成公钥的不可伪造性,利用用户公钥生成的会话密钥以对称加密算法加密明文,保证明文的机密性,对明文空间的大小没有严格限制。该方案主要涉及椭圆曲线上的点运算,与原有无证书加密方案中采用双线性对计算相比具有更高的执行效率。一、基于椭圆曲线离散对数的无证书混合加密相关知识1.椭圆曲线离散对数问题E(Fq)椭圆曲线离散对数问题(ECDLP)定义如下:假设P是E(Fq)上的”点,Q是E(Fq)±为P
2、的倍数点,即存在整数x>0,使Q=xP,在已知P和Q的前提下,计算出z在计算上是不可行的/即:Prolix€行I(P,Q)wE(化)人(Q=xP)]=£ecmj>其中,EECDLP为可忽略量。2.无证公钥加密的形式化定义一个无证书加密方案一般由7个算法组成:⑴参数生成算法(Setup):输入安全参数k,返回系统参数params和主密钥masterkey;⑵部分私钥提取算法(Partial-Private-Key-Extract):输入系统参数params和主密钥masterkey以及一^身份标识ID,输出部分私钥DID;(3)设定秘密值算法(Se
3、t・Sec「et・Value):输入参数params,输出一个秘密值SID;⑷设定私钥算法(Set-Private-Key):输出参数params,输岀一个用户(全)私钥SKID;⑸设定公钥算}J(Set-Public-Key):输入参数params、部分私钥DID、秘密值SID、私钥SKIDz输出一个公钥PKID;(6)加密算法(Encrypt):输入参数params.公钥PKID以及待加密消息m,输出一个密文c;⑺解密算法(Decrypt):输入参数params.用户身份ID、(全)私钥SKID以及待解密的密文c,输出一个密文m或一个错误指示
4、符。二、基于椭圆曲线离散对数的无证书混合加密方案本文基于椭圆曲线离散对数问题和无证书加密一般模型,提出一个新的无证书混合加密方案。方案的具体执行过程如下:(1)密钥生成中心系统参数生成:选取一个基域Fq,q为一个大素数。选取一个定义在’上的椭圆曲线E(Fq)和E(Fq)±的一个生成元P,其阶为一个可整除#E(q)的大素数no选择一个安全对称加密算法(ENCx,DECK)0选择2个密码安全Hash函数H:{0,I)*:->(0zl)K#其中,{0,I}K是对称加密使用的会话密钥空间。公开系统参数params={gzE(Fq)tntP,nzHi,{0
5、,1)n,(ENCKQECK)(2)密钥生成中心生成主密钥:中随机选取一个正整数sWRzn,设主私钥为Msk=5;计算主公钥Mpk=sP;密钥生成中心保留主私钥Msk,公开主公钥Mpko⑶密钥生成中心生成部分私钥:用户将身份ID提交给密钥生成中心后,密钥生成中心随机选取一个数fGRZ,计算eid二tP=(xT,modn);计算e二H(ID)+xrmod,n;计算w二(selD+t)modne设部分私钥为D/D=(t,w),通过安全信道将其传输给用户。(4)用户私钥生成:随机选取一个正整数skerZn,设用户私钥为SKID=sk,用户自己保留。(
6、5)用户公钥生成:计算PK二skP二(XPK,yPK);随机选取一4•正整数rzn,计算Q=rP=(xo,yQ);计算ePK二H(XPICyPK)+XQmodn;计算u二(r-w-ePK)modn。设用户公钥为PKID=(PK.T.ePKz8,用户将PKID公开给系统其他用户。(6)加密,分为3个执行过程:1)验证用户公钥的真实性,计算(xo',yQ‘)二叩十(H(ID)+xtmodn).ePK.Mpk十ePKT,计算ePK'二H(XPX“yPK)+xt‘。如果ePK'=ePA,验证成功;否则验证失败放弃加密。明显地,验证的正确性基于:uP+(H
7、(/D)+xTmod”)・ePK・Mpk+ePKT=(m+ePKw)P=rP2)生成会话密钥及其封装:随机选取一个正整数kERzn,计算K=HI(kPK+kP);定义会话密钥的封装为q=kP;3)加密消息:对消息M,计算C二ErViCK(M),输出密文(Cl,C)。(7)解密,分为2个执行过程:1)恢复会话密钥:K/L=Hl(skq+cl);2)解密消息:若上文的计算结果为上,则输出错误指示;否则,计算M二DECK(C)恢复明文。