一种基于区块链的属性可搜索加密系统与方法与流程
未命名
07-22
阅读:177
评论:0
1.本发明涉及信息安全技术领域,尤其涉及一种基于区块链的属性可搜索加密系统与方法。
背景技术:
2.可搜索加密提供了一种对加密数据实现安全搜索的有效机制。然而,大多数现有的可搜索方案都给与数据访问者无限的搜索能力,并不考虑数据访问者的搜索权限。在实际应用中,为数据访问者授予搜索权限是实施数据访问控制的一项非常重要的措施。
3.基于属性的可搜索加密(cp-abse)方案,允许数据所有者对数据访问者进行细粒度的搜索授权及访问控制。数据所有者根据指定的访问策略对索引关键字进行加密,当且仅当数据访问者的属性满足访问策略时,才能对加密的索引关键字执行搜索。近年来,cp-abse因具有一对多加密数据共享、细粒度访问控制、密文可搜索等优势而受到广泛关注。
4.然而,基于cp-abse的ehrs共享系统仍然面临一些挑战:
①
传统cp-asbe方案的实现高度依赖授权中心,容易出现单点故障、密钥泄漏等问题。
②
传统的cp-abse搜索功能由云平台执行,导致结果不完全可信,甚至返回错误的搜索结果。
③
云服务器负责ehrs文件的集中式存储,易出现单点故障、隐私泄露等问题。
④
ehrs使用者往往只具备有限的设备资源,难以应付复杂的计算工作。
5.区块链具备去中心化、不可篡改、可追溯等优势,能够通过记录所有访问请求和操作保证操作的透明度和数据的完整性。因此,结合区块链和cp-abse,是实现高效、安全地存储和共享ehrs的可行路径。
技术实现要素:
6.为解决上述技术问题,本发明提出了一种基于区块链的属性可搜索加密系统与方法,可有效的解决传统cp-abse方案高度依赖单一可信授权中心出现的单点故障、密钥泄露等问题。
7.为实现上述目的,本发明提供了一种基于区块链的属性可搜索加密系统,包括:
8.ehrs拥有者模块:用于负责文件构造、加密及上传;
9.ehrs访问者模块:用于生成与关键字匹配的搜索令牌,下载密文并对所述密文进行解密;
10.区块链模块:用于生成密钥、验证交易信息以及执行智能合约;
11.ipfs模块:用于分布式存储ehrs密文文件;
12.所述ehrs拥有者模块与所述区块链模块连接,所述ehrs访问者模块分别与所述区块链模块和所述ipfs模块双向连接,所述ipfs模块与所述ehrs拥有者模块双向连接。
13.优选地,所述ehrs拥有者模块包括:
14.关键字集合单元:用于构造与ehrs文件m={m0,m1,
…
,m
l-1
}相对应的关键字集合w={w0,w1,
…
,w
l-1
};
15.访问结构生成单元:用于制定针对文件集合m的访问控制策略,并根据所述访问控制策略生成相应的add访问结构;
16.密文生成单元:用于使用对称密钥集合k={k0,k1,
…
,k
l-1
}对所述文件集合m加密,生成密文集合并基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,分别生成密文{ci|0≤i≤l-1}和其中ci(0≤i≤l-1)分别与l个对称密钥对应,为iw中的公共参数,(σi,σ'i)(0≤i≤l-1)分别与l个关键字对应;基于所述add访问结构的cp-abse算法,按照有效路径r
t
对秘密值s进行加密,分别生成密文组件和最终将所述密文存储到ipfs上,获得与密文ct相对应的hash
storage
值;
17.上传存储交易单元:用于将所述hash
storage
值与关键字索引iw打包,生成存储交易tx
storage
,并上传至所述区块链模块。
18.优选地,所述ehrs访问者模块包括:
19.密钥获取单元:用于上传属性集合s至所述区块链模块,并获得由所述区块链模块构造的解密密钥sk;
20.上传搜索交易单元:用于根据文件使用需求确定搜索关键字w,利用所述解密密钥sk和所述搜索关键字w生成搜索令牌tw,并根据所述搜索令牌tw,生成相应的搜索交易tx
search
,上传至所述区块链模块,在被认定具备数据访问权限时获得密文的hash
search
值;
21.解密单元:根据所述hash
search
值从ipfs上获得对应密文,并逐步完成针对对称密钥和密文数据的解密。
22.优选地,所述区块链模块包括:
23.系统初始化单元:用于初始化系统参数,生成系统公钥、用户解密密钥;
24.交易验证与执行单元:用于存储交易tx
storage
及搜索交易tx
search
的验证与执行;
25.关键字搜索单元:用于使用ehrs拥有者的搜索令牌与区块链上关键字索引进行匹配,若匹配成功,获取关键字对应密文的存储地址hash
storage
,并发送给所述ehrs访问者模块。
26.优选地,所述ipfs模块包括:
27.数据上传单元:用于接收ehrs拥有者上传的ehrs密文文件,并生成对应hash
storage
值;
28.数据下载单元:用于根据ehrs访问者提供的hash
search
值返回对应密文形式的ehrs文件。
29.为了实现上述目的,本发明还提供了一种基于区块链的属性可搜索加密方法,包括:
30.基于区块链模块初始化系统参数,生成系统主密钥mk和系统公钥pk,并为ehrs拥有者模块和ehrs访问者模块生成用户公钥pk
user
及签名密钥sk
user
;
31.通过ehrs拥有者模块构造与ehrs文件m={m0,m1,
…
,m
l-1
}相对应的关键字集合w={w0,w1,
…
,w
l-1
};制定针对文件集合m的访问控制策略,并根据所述访问控制策略生成相应
的add访问结构;使用对称密钥集合k对所述文件集合m进行加密,生成密文集合基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,分别生成密文{ci|0≤i≤l-1}和其中ci(0≤i≤l-1)分别与l个对称密钥对应,为iw中的公共参数,(σi,σ'i)(0≤i≤l-1)分别与l个关键字对应;
32.基于所述add访问结构的cp-abse算法,按照有效路径r
t
对秘密值s进行加密,分别生成密文组件和最终将密文存储到ipfs上,获得与密文ct相对应的hash
storage
值;将所述hash
storage
值与所述关键字索引iw打包,生成存储交易tx
storage
,并上传至所述区块链模块;所述区块链模块完成对所述存储交易tx
storage
进行验证,验证成功后,进行存储;
33.所述ehrs访问者模块上传属性集合s至所述区块链模块,并获得由所述区块链模块构造的解密密钥sk;所述ehrs访问者模块根据文件使用需求确定搜索关键字w,利用所述解密密钥sk和所述搜索关键字w生成搜索令牌tw;根据所述搜索令牌tw,生成相应的搜索交易tx
search
,并上传至所述区块链模块;
34.所述区块链模块对所述搜索交易tx
search
进行验证,并在验证成功后触发智能合约搜索与之匹配的关键字索引,若所述关键字索引和所述搜索令牌tw匹配成功,则返回相应的密文存储地址hash
search
给所述ehrs访问者模块;
35.所述ehrs访问者模块根据所述密文存储地址hash
search
获取存储在ipfs模块上的ehrs密文;
36.所述ipfs模块将查找到的密文返回给所述ehrs访问者模块;
37.所述ehrs访问者模块收到相应的密文后,解密得到对称密钥,并进一步解密获取明文形式的ehrs文件。
38.优选地,所述基于区块链模块初始化系统参数,并为ehrs拥有者模块和ehrs访问者模块生成用户公钥pk
user
及签名密钥sk
user
,包括:
39.区块链主节点确定双线性映射参数(g,g
t
,e,p,g),并广播给其他节点;
40.区块链节点bn
θ
根据所管理的属性集合随机选择循环群z
p
中的元素t'
θ,1
,t'
θ,2
,...,t'
θ,j
,t”θ,1
,t”θ,2
,...,t”θ,j
,并随机选择(a
θ
,b
θ
,c
θ
,α
θ
)∈z
p
,生成节点主密钥mk
θ
=《a
θ
,b
θ
,c
θ
,α
θ
》及节点公钥并广播给其它区块链节点;
41.区块链主节点选择哈希函数h0:{0,1}
*
→zp*
,使用pedersen(k,n)秘密共享协议将所述节点主密钥mk
θ
(0≤θ≤n-1)重构为系统主密钥mk=《a,b,c,α》,并计算系统公钥pk=《g,ga,gb,gc,π
α
》,其中π=e(g,g);
42.区块链主节点为ehrs拥有者模块生成用户公钥pk
do
及用户签名密钥sk
do
,为ehrs访问者模块生成用户公钥pk
du
及用户签名密钥sk
du
。
43.优选地,基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,包括:
44.ehrs拥有者使用对称密钥集合k对所述文件集合m加密,生成密文集合
45.基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,分别生成密文{ci|0≤i≤l-1}和其中ci(0≤i≤l-1)分别与l个对称密钥对应,为iw中的公共参数,(σi,σi')分别与l个关键字对应;基于所述add访问结构的cp-abse算法,按照有效路径r
t
(其集合记为r)对秘密值s进行加密,分别生成密文组件和
46.最终生成密文
47.优选地,获得由所述区块链模块构造的解密密钥sk,包括:
48.区块链节点bn
θ
(0≤θ≤n-1)设定tsk
θ
=0,将管理的系统属性att
θ
={att
θ,1
,att
θ,2
,
…
,att
θ,j
}与用户属性集s进行匹配:
49.对于att
θ
中的任意属性att
θ,m
(1≤m≤j),若att
θ,m
∈s,则tsk
θ
=tsk
θ
+t'
θ,m
,否则tsk
θ
=tsk
θ
+t
″
θ,m
;
50.属性匹配完成后,区块链节点bn
θ
(0≤θ≤n-1)将tsk
θ
发送给区块链主节点;
51.所述区块链主节点构造并随机选择元素r∈z
p
,完成以下计算:
[0052][0053]
d=g
r/tsk
[0054][0055]
最终,生成ehrs访问者的解密密钥
[0056]
优选地,所述获取明文形式的ehrs文件,包括:
[0057]
ehrs访问者通过所述解密密钥sk对密文ct进行解密;若ehrs访问者的属性s满足add访问结构,根据所满足的有效路径r
t
及其终端节点取值yi,按照以下公式完成计算:
[0058][0059][0060][0061]
其中,表示使用ki完成对称解密;
[0062]
最终,ehrs访问者解密获得所述明文形式的ehrs文件。
[0063]
与现有技术相比,本发明具有如下优点和技术效果:
[0064]
(1)本发明利用区块链去中心化的特点,将其作为可信授权中心为系统生成公钥pk和主密钥mk,为用户(ehrs拥有者或ehrs访问者)生成用户公钥和用户签名密钥,对ehrs访问者生成解密密钥,解决了传统cp-abse方案高度依赖单一可信授权中心出现的单点故障、密钥泄露等问题。
[0065]
(2)本发明提出基于区块链的关键字可搜索加密机制,其中智能合约可以根据用户需求自动触发,进行关键字搜索并返回密文的存储地址。智能合约的自动触发及执行、在区块链上记录的搜索结果不可篡改等特征,增强了搜索过程及结果的安全性、可信性、正确性。
[0066]
(3)本发明中设计的基于add访问结构的cp-abse访问控制方案,具有快速解密文件的功能,是一种安全、新颖、高效的访问控制方案。
附图说明
[0067]
构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
[0068]
图1为本发明实施例的fabric交易流程图;
[0069]
图2为本发明实施例的基于区块链的属性可搜索加密系统的模块连接图;
[0070]
图3为本发明实施例的基于区块链的属性可搜索加密系统的系统模型图;
[0071]
图4为本发明实施例的基于区块链的属性可搜索加密方法的工作流程图。
具体实施方式
[0072]
需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
[0073]
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0074]
与本发明相关的理论基础知识
[0075]
(1)fabric联盟链交易流程(如图1),其中:
[0076]
hyperledger fabric典型的交易流程如下:
[0077]
①
客户端利用受支持的sdk(go,java)提供的应用程序接口(application programming interface,api)构建交易提交提案,交易提案主要包含以下要素:
[0078]
channelid:通道信息。
[0079]
chaincodeid:需要调用的链码信息。
[0080]
timestamp:时间戳。
[0081]
sign:客户端签名。
[0082]
txpayload:提交的交易本身包含的内容,包含两项。
[0083]
operation:需要调用的智能合约方法以及对应的参数。
[0084]
metadata:调用相关属性
[0085]
②
背书节点对接收到的交易提案请求进行验证。
[0086]
交易提案格式是否正确。
[0087]
交易在之前并未提交过。
[0088]
提交交易提案的客户端签名是否有效。
[0089]
提交交易提案的请求者是否在该通道中有相应的执行权限。
[0090]
③
满足以上要求后,背书节点把“交易提案”作为输入参数,调用chaincode中的函数,链码如果执行成功返回信息值,该结果包括返回值。此时,区块链账本中的数据并不进行真正意义上的更改。对“交易结果”进行背书并响应给客户端。
[0091]
④
应用程序收集到足够的消息和背书签名之后,构建合法的交易请求并将请求广播给排序服务节点。
[0092]
⑤
排序节点从网络中的所有的通道接收交易,按照时间顺序对它们进行排序,并创建交易区块。
[0093]
⑥
排序节点将交易区块广播给同一通道内所有组织的主节点。
[0094]
⑦
主节点对接收到的区块进行验证(交易消息结构是否正确、是否重复、是否有足够的背书、读写集版本),通过验证后将结果写入本地的分类账本中。
[0095]
⑧
同步区块:主节点同步广播给组织内的其它节点(保证在同一通道内)。广播给其它节点默认为临近的3个节点。此广播数量可以通过配置进行修改。跨组织广播则由组织内的锚节点负责。
[0096]
⑨
分类账本更新:锚节点收到区块后,会对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态,验证背书策略是否满足,验证完成后将区块追加到本地的区块链,更新账本,并修改世界状态。
[0097]
(2)cp-abse算法
[0098]
cp-abse算法结合了cp-abe算法和se算法。ehrs数据拥有者使用特定的访问策略加密多等级文件,并生成多等级文件对应的关键字索引。ehrs数据访问方生成相应的搜索令牌,搜索相应的密文,并使用特定的私钥解密密文。
[0099]
setup(1k):此算法由区块链执行,初始化整个系统,生成系统公钥pk和系统主密钥mk。
[0100]
encrypt(pk
θ
(0≤θ≤n-1),pk,m,w,k,add):此算法由ehrs数据拥有者执行,使用对称密钥集k加密明文集m得到加密对称密钥集k得到{ci|0≤i≤l-1},按照有效路径r
t
(其集合记为r)对秘密值s进行加密,分别生成密文组件和生成密文加密关键字集合w得到相应的关键字索引集最后将(ct,iw)发送给ipfs进行分布式存储。
[0101]
keygen(pk,mk,s):由区块链执行,ehrs数据访问者输入自己的属性集s,输出数据访问者的密钥sk。
[0102]
trap(pk,sk,s,w):此算法由ehrs数据访问者执行,ehrs提供相应的搜索关键字w,生成相应的搜索令牌tw,最后ehrs数据访问者将搜索令牌tw和属性集s发送给智能合约进行关键字匹配。
[0103]
search(tw,tx
search
,s):此算法由区块链执行,输入搜索令牌tw和属性集s,触发智能合约进行关键字搜索,返回对应的密文在ipfs中存储的hash地址。
[0104]
decrypt(pk,sk,s,ct):此算法由ehrs数据访问者执行,使用自己的私钥sk,对相应的密文ci进行解密,先得到相应的对称密钥k,在使用密钥对密文进行解密生成ehrs明文文件m。
[0105]
(2)pedersen(k,n)秘密共享协议
[0106]
pedersen(k,n)秘密共享协议不需要授权中心,假设有n方参与者p={p1,p2,
…
,pn},在本协议中不需要中心处理者,每个参与方p
θ
和其它参与方共享自己的秘密值s
θ
一组参与者共享的秘密s是对所有s
θ
(例如,所有s
θ
的代数和)的算术运算。协议由以下方法组成。
[0107]
主秘密生成:每个参与者p
θ
选择一个秘密值s
θ
,主秘密
[0108]
子秘密共享值生成:其中包含n个shamir秘密共享算法。每个参与方p
θ
可以选择一个度为k-1的多项式f
θ
(x)等。s
θ
=f
θ
(0)。参与方p
θ
计算和发送从属共享值给其它参与方pi。
[0109]
主秘密共享值生成:收到n个子秘密值p
θ
计算主秘密
[0110]
主秘密重构:假设至少有k方一起重构主秘密值其中l
θ
根据拉格朗日插值公式为:
[0111][0112]
图2为基于区块链的属性可搜索加密系统的模块连接图,包含四个不同的模块:区块链模块、ipfs模块、ehrs拥有者模块、ehrs访问者模块。图3为基于区块链的属性可搜索加密系统的系统模型图。图4为基于区块链的属性可搜索加密方法的工作流程图。
[0113]
分别生成密文{ci|0≤i≤l-1}和其中ci(0≤i≤l-1)分别与l个对称密钥对应,为iw中的公共参数,(σi,σ'i)分别与l个关键字对应;基于所述add访问结构的cp-abse算法,按照有效路径r
t
(其集合记为r)对秘密值s进行加密。
[0114]
(1)ehrs拥有者模块。ehrs拥有者负责文件构造及加密上传工作。
[0115]
具体包含:
①
将生成后的ehrs划分成l个不同类别的文件m={m0,m1,
…
,m
l-1
},并分别构造对应的关键字集合w={w0,w1,
…
,w
l-1
};
②
构造加密m的对称密钥集k={k0,k1,
…
,k
l-1
},并完成对m的加密;
③
制定针对m的多个访问控制策略,并根据该策略生成相应的add访问结构;
④
利用add访问结构,基于本发明新提出的cp-abse算法完成对对称密钥集k和关键字集合w的加密,并生成对应的密文{ci|0≤i≤l-1}和
⑤
按照有效路径r
t
(其集合记为r)对秘密值s进行加密,分别生成密文组件和{c
rt
|r
t
∈r};
⑥
将密文>存储到ipfs上,获得与各密文相对的hash
storage
值;
⑦
将hash
storage
值与iw打包,并通过区块链存储交易tx
storage
完成上链操作。
[0116]
(2)ehrs访问者模块。ehrs访问者负责数据检索及解密工作。
[0117]
具体包含:
①
上传属性集合s至区块链,获得由区块链构造的解密密钥sk;
②
根据文件使用需求确定搜索关键字w,进一步利用sk和w生成搜索令牌tw;
③
根据tw生成相应的搜索交易tx
search
,并上传至区块链;
④
当搜索交易被节点验证、搜索智能合约被触发且认定ehrs访问者具备数据使用权限,ehrs访问者将获得与搜索关键字w相对的密文的hash
search
值;
⑤
根据hash
search
值从ipfs上获得对应的密文,并逐步完成针对对称密钥和ehrs数据的解密。
[0118]
(3)区块链模块。主要负责密钥生成、智能合约执行、交易存储等工作。
[0119]
具体包含:
①
初始化系统参数,生成系统公钥、用户解密密钥;
②
区块链存储交易tx
storage
的验证与执行;
③
区块链搜索交易tx
search
的验证与执行。
[0120]
(4)ipfs模块。ipfs负责分布式存储ehrs文件。
[0121]
具体包含:
①
接收ehrs拥有者上传的文件,并构造hash
storage
值;
②
根据ehrs访问者提供的hash
search
值返回对应密文形式的ehrs文件。
[0122]
从图2可见,ehrs数据加密及共享的工作流程可详细划分为以下步骤:
[0123]
①
区块链初始化系统参数,生成系统主密钥mk和系统公钥pk,并为ehrs拥有者和ehrs访问者生成用户公钥及签名密钥。
[0124]
②
ehrs拥有者指定l类ehrs数据的访问控制策略,生成相应的add结构;随机在z
p
中选取与之对应的对称密钥集k={k0,k1,
…
,k
l-1
},并加密l个ehrs文件m={m0,m1,
…
,m
l-1
}获得多文件密文集合利用add访问结构,基于本发明新提出的cp-abse算法完成对密钥集k={k0,k1,
…
,k
l-1
}和关键字集w={w0,w1,
…
,w
l-1
}的加密,生成密文{ci|0≤i≤l-1}和关键字索引
[0125]
③
ehrs拥有者将密文分布式存储于ipfs上,获得由ipfs生成的hash
storage
。
[0126]
④
ehrs拥有者将hash
storage
和关键字索引iw打包成存储交易tx
storage
,并写入区块链。
[0127]
⑤
ehrs访问者将属性集s发送给区块链,请求解密密钥。
[0128]
⑥
区块链节点借助于秘密共享协议pedersen(k,n),为ehrs访问者生成解密密钥sk。
[0129]
⑦
ehrs访问者使用解密密钥sk生成搜索令牌tw。
[0130]
⑧
ehrs访问者构造搜索交易tx
search
,并将其上传至区块链。
[0131]
⑨
搜索交易tx
search
验证成功后将触发智能合约搜索与之匹配的关键字索引,如果索引和陷门匹配成功,则返回相应的密文存储地址hash
search
给ehrs访问者。
[0132]
⑩
ehrs访问者依据hash
search
获取存储在ipfs上的ehrs密文。
[0133]
ipfs将查找到的密文返回给ehrs访问者。
[0134]
ehrs访问者收到相应的密文后,解密得到对称密钥,并进一步解密得到明文形式的ehrs文件。
[0135]
具体算法:
[0136]
setup(1k):该算法由区块链执行主要包含两个步骤:1)区块链节点bn
θ
(0≤θ≤n-1)构造与所管理属性集att
θ
(0≤θ≤n-1)相关的主密钥mk
θ
(0≤θ≤n-1),2)主节点构造系统公钥pk和主密钥mk。具体过程如下:
[0137]
①
区块链主节点确定双线性映射参数(g,g
t
,e,p,g),并广播给其他节点。
[0138]
②
区块链节点bn
θ
(0≤θ≤n-1)根据所管理的属性集合attθ={attθ
,1
,attθ
,2
,
…
,attθ
,j
}(对于θ≠θ’,)随机选择循环群z
p
中的元素t'
θ,1
,t'
θ,2
,...,t'
θ,j
,t”θ,1
,t”θ,2
,...,t”θ,j
;并随机选择(a
θ
,b
θ
,c
θ
,α
θ
)∈z
p
,生成主密钥mk
θ
=《a
θ
,b
θ
,c
θ
,α
θ
》、公钥并将其广播给其它节点。
[0139]
③
区块链主节点选择两个哈希函数h0:{0,1}
*
→zp*
,使用pedersen(k,n)协议将mk
θ
(0≤θ≤n-1)重构为主密钥mk=《a,b,c,α》,并计算相应的公钥pk=《g,ga,gb,gc,π
α
》,其中π=e(g,g)。
[0140]
④
区块链主节点为ehrs拥有者生成用户公钥pk
do
及签名密钥sk
do
,为ehrs访问者生成用户公钥pk
du
及签名密钥sk
du
,并连同系统公钥pk发送给ehrs拥有者和ehrs访问者。
[0141]
keygen(pk,mk,s):该算法由区块链节点运行,为用户生成解密密钥。
[0142]
①
bn
θ
(0≤θ≤n-1)根据所管理的属性集合att
θ
={att
θ,1
,att
θ,2
,
…
,att
θ,j
}。区块链节点bn
θ
(0≤θ≤n-1)定义tsk
θ
=0,将管理的系统属性att
θ
={att
θ,1
,att
θ,2
,
…
,att
θ,j
}与用户属性集s进行匹配:对于att
θ
中的任意属性att
θ,m
(1≤m≤j),若att
θ,m
∈s,则tsk
θ
=tsk
θ
+t'
θ,m
,否则tsk
θ
=tsk
θ
+t'
θ
'
,m
;在将s中的属性全部匹配完成后,bn
θ
(0≤θ≤n-1)将tsk
θ
发送给区块链主节点。
[0143]
②
区块链主节点构造并随机选择元素r∈z
p
,完成以下计算:
[0144][0145]
d=g
r/tsk (2)
[0146][0147]
最终,生成ehrs访问者的解密密钥
[0148]
encrypt(pk
θ
(0≤θ≤n-1),pk,w,m,k,add):此算法主要由ehrs拥有者执行,以完成ehrs加密。假设ehrs拥有者拟共享的文件集合为m={m0,m1,
…
,m
l-1
},该加密算法具体分为以下几个步骤:
[0149]
①
ehrs拥有者确定与m={m0,m1,
…
,m
l-1
}对应的对称密钥集k={k0,k1,
…
,k
l-1
},完成基于对称密钥的文件加密。
[0150][0151]
②
ehrs拥有者从循环群z
p
中随机选择v0,v1,
…
,v
l-1
,根据各个文件的访问控制策略生成伪布尔函数并构造add访问结构,得到add中包含t条有效路径r={r0,r1,
…
,r
t-1
},对于路径r
t
,其中所包含的全部属性记为i
t
,此外,l个非0终端节点的取值为y={yi|0≤i≤l-1}。ehrs拥有者随机选择s∈z
p
,计算
[0152][0153][0154][0155]
其中,t
var
来自于pk
θ
(0≤θ≤n-1),当var∈att
θ
(0≤θ≤n-1)且取值为正值时,即t
var
=t’θ,var
;当var∈att
θ
(0≤θ≤n-1)且取值为负值时,即t
var
=t”θ,var
。
[0156]
③
ehrs拥有者选取l个文件对应的关键字集w={w0,w1,
…
,w
l-1
},随机选择μ∈z
p
,计算
[0157][0158][0159][0160]
⑤
ehrs拥有者将密文存储于ipfs中,获得ipfs返回的hash
storage
。进一步生成存储交易并将加密索引集发送给区块链,如表1所示,其中h为哈希函数,sk
do
为签名私钥,sign为签名函数。区块链节点执行交易验证算法,如表2所示,其中pk
do
为验证公钥,verify为验证函数。
[0161]
表1
[0162][0163]
表2
[0164][0165]
trap(pk,sk,w):此算法主要由ehrs访问者执行,当ehrs访问者想要访问包含关键字w的特定数据时,生成包含关键字w的可搜索交易tx
search
和搜索令牌tw,并将tx
search
、tw、属性集s提交给区块链,如表3所示。
[0166]
表3
[0167][0168]
search(tw,tx
search
,s)接收到用户提交的可搜索交易tx
search
之后,区块链触发搜索合约,如表4所示。若搜索成功,则返回hash
search
给ehrs拥有者,使其能够从ipfs中获取与hash
search
相映射的密文。
[0169]
表4
[0170][0171]
表5
[0172][0173]
其中,表5为表4中调用的算法7,表6为本发明实施例的各个符号的具体含义。
[0174]
decrypt(pk,sk,s,ct):ehrs访问者用其密钥sk对密文ct进行解密。如果ehrs访问者的属性s满足add访问结构,根据所满足的有效路径r
t
及其终端节点取值yi,按照以下公式(11)-(13)完成计算,便可获得明文形式的ehrs。
[0175][0176][0177][0178]
表6
[0179][0180]
以上,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
技术特征:
1.一种基于区块链的属性可搜索加密系统,其特征在于,包括:ehrs拥有者模块:用于负责文件构造、加密及上传;ehrs访问者模块:用于生成与关键字匹配的搜索令牌,下载密文并对所述密文进行解密;区块链模块:用于生成密钥、验证交易信息以及执行智能合约;ipfs模块:用于分布式存储ehrs密文文件;所述ehrs拥有者模块与所述区块链模块连接,所述ehrs访问者模块分别与所述区块链模块和所述ipfs模块双向连接,所述ipfs模块与所述ehrs拥有者模块双向连接。2.根据权利要求1所述的基于区块链的属性可搜索加密系统,其特征在于,所述ehrs拥有者模块包括:关键字集合单元:用于构造与ehrs文件m={m0,m1,
…
,m
l-1
}相对应的关键字集合w={w0,w1,
…
,w
l-1
};访问结构生成单元:用于制定针对文件集合m的访问控制策略,并根据所述访问控制策略生成相应的add访问结构;密文生成单元:用于使用对称密钥集合k={k0,k1,
…
,k
l-1
}对所述文件集合m加密,生成密文集合并基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,分别生成密文{c
i
|0≤i≤l-1}和其中c
i
(0≤i≤l-1)分别与l个对称密钥对应,为i
w
中的公共参数,(σ
i
,σ
′
i
)(0≤i≤l-1)分别与l个关键字对应;基于所述add访问结构的cp-abse算法,按照有效路径r
t
对秘密值s进行加密,分别生成密文组件和最终将所述密文存储到ipfs上,获得与密文ct相对应的hash
storage
值;上传存储交易单元:用于将所述hash
storage
值与关键字索引i
w
打包,生成存储交易tx
storage
,并上传至所述区块链模块。3.根据权利要求1所述的基于区块链的属性可搜索加密系统,其特征在于,所述ehrs访问者模块包括:密钥获取单元:用于上传属性集合s至所述区块链模块,并获得由所述区块链模块构造的解密密钥sk;上传搜索交易单元:用于根据文件使用需求确定搜索关键字w,利用所述解密密钥sk和所述搜索关键字w生成搜索令牌t
w
,并根据所述搜索令牌t
w
,生成相应的搜索交易tx
search
,上传至所述区块链模块,在被认定具备数据访问权限时获得密文的hash
search
值;解密单元:根据所述hash
search
值从ipfs上获得对应密文,并逐步完成针对对称密钥和密文数据的解密。4.根据权利要求1所述的基于区块链的属性可搜索加密系统,其特征在于,所述区块链模块包括:系统初始化单元:用于初始化系统参数,生成系统公钥、用户解密密钥;交易验证与执行单元:用于存储交易tx
storage
及搜索交易tx
search
的验证与执行;
关键字搜索单元:用于使用ehrs拥有者的搜索令牌与区块链上关键字索引进行匹配,若匹配成功,获取关键字对应密文的存储地址hash
storage
,并发送给所述ehrs访问者模块。5.根据权利要求1所述的基于区块链的属性可搜索加密系统,其特征在于,所述ipfs模块包括:数据上传单元:用于接收ehrs拥有者上传的ehrs密文文件,并生成对应hash
storage
值;数据下载单元:用于根据ehrs访问者提供的hash
search
值返回对应密文形式的ehrs文件。6.一种基于区块链的属性可搜索加密方法,其特征在于,包括:基于区块链模块初始化系统参数,生成系统主密钥mk和系统公钥pk,并为ehrs拥有者模块和ehrs访问者模块生成用户公钥pk
user
及签名密钥sk
user
;通过ehrs拥有者模块构造与ehrs文件m={m0,m1,
…
,m
l-1
}相对应的关键字集合w={w0,w1,
…
,w
l-1
};制定针对文件集合m的访问控制策略,并根据所述访问控制策略生成相应的add访问结构;使用对称密钥集合k对所述文件集合m进行加密,生成密文集合基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,分别生成密文{c
i
|0≤i≤l-1}和其中c
i
(0≤i≤l-1)分别与l个对称密钥对应,为i
w
中的公共参数,(σ
i
,σ
′
i
)(0≤i≤l-1)分别与l个关键字对应;基于所述add访问结构的cp-abse算法,按照有效路径r
t
对秘密值s进行加密,分别生成密文组件和最终将密文存储到ipfs上,获得与密文ct相对应的hash
storage
值;将所述hash
storage
值与所述关键字索引i
w
打包,生成存储交易tx
storage
,并上传至所述区块链模块;所述区块链模块完成对所述存储交易tx
storage
进行验证,验证成功后,进行存储;所述ehrs访问者模块上传属性集合s至所述区块链模块,并获得由所述区块链模块构造的解密密钥sk;所述ehrs访问者模块根据文件使用需求确定搜索关键字w,利用所述解密密钥sk和所述搜索关键字w生成搜索令牌t
w
;根据所述搜索令牌t
w
,生成相应的搜索交易tx
search
,并上传至所述区块链模块;所述区块链模块对所述搜索交易tx
search
进行验证,并在验证成功后触发智能合约搜索与之匹配的关键字索引,若所述关键字索引和所述搜索令牌t
w
匹配成功,则返回相应的密文存储地址hash
search
给所述ehrs访问者模块;所述ehrs访问者模块根据所述密文存储地址hash
search
获取存储在ipfs模块上的ehrs密文;所述ipfs模块将查找到的密文返回给所述ehrs访问者模块;所述ehrs访问者模块收到相应的密文后,解密得到对称密钥,并进一步解密获取明文形式的ehrs文件。7.根据权利要求6所述的基于区块链的属性可搜索加密方法,其特征在于,所述基于区块链模块初始化系统参数,并为ehrs拥有者模块和ehrs访问者模块生成用户公钥pk
user
及签名密钥sk
user
,包括:区块链主节点确定双线性映射参数(g,g
t
,e,p,g),并广播给其他节点;
区块链节点bn
θ
根据所管理的属性集合随机选择循环群z
p
中的元素t'
θ,1
,t'
θ,2
,...,t'
θ,j
,t”θ,1
,t”θ,2
,...,t”θ,j
,并随机选择(a
θ
,b
θ
,c
θ
,α
θ
)∈z
p
,生成节点主密钥mk
θ
=<a
θ
,b
θ
,c
θ
,α
θ
>及节点公钥并广播给其它区块链节点;区块链主节点选择哈希函数h0:{0,1}
*
→
z
p*
,使用pedersen(k,n)秘密共享协议将所述节点主密钥mk
θ
(0≤θ≤n-1)重构为系统主密钥mk=<a,b,c,α>,并计算系统公钥pk=<g,g
a
,g
b
,g
c
,π
α
>,其中π=e(g,g);区块链主节点为ehrs拥有者模块生成用户公钥pk
do
及用户签名密钥sk
do
,为ehrs访问者模块生成用户公钥pk
du
及用户签名密钥sk
du
。8.根据权利要求6所述的基于区块链的属性可搜索加密方法,其特征在于,基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,包括:ehrs拥有者使用对称密钥集合k对所述文件集合m加密,生成密文集合基于所述add访问结构的cp-abse算法完成对所述对称密钥集合k和所述关键字集合w的加密,分别生成密文{c
i
|0≤i≤l-1}和其中c
i
(0≤i≤l-1)分别与l个对称密钥对应,为i
w
中的公共参数,(σ
i
,σ
′
i
)分别与l个关键字对应;基于所述add访问结构的cp-abse算法,按照有效路径r
t
(其集合记为r)对秘密值s进行加密,分别生成密文组件和最终生成密文9.根据权利要求6所述的基于区块链的属性可搜索加密方法,其特征在于,获得由所述区块链模块构造的解密密钥sk,包括:区块链节点bn
θ
(0≤θ≤n-1)设定tsk
θ
=0,将管理的系统属性att
θ
={att
θ,1
,att
θ,2
,
…
,att
θ,j
}与用户属性集s进行匹配:对于att
θ
中的任意属性att
θ,m
(1≤m≤j),若att
θ,m
∈s,则tsk
θ
=tsk
θ
+t'
θ,m
,否则tsk
θ
=tsk
θ
+t
″
θ,m
;属性匹配完成后,区块链节点bn
θ
(0≤θ≤n-1)将tsk
θ
发送给区块链主节点;所述区块链主节点构造并随机选择元素r∈z
p
,完成以下计算:d=g
r/tsk
最终,生成ehrs访问者的解密密钥10.根据权利要求6所述的基于区块链的属性可搜索加密方法,其特征在于,所述获取明文形式的ehrs文件,包括:ehrs访问者通过所述解密密钥sk对密文ct进行解密;若ehrs访问者的属性s满足add访问结构,根据所满足的有效路径r
t
及其终端节点取值y
i
,按照以下公式完成计算:
其中,表示使用k
i
完成对称解密;最终,ehrs访问者解密获得所述明文形式的ehrs文件。
技术总结
本发明公开了一种基于区块链的属性可搜索加密系统与方法,系统包括:EHRs拥有者模块:用于负责文件构造、加密及上传;EHRs访问者模块:用于生成与关键字匹配的搜索令牌,下载密文并对所述密文进行解密;区块链模块:用于生成密钥、验证交易信息以及执行智能合约;IPFS模块:用于分布式存储EHRs密文文件;EHRs拥有者模块与所述区块链模块连接,EHRs访问者模块分别与区块链模块和IPFS模块双向连接,IPFS模块与EHRs拥有者模块双向连接。本发明解决了传统CP-ABSE方案高度依赖单一可信授权中心出现的单点故障、密钥泄露等问题。密钥泄露等问题。密钥泄露等问题。
技术研发人员:李龙 曹佳敏 刘华东 李晶晶 常亮 古天龙
受保护的技术使用者:南宁桂电电子科技研究院有限公司
技术研发日:2023.05.05
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种用于新生儿的机械振动毯的制作方法 下一篇:头戴调节装置和头戴设备的制作方法
