基于区块链的可信数据共享方法

文档序号:29810333发布日期:2022-04-27 03:56阅读:481来源:国知局
基于区块链的可信数据共享方法

1.本发明属于区块链领域,涉及一种基于区块链的可信数据共享方法。


背景技术:

2.随着大数据时代的来临,数据已经成为了一种重要的资源。大型企业、科研院所、政府机关等机构之间需要相互的数据进行生产、研究,迫切需要数据共享。中心化的数据共享方式难以保障数据的可靠性,缺乏可信的数据交换机制,存在着数据确权难的问题。而分布式的数据共享方式也存在着数据共享效率低的问题,严重阻碍了数据的共享。
3.共享数据存储的一种典型方式是通过统一的数据库或者大数据平台集中收集、存储,而且数据多以明文形式存储,数据没有隐私保护。一旦数据库被攻击者获取权限,所有数据都会直接暴露。为解决数据安全问题,有些方法先加密数据再存储,但这类方法要么全部数据使用相同的密钥加密,要么每次都使用不同的密钥加密,前者的问题在于一次密钥暴露,所有数据都不安全,后者的问题在于巨大的密钥存储开销。
4.针对以上问题,利用联盟区块链,分布式存储技术和密码学技术可以提供有效的解决办法。联盟链是区块链的一种,它是一种许可制的区块链,用户必须在加入网络之前进行验证。这些节点彼此并不完全信任,但它们共同遵守智能合约的约束,并协同工作。利用区块链不可篡改的特点,保障链上数据的可靠性和真实性。在对数据进行加密之前,根据数据的敏感程度高低分别用“一次一密”和“群密钥”的形式加密,提高了数据处理的灵活性和效率,“群密钥”用中国剩余定理分发和恢复,避免暴露密钥明文,减少了密钥存储开销。文件数据经过加密之后存储在云端分布式文件系统中,可以保障数据的机密性和完备性。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种基于区块链的可信数据共享方法。
6.为达到上述目的,本发明提供如下技术方案:
7.一种基于区块链的可信数据共享方法,包括以下步骤:
8.s1:系统初始化,加密模块生成密码系统参数;
9.s2:用户授权,用户通过区块链数据共享平台注册,通过系统资质审核、授权成为合法用户,系统为用户返回安全参数;
10.s3:数据上传存储,用户对现有的数据进行共享,如果是结构化的文本数据,则直接将数据和数据的属性信息存储到区块链上;如果是非结构化的文件数据,则将文件加密存储到云端,同时将文件的索引信息和属性信息存储到区块链上;对于非结构化文件数据,根据数据的机密程度或者敏感程度分为两类;对于机密性和敏感程度不高的数据,采用群密钥加密数据,用户不直接保存群密钥,群密钥通过用户自己保存的安全参数恢复;对机密性和敏感程度高的数据,每次系统生成新的密钥加密,同时将密钥返回给用户保存;
11.s4:数据查询获取,其他用户通过区块链数据共享平台查看共享的数据;对于群密钥加密的数据,数据请求者输入自己的安全参数,系统恢复密钥解密数据返回给数据请求
者;对于单次密钥加密的数据,数据请求者向数据所有者发送请求获取解密密钥,数据所有者通过请求之后,将请求数据的密钥发送给数据请求者,数据请求者获得密钥后输入密钥,系统下载文件解密给数据请求者。
12.进一步,步骤s4中,数据请求者在向数据所有者发送请求之前,系统先用rsa密钥生成算法生成一对公私钥对,私钥由数据请求者自己保留,数据请求者将公钥、所请求数据的名称、哈希值由群密钥加密之后发送给数据所有者,数据所有者用群密钥解密请求消息,通过请求后用数据请求者的公钥加密请求的数据的密钥返回给数据请求者,数据请求者用自己的私钥解密得到解密数据的密钥。
13.进一步,用户在发起数据共享请求时调用添加数据合约,所述添加数据合约为:
14.用户通过客户端写入将要共享的数据属性信息,客户端将属性信息传给智能合约;智能合约解析收到的属性信息,用*record结构体将属性信息封装成数据共享记录信息;智能合约调用账本写数据接口函数,将绑定的结构体数据作为参数传入,接口函数执行后续操作;接口函数返回执行状态和结果,智能合约将添加结果返回给客户端。
15.进一步,用户在查看或下载共享数据时调用查询数据合约,所述查询数据合约为:
16.用户通过客户端输入请求数据关键词,客户端将查询信息传给智能合约;智能合约解析收到的查询信息,与*record(包括textrecord和filerecord)结构体中的字段匹配,得到结构体标准字段;智能合约调用账本查询接口函数,将结构体标准字段作为参数传入,接口函数执行后续查询操作;接口函数返回执行状态和结果,智能合约将查询结果返回给客户端。
17.进一步,用户在删除数据时调用删除数据合约,所述删除数据合约为:
18.用户通过客户端输入要删除数据的关键词,客户端将删除信息传给智能合约;智能合约解析收到的删除信息,与*record结构体中的字段匹配,得到结构体标准字段;智能合约调用账本删除接口函数,将结构体标准字段作为参数传入,接口函数执行后续删除操作;接口函数返回执行状态和结果,智能合约将删除结果返回给客户端。
19.进一步,机密性和敏感程度不高的数据,为完全共享型数据,采用群密钥进行加解密,使用中国剩余定理进行密钥管理,具体过程如下:
20.系统选择两个随机数x和kg,kg作为群密钥,用于对上传的文件进行加密,x作为恢复群密钥的参数;
21.系统随机生成k个大素数m1,m2,

mk,且k个数两两互素,用户在通过注册认证之后,系统将mi分发给用户作为安全参数;
22.根据中国剩余定理理论计算m和mi:
23.m=m1m2…
mkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0024][0025]
则同余式组
[0026]
x≡b1(mod m1),x≡b2(mod m2),

,x≡bk(mod mk)
ꢀꢀꢀꢀꢀꢀ
(3)
[0027]
有模m的唯一的正整数解
[0028]
x≡b
1 m1y1+b
2 m2y2+

+b
k mkyk(mod m)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0029]
其中yi是同余式miyi≡1(mod mi)的正整数解,即yi是mi模mi的逆元(i=1,2,


k);
[0030]
根据求和式(4)中的参数,对群密钥kg进行处理。
[0031]
λi=mi·
yiꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0032][0033]
γ=ψ
·
kg
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0034][0035]
λi是mi与逆元yi的乘积,ψ是各λi的累计和,γ是群密钥kg与ψ的乘积,δ是还原群密钥的参数;系统将δ返回给用户,则用户得到了一组恢复密钥的参数(δ,mi);
[0036]
通过δ先还原γ,再利用γ和mi还原kg:
[0037][0038]
kg=γmod miꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0039]
式(10)中,在γ的求和式中,除mi之外都能整除mi,在x的求和式中,除了第i项之外所有项对mi取模同余0,即求和式中只剩下mi·
yi,又因为yi是mi模mi的逆元,所以得到群密钥kg;
[0040]
利用上述公式,得到数据加密存储与解密获取过程如下:
[0041]
a1:数据所有者共享数据时选择群密钥加密文件,系统加密文件后上传到分布式文件系统,同时将textrecord相关信息写入区块链;
[0042]
a2:数据请求者检索到数据,解密密钥为群密钥,则输入两个参数δ和mi;
[0043]
a3:系统首先通过δ得到γ;然后通过γ和mi计算群密钥kg;
[0044]
a4:如果群密钥恢复成功,系统解密密文数据,得到加密前的数据文件并返回给用户。
[0045]
进一步,机密性和敏感程度高的数据,为非完全共享型数据,在加密时使用“一次一密”,对这类数据每次生成不同的密钥并保存下来,具体过程如下:
[0046]
b1:用户上传非完全共享型数据时,系统通过密钥生成算法产生一个随机密钥,用于对数据进行加密,同时需要保存这个密钥。系统将加密后的数据上传到云端,同时将filerecord信息写入区块链。
[0047]
b2:当一个数据请求者想要获取该数据时,向数据所有者单独请求解密密钥,数据请求者向系统请求一对公私钥对;
[0048]
b3:系统用rsa密钥生成算法生成一对公私钥对,返回给数据请求者;
[0049]
b4:数据请求者将获得的公钥和相应的数据请求发送给数据所有者;
[0050]
b5:数据所有者接收到数据请求者的请求,验证请求的合理性,如果验证通过,则用数据请求者发来的公钥将加密请求数据的密钥加密返回给数据请求者;
[0051]
b6:数据请求者接收到数据所有者的信息之后,利用自己的私钥解密信息,得到解密数据所需要的密钥。
[0052]
本发明的有益效果在于:
[0053]
1)使用联盟区块链,利用了区块链不可篡改的特点,结合身份管理机制和智能合约,保障参与数据共享用户的合法性以及数据的真实性和可靠性,很好地解决了目前数据共享中的问题,提供了有效的可信数据交换机制。
[0054]
2)对共享的数据进行分类分级处理,结构化文本数据直接存在区块链,敏感程度不高的文件数据使用群密钥加密存储在云端,敏感程度较高的文件数据每次使用新的密钥加密存储在云端。这种方式提高了数据处理的灵活性和效率,保障了云端数据的安全性。
[0055]
3)利用中国剩余定理实现群密钥的分发与恢复,避免直接暴露密钥明文,减小了密钥存储开销,提高了密钥安全性。
[0056]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0057]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0058]
图1为本发明搭载所述基于区块链的可信数据共享方法的系统架构图;
[0059]
图2为添加数据合约执行流程图;
[0060]
图3为查询数据合约执行流程图;
[0061]
图4为删除数据合约执行流程图;
[0062]
图5为数据加密存储及请求过程图;
[0063]
图6为数据加密存储及请求过程图。
具体实施方式
[0064]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0065]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0066]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0067]
请参阅图1,本发明基于一种数据共享系统,系统由数据层、应用层和用户层组成。数据层由区块链网络和云存储系统组成,区块链用于存储数据记录信息,云存储系统存储
大结构数据,是数据存储和记录的基础。数据层负责接收用户层请求和返回数据层响应,由数据处理模块和加解密模块组成,数据处理模块处理用户的数据共享与查询的请求以及文件的上传和下载,加解密模块处理密钥和加密解密文件数据。用户层的用户通过客户端发起数据共享和数据查询的请求,客户端再返回请求处理结果给用户。
[0068]
本发明所述基于区块链的可信数据共享方法的整体流程为:
[0069]
1)系统初始化。加密模块生成密码系统参数。
[0070]
2)用户授权。用户通过区块链数据共享平台注册,通过系统资质审核、授权成为合法用户,系统为用户返回安全参数。
[0071]
3)数据上传存储。用户对现有的数据进行共享,如果是结构化的文本数据,则直接将数据和数据的属性信息存储到区块链上;如果是非结构化的文件数据,则将文件加密存储到云端,同时将文件的索引信息和属性信息存储到区块链上。
[0072]
特别地,针对结构化文本类型数据和非结构化文件类型数据两种类型的数据,根据数据的属性分别设计了以下两种数据结构作为区块链上链的交易结构。
[0073][0074]
特别地,对于非结构化文件数据,根据数据的机密程度或者敏感程度分为两类。一,对于机密性和敏感程度不高的数据(下文中称为完全共享型数据),采用群密钥加密数据,用户不直接保存群密钥,群密钥通过用户自己保存的安全参数恢复。二,对机密性和敏感程度高的数据(下文中称为非完全共享型数据),每次系统生成新的密钥加密,同时将密钥返回给用户保存。
[0075]
4)数据查询获取。其他用户可以通过区块链数据共享平台查看共享的数据。对于群密钥加密的数据,数据请求者输入自己的安全参数,系统恢复密钥解密数据返回给数据请求者。对于单次密钥加密的数据,数据请求者需要向数据所有者发送请求获取解密密钥,数据所有者通过请求之后,将请求数据的密钥发送给数据请求者,数据请求者获得密钥后输入密钥,系统下载文件解密给数据请求者。
[0076]
特别地,数据请求者在向数据所有者发送请求之前,需要系统先用rsa密钥生成算法生成一对公私钥对,私钥由数据请求者自己保留,数据请求者将公钥、所请求数据的名称、哈希值由群密钥加密之后发送给数据所有者,数据所有者用群密钥解密请求消息,通过请求后用数据请求者的公钥加密请求的数据的密钥返回给数据请求者,数据请求者用自己的私钥解密得到解密数据的密钥。
[0077]
本发明还对智能合约进行设计,包括:
[0078]
1)添加数据合约
[0079]
如图2所示,添加数据合约是用户在发起数据共享请求时调用。用户通过客户端写入将要共享的数据信息,随后客户端将数据相关信息转给区块链网络打包成交易,区块链网络对交易处理之后写入区块。
[0080]
2)查询数据合约
[0081]
如图3所示,查询数据合约是用户查看或下载共享数据时调用。用户在客户端通过提交关键字段信息(如id、名字、所有者等),客户端将关键信息传给区块链网络,查询数据合约根据关键词在账本中查找相应的数据信息,成功查询到数据时,区块链网络将共享数据或共享数据的索引信息返回给客户端。
[0082]
3)删除数据合约
[0083]
如图4所示,删除数据合约是用户需要删除数据时调用。对于已经共享的数据,如果数据的所有者觉得该项数据已经没有价值,或者不再适合共享,亦或者管理员认为该项数据不符合规范,可以通过关键词找到数据记录,然后向区块链网络发起删除数据的请求,通过智能合约去执行。
[0084]
如图5所示,对于完全共享型数据,由于机密性和敏感程度要求不高,可以向所有的合法用户开放,所以采用群密钥进行加解密,使用中国剩余定理进行密钥管理,具体过程如下:
[0085]
加密模块:
[0086]
1)群密钥参数选择。系统选择两个随机数x和kg。kg作为群密钥,用于对上传的文件进行加密,x作为恢复群密钥的参数。
[0087]
2)用户参数选择与分发。系统随机生成k个大素数m1,m2,

mk,且k个数两两互素,用户在通过注册认证之后,系统将mi分发给用户作为安全参数。
[0088]
3)群密钥参数计算。根据中国剩余定理理论计算m和mi。
[0089]
m=m1m2…
mkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1.1)
[0090][0091]
则同余式组
[0092]
x≡b1(mod m1),x≡b2(mod m2),

,x≡bk(mod mk)
ꢀꢀꢀꢀꢀꢀ
(1.3)
[0093]
有模m的唯一的正整数解
[0094]
x≡b
1 m1y1+b
2 m2y2+

+b
k mkyk(mod m)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1.4)
[0095]
其中yi是同余式miyi≡1(mod mi)的正整数解,即yi是mi模mi的逆元(i=1,2,

,k)。
[0096]
性质1当i≠j时,有(mi,mj)=1;结合mj=m/mj,可知mi|mj,所以在m1,m2,

mk中除mi之外都可以整除mi,进而可以得到在正整数解x的求和式1.4中,除了第i项之外所有项对mi取模同余0。
[0097]
根据求和式1.4中的参数,对群密钥kg进行处理。
[0098]
λi=mi·
yiꢀꢀꢀ
(1.5)
[0099][0100]
γ=ψ
·
kg
ꢀꢀꢀ
(1.7)
[0101][0102]
λi是mi与逆元yi的乘积,ψ是各λi的累计和,γ是群密钥kg与ψ的乘积,δ是还原群密钥的参数。系统将δ返回给用户,则用户得到了一组恢复密钥的参数(δ,mi)。
[0103]
4)群密钥恢复。通过δ先还原γ,再利用γ和mi还原kg。
[0104][0105]
kg=γmod miꢀꢀꢀ
(1.10)
[0106]
其中式1.10利用了性质1,在γ的求和式中,除mi之外都可以整除mi,在x的求和式中,除了第i项之外所有项对mi取模同余0,即求和式中只剩下mi·
yi,又因为yi是mi模mi的逆元,所以得到群密钥kg。
[0107]
数据加密存储与解密获取过程如下:
[0108]
1)数据所有者共享数据时选择群密钥加密文件,系统加密文件后上传到分布式文件系统,同时将textrecord相关信息写入区块链。
[0109]
2)数据请求者检索到数据,解密密钥为群密钥,则输入两个参数δ和mi。
[0110]
3)系统首先通过δ得到γ,见式1.9;然后通过γ和mi计算群密钥kg,见式1.10。
[0111]
4)如果群密钥恢复成功,系统解密密文数据,得到加密前的数据文件并返回给用户。
[0112]
如图6所示,对于非完全共享型数据,在加密的时候使用“一次一密”,对这类数据每次生成不同的密钥并保存下来。用户在请求访问这类数据的时候不能使用群密钥进行解密,需要单独向数据所有者请求解密密钥。具体过程如下:
[0113]
1)用户上传非完全共享型数据时,系统通过密钥生成算法产生一个随机密钥,用于对数据进行加密,同时需要保存这个密钥。系统将加密后的数据上传到云端,同时将filerecord信息写入区块链。
[0114]
2)当一个数据请求者想要获取该数据时,需要向数据所有者单独请求解密密钥,数据请求方向系统请求一对公私钥对。
[0115]
3)系统用rsa密钥生成算法生成一对公私钥对,返回给用户。
[0116]
4)数据请求者将获得的公钥和相应的数据请求发送给数据所有者。
[0117]
5)数据所有者接收到数据请求者的请求,验证请求的合理性,如果验证通过,则用
数据请求者发来的公钥将加密请求数据的密钥加密返回给数据请求者。
[0118]
6)数据请求者接收到数据所有者的信息之后,利用自己的私钥解密信息,得到解密数据所需要的密钥。
[0119]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1