当前位置: 首页 > 专利查询>暨南大学专利>正文

一种基于区块链及代理重加密的数据传输方法及系统技术方案

技术编号:27751624 阅读:61 留言:0更新日期:2021-03-19 13:47
本发明专利技术公开了一种基于区块链及代理重加密的数据传输方法及系统,该系统包括数据拥有者终端、数据代理终端和数据请求者终端;数据请求者终端发起数据传输请求,数据拥有者终端生成代理密钥,然后将代理密钥发送至数据代理终端中,由代理终端将第一密文重新加密,生成可以由数据请求者的密钥进行解密的第二密文,然后传输至数据请求者终端,由数据请求者终端进行解密即可得到明文。通过本发明专利技术数据拥有者终端在接收数据传输请求时,就不需要将已上传的待传输数据重新下载,然后重新加密后,再上传,极大的减少了数据传输过程中的通信代价。

【技术实现步骤摘要】
一种基于区块链及代理重加密的数据传输方法及系统
本专利技术涉及数据传输
,尤其涉及一种基于区块链及代理重加密的数据传输方法及系统。
技术介绍
现有大多数数据管理系统是中心化模式,用户需要将数据明文地存储到管理系统中,当有用户请求授权时,由管理系统来完成的交易和分配。然而,在此方式下,当管理系统一旦遭受黑客攻击或者内部管理人员故意偷窃数据时,用户的原始数据则会被滥用。为解决上述问题,现有技术提出了一种基于区块链技术的去中心化管理系统让用户的交易授权过程通过智能合约来完成,保证了交易双方之间的公平性和安全性。在这一技术中用户为了保护自己的数据不受第三方控制,会将自己的数据进行加密存储在分布式数据库中。当有用户请求数据时,数据拥有者需要将密文下载下来之后,然后用自己的私钥进行解密得到明文,再利用数据请求者的公钥对明文进行重新加密,然后再将重新加密后的密文上传。在这一过程中,数据拥有者需要将数据重新下载,利用数据请求者的公钥对明文进行重新加密重新加密,再重新上传,这样会造成极大的通信代价。
技术实现思路
本专利技术实施例提供一种基于区块链及代理重加密的数据传输方法及系统,能减少数据传输的通信代价。一种基于区块链及代理重加密的数据传输方法,包括:数据拥有者终端根据数据拥有者的公钥以及预设的第一加密算法对待传输数据进行加密,生成第一密文,继而将所述第一密文传输至数据代理终端;数据请求者终端将数据请求者的公钥上传至区块链中,并向数据拥有者终端发送数据传输请求;数据拥有者终端接收所述数据传输请求,并从所述区块链中获取数据请求者的公钥,并根据所述数据请求者的公钥、所述数据拥有者的私钥和预设的密钥生成算法,生成代理密钥,将所述代理密钥传输至数据代理终端;数据代理终端根据所述代理密钥以及预设的第二加密算法将所述第一密文进行重新加密,生成与所述数据请求者的公钥对应的第二密文,并将所述第二密文传输至所述数据请求者终端;所述数据请求者终端在接收所述第二密文后,根据所述数据请求者的密钥对所述第二密文进行解密,获得待传输数据的数据明文。优选地,根据数据拥有者的公钥以及预设的第一加密算法对待传输数据进行加密,生成第一密文,具体为:随机选取参数e和v,继而通过以下公式对待传输数据进行加密:E=[e]G=(x3,y3);V=[v]G=(x4,y4);S=v+eHash(x3||x4||y3||y4);(v+e)pkAlice=(x5,y5);t=KDF(x5||y5,klen);C2=Hash(x5||M||y5);C=C1||C2;CapsuleAclie=(E,V,S);将(C,CapsuleAclie)作为所述第一密文;其中,pkAlice为数据拥有者的公钥,且pkAlice=skAliceG;skAlice为数据拥有者的私钥;EQ(Fq)为Fq上椭圆曲线EQ的所有有理点组成的集合;G为椭圆曲线EQ的基点;n为基点G的阶;Hash()为基于SM3的密码杂凑函数;M为所述待传输数据;KDF()为密钥派生函数;klen为KDF()要获得的密钥数据的比特长度;e属于[1,n-1];v属于[1,n-1]。优选地,根据所述数据请求者的公钥、所述数据拥有者的私钥和预设的密钥生成算法,生成代理密钥,具体为:通过以下公式生成所述代理密钥:YA=xAG;d=Hash(YA||pkBob||xApkBob);rk=skAliced-1;将rk作为所述代理密钥;其中,xA属于[1,n-1];pkBob为数据请求者的公钥,且pkBob=skBobG;skBob为数据请求者的私钥。优选地,根据所述代理密钥以及预设的第二加密算法将所述第一密文进行重新加密,生成与所述数据请求者的公钥对应的第二密文,具体为:判断SG是否等于Hash(x3||x4||y3||y4)E+V,若相等则通过以下公式生成对第一密文进行重新加密:E′=rkE;V′=rkV;S′=rkS;CapsuleBob=(E′,V′,S′);将(C,CapsuleBob)作为所述第二密文。优选地,根据所述数据请求者的密钥对所述第二密文进行解密,获得待传输数据的数据明文,具体为:判断SG是否等于Hash(x3||x4||y3||y4)E+V,若相等则通过以下公式对第二密文进行解密:d=Hash(YA||pkBob||skBobYA);d(E′+V′)=(x′5,y′5);t′=KDF(x′5||y′5,klen);C′2=Hash(x′4||M′||y′4);判断所述C2是否等于C′2,若是则将M′作为所述待传输数据的数据明文。优选地,基于区块链及代理重加密的数据传输方法还包括:所述数据拥有者终端在对所述待传输数据进行加密时,生成所述待传输数据的数据摘要,将所述数据摘要上传至所述区块链,以使数据请求者根据所述数据摘要,判断所述待传输数据是否为自身需要的数据。优选地,当数据请求者通过上述数据摘要在区块链中查询到想要的数据时,执行数据请求操作,数据请求者终端先向数据拥有者发起线下的共享交易请求;在拥有者同意的情况下,请求者将需要支付的金额作为押金通过数据请求者终端存储在智能合约中;数据拥有者通过数据拥有者终端获悉数据请求者完成押金支付后,通过数据拥有者终端,将自己的私钥和请求者的公钥利用预设的密钥生成算法来生成代理密钥。一种基于区块链及代理重加密的数据传输系统,包括:数据拥有者终端、数据代理终端以及数据请求者终端;数据拥有者终端,用于根据数据拥有者的公钥以及预设的第一加密算法对待传输数据进行加密,生成第一密文,继而将所述第一密文传输至数据代理终端;数据请求者终端,用于将数据请求者的公钥上传至区块链中,并向数据拥有者终端发送数据传输请求;数据拥有者终端,还用于接收所述数据传输请求,并从所述区块链中获取数据请求者的公钥,并根据所述数据请求者的公钥、所述数据拥有者的私钥和预设的密钥生成算法,生成代理密钥,将所述代理密钥传输至数据代理终端;数据代理终端,用于根据所述代理密钥以及预设的第二加密算法将所述第一密文进行重新加密,生成与所述数据请求者的公钥对应的第二密文,并将所述第二密文传输至所述数据请求者终端;数据请求者终端,还用于在接收所述第二密文后,根据所述数据请求者的密钥对所述第二密文进行解密,获得待传输数据的数据明文。通过实施本专利技术实施例,具有如下有益效果:本专利技术提供了一种基于区块链及代理重加密的数据传输方法及系统,在数据传输的过程中,用户通过数据请求者终端发起数据传输请求,数据拥有者终端无需重新下载已经上传的加密后的待传输数据(即上述第一密文),只需生成代理密钥,然后将代理密钥发送至数据代理终端中,由代理终端将第一密文重新加密,生成可以由数据请求者的密钥进行解密的第二密文,然后传输至数据请求者终端,由数据请求者终端进行解密即可得到明文,与现有技术相比,本专利技术通过引入数据代理服务终端就第一密文进行重新加密,这本文档来自技高网...

【技术保护点】
1.一种基于区块链及代理重加密的数据传输方法,其特征在于,包括:/n数据拥有者终端根据数据拥有者的公钥以及预设的第一加密算法对待传输数据进行加密,生成第一密文,继而将所述第一密文传输至数据代理终端;/n数据请求者终端将数据请求者的公钥上传至区块链中,并向数据拥有者终端发送数据传输请求;/n数据拥有者终端接收所述数据传输请求,并从所述区块链中获取数据请求者的公钥,并根据所述数据请求者的公钥、所述数据拥有者的私钥和预设的密钥生成算法,生成代理密钥,将所述代理密钥传输至数据代理终端;/n数据代理终端根据所述代理密钥以及预设的第二加密算法将所述第一密文进行重新加密,生成与所述数据请求者的公钥对应的第二密文,并将所述第二密文传输至所述数据请求者终端;/n数据请求者终端在接收所述第二密文后,根据所述数据请求者的密钥对所述第二密文进行解密,获得待传输数据的数据明文。/n

【技术特征摘要】
1.一种基于区块链及代理重加密的数据传输方法,其特征在于,包括:
数据拥有者终端根据数据拥有者的公钥以及预设的第一加密算法对待传输数据进行加密,生成第一密文,继而将所述第一密文传输至数据代理终端;
数据请求者终端将数据请求者的公钥上传至区块链中,并向数据拥有者终端发送数据传输请求;
数据拥有者终端接收所述数据传输请求,并从所述区块链中获取数据请求者的公钥,并根据所述数据请求者的公钥、所述数据拥有者的私钥和预设的密钥生成算法,生成代理密钥,将所述代理密钥传输至数据代理终端;
数据代理终端根据所述代理密钥以及预设的第二加密算法将所述第一密文进行重新加密,生成与所述数据请求者的公钥对应的第二密文,并将所述第二密文传输至所述数据请求者终端;
数据请求者终端在接收所述第二密文后,根据所述数据请求者的密钥对所述第二密文进行解密,获得待传输数据的数据明文。


2.如权利要求1所述的基于区块链及代理重加密的数据传输方法,其特征在于,根据数据拥有者的公钥以及预设的第一加密算法对待传输数据进行加密,生成第一密文,具体为:
随机选取参数e和v,继而通过以下公式对待传输数据进行加密:
E=[e]G=(x3,y3);V=[v]G=(x4,y4);S=v+eHash(x3||x4||y3||y4);
(v+e)pkAlice=(x5,y5);t=KDF(x5||y5,klen);
C2=Hash(x5||M||y5);C=C1||C2;CapsuleAclie=(E,V,S);
将(C,CapsuleAclie)作为所述第一密文;
其中,pkAlice为数据拥有者的公钥,且pkAlice=skAliceG;skAlice为数据拥有者的私钥;EQ(Fq)为Fq上椭圆曲线EQ的所有有理点组成的集合;G为椭圆曲线EQ的基点;n为基点G的阶;Hash()为基于SM3的密码杂凑函数;M为所述待传输数据;KDF()为密钥派生函数;klen为KDF()要获得的密钥数据的比特长度;e属于[1,n-1];v属于[1,n-1]。


3.如权利要求2所述的基于区块链及代理重加密的数据传输方法,其特征在于,根据所述数据请求者的公钥、所述数据拥有者的私钥和预设的密钥生成算法,生成代理密钥,具体为:
通过以下公式生成所述代理密钥:
YA=xAG;d=Hash(YA||pkBob||xApkBob);rk=skAliced-1;
将rk作为所述代理密钥;
其中,xA属于[1,n-1];pkBob为数据请求者的公钥,且pkBob=skBobG;skBob为数据请求者的私钥。


4.如权利要求3所述的基于区块链及代理重加密的数据传输方法,其特征在于,根据所述代理密钥以及预设的第二加密算法将所述第一密文进行重新加密,生成与所述数据请求者的公钥对应的第...

【专利技术属性】
技术研发人员:翁健李勇标李明李宇娴翁嘉思吴永东
申请(专利权)人:暨南大学
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1