Privacy-Preserving Searchable Encryption Framework for Permissioned Blockchain Networks(用于许可区块链网络的隐私保护可搜索加密框架)
在本篇论文中,作者提出了一种**新的基于许可区块链的可搜索加密框架**,该框架建立在不可变的分布式账本上,即Hyperledger Fabric结构。(许可区块链:类似联盟链、私有链,需要许可的区块链,非许可区块链:类似公有链,人人都可访问)。Hyperledger Fabric提供了许可的成员资格、可扩展性、更高级别的信任和模块化架构,为了增强外包到云端的数据安全性,数据加密后,存储在区块链上。为了搜索加密数据,该框架利用了基于隐藏搜索模式的概率陷门的隐私保护可搜索加密方案。
主要贡献:
- 1)提出了一种隐私保护的SE框架,方便搜索存储在授权和分布式账本上的加密数据
- 2)这是第一次研究基于概率陷门的Hyperledger Fabric的SE方案,该框架使用概率陷门来抵御可识别性攻击,并确保更高级别的安全性和隐私性。
一、写作背景
论文名称 | 作者 / 单位 | 来源 | 年份 | 简要内容 |
---|
Privacy-Preserving Searchable Encryption Framework for Permissioned Blockchain Networks | Tahir et.al (University of London) | IEEE Confs on Internet of Things, Green Computing and Communications, Cyber, Physical and Social Computing,Smart Data, Blockchain, Computer and Information Technology, Congress on Cybermatics) | 2018 | 本文提出了一种新颖的隐私保护框架,以便对存储在区块链网络上的加密数据进行关键字搜索。 |
从本文可知,由于现有的可搜索加密方案都是基于Cloud是“可信但好奇”或者“诚实但好奇”的假设。当cloud是恶意的时候,故使用许可的区块链技术来确保更高级别的安全性。
区块链网络主要分为两种类型:许可和非许可。许可的区块链网络利用一组访问策略来允许节点访问网络及其中存储的数据,而无权限的区块链允许访问所有的节点,而不考虑它们的访问权限。然而,这些都不能保证存储在区块链上的数据机密性和隐私保护。将数据存储到区块链之前对数据进行加密可以获得机密性,同时使用区块链上的关键字搜索变得困难。SE中的隐私保护是一种借助概率陷门实现的特征,陷门是由授权人员生成的搜索令牌,以将搜索委托给云服务器。概率陷门有助于为再次搜索相同关键字生成不同的搜索令牌,结果搜索模式保持隐藏,恶意云服务器或敌手无法启动可区分性或被动攻击。
二、 主要内容
假设Bob外包敏感数据
D
=
{
D
1
,
D
2
,
.
.
.
,
D
n
}
D=\{D_1,D_2,...,D_n\}
D={D1?,D2?,...,Dn?}给云服务器(CS)以确保即时可用。只要包含敏感数据,则在外包之前先对文档进行加密,每个加密文档在通过共识后经过背书和身份验证后被记录到区块链上。Bob意识到在区块链网络上通过加密数据搜索关键字是不可能的。因此,在加密文档和将文档外包给CS之前,Bob确定了一组关键字
W
=
{
W
1
,
W
2
,
.
.
.
,
W
m
}
W=\{W_1,W_2,...,W_m\}
W={W1?,W2?,...,Wm?},并生成一个安全的倒排索引表I,倒排索引表I被发送到CS中,嵌入到智能合约中。
每当Bob想要搜索关键字时,都会生成一个陷门,并将其发送到CS,进一步发送到智能合约。智能合约代表Bob执行搜索。在共享搜索结果之前,触发共识功能,对即将到来的请求进行背书、验证和应用排序,以便记录在区块链上。这样不仅将结果发送回Bob,还将陷门相关信息存储到账本上,使用此搜索结果,Bob能够成功识别所需的数据块并下载它们。
2.1 设计目标
- 1)安全性:允许维护存储在区块链网络上的数据机密性、完整性和可用性。
- 2)隐私保护:允许搜索和访问特殊的数据区块,同时隐藏搜索模式。
- 3)透明和Provenance:通过维护与数据的存在及其来源相关的信息来实现可靠性。
- 4)不变性:通过消除修改的可能性使数据防篡改。
- 5)去中介化:消除了可信权威机构对数据管理的必要性。
- 6)自主权:指的是以用户为中心的方法,在这种方法中,客户端可用控制外包给CS的数据。
- 7)授权访问限制:对不可信对等体的访问,同时向可信对等体提供升级访问权限。
2.2 方案构造
该提议框架搜索了SE和区块链技术的合并,主要分为了三个操作:1)system setup;2)data insertion;3)keyword searching。
- 1)System setup:
K
e
y
G
e
n
KeyGen
KeyGen算法指给定一个安全参数
λ
\lambda
λ,生成主密钥
K
K
K,非对称密钥对
(
k
p
r
,
k
p
u
)
(k_{pr},k_{pu})
(kpr?,kpu?)和会话密钥
k
s
k_s
ks?,其中
K
,
k
s
,
(
k
p
r
,
k
p
u
)
→
{
0
,
1
}
λ
K,k_s,(k_{pr},k_{pu})\to \{0,1\}^\lambda
K,ks?,(kpr?,kpu?)→{0,1}λ。
S
i
g
G
e
n
SigGen
SigGen算法是指给定公钥
k
p
u
k_{pu}
kpu?,算法在会员服务提供商(MSP)和CA的帮助下生成一个与客户端对应的唯一签名。
- 利用Hyperledger Fabric中的MSP类似于证书管理机构CA,它生成、验证和撤销与身份相关的证书和背书,对加入网络的节点进行身份验证。
- 利用Chaincode(链码),也称为“智能合约”,为客户端应用程序提供了一个接口来与对等体进行交互。invoke方法是由客户端应用程序调用以执行三类交易,记录、查询和更改。当客户端希望记录新交易时,将调用Record方法。当客户端想要在已经是区块链一部分的加密交易中搜索关键字时,调用Query方法。因此,此功能启用在区块链中对加密数据的关键字搜索,并对SE方案进行编程。当客户端记录更改时,调用更改以加密交易的形式保管物品或更改。
- 共识函数:是对peers内部允许在现有分类账上附加交易的共同协议。客户端应用程序提交一个交易,背书节点在SC的帮助下模拟拟议的交易,而不更新分类账。背书节点还记录账本的当前状态以及交易附加到账本后可能发生的转换。此状态转换表示为RW集的读取和写入数据,这些数据已签名并与客户端应用程序共享。
- 2)Data insertion:在将加密文档外包给CS之前,客户端必须生成安全的倒排索引I。索引表I是一个映射,用于显示文档中关键字的存在与否。这是唯一可用从I判断出的消息,而无法识别关键字。在成功生成索引表I后,客户端使用其主密钥K对文档D进行加密。将索引与加密文档D进行加密。将索引I与加密文档D一起发送到CS。为了将文档附加到分类账中,客户必须通过MSP验证。客户端将他的签名发送给MSP进行验证并授予访问权限。
-
B
u
i
l
d
?
I
n
d
e
x
Build-Index
Build?Index算法:索引表I由客户端根据[1]中提出的算法生成。该算法定义了一个加密哈希函数
H
:
{
0
,
1
}
λ
×
W
→
{
0
,
1
}
L
H: \{0, 1\}^\lambda \times W \to \{0, 1\}^L
H:{0,1}λ×W→{0,1}L,其中
L
L
L是输出的长度。函数H使用客户端的主密钥K生成一个关键字的哈希值。该算法也基于有助于映射概率陷门的模逆特性。
-
A
d
o
p
t
Adopt
Adopt算法:给定倒排索引表I,签名
S
i
g
Sig
Sig,该算法将
B
u
i
l
d
?
I
n
d
e
x
Build-Index
Build?Index算法得到的更新倒排索引表I嵌入SC的Query函数中。
-
P
u
t
Put
Put算法:给定文档D的加密集,该算法将文档添加到总账中,这要求客户端首先使用MSP进行身份验证。为此,触发共识功能,在验证对等方对交易进行验证后,交易被添加到分类账中,这是存储加密文档和维护陷门历史和搜索结果所需的。
- 3)Keyword searching:关键字搜索要求客户端生成一个概率陷门。因为只有经过授权的人才能够生成有意义的陷门,需要客户端的主密钥。客户端还提供要搜索的关键字,概率陷门抵抗可区分性攻击,因为当再次搜索相同的关键字时,回生成一个新的陷门。
-
B
u
i
l
d
?
T
r
a
p
Build-Trap
Build?Trap算法:为了存储在区块链上的加密文档上搜索关键字,客户端生成一个概率陷门。在概率对称加密算法(AES-CBC)的帮助下,陷门是概率的。该算法使用了类似于
B
u
i
l
d
?
I
n
d
e
x
Build-Index
Build?Index算法中使用的键控哈希函数。陷门
T
w
T_w
Tw?被传输到智能合约以代表客户进行搜索。
-
S
e
a
r
c
h
?
O
u
t
c
o
m
e
Search-Outcome
Search?Outcome算法:这个算法嵌入到SC中,用于发送一个概率陷门,并代表客户端进行搜索。CS进行计算并识别
d
=
=
H
K
s
(
c
?
a
?
1
m
o
d
P
)
d==H_{K_s}(c*a^{-1}mod P)
d==HKs??(c?a?1modP)。成功识别后,SC将文档标识符返回给客户端,客户端将为网络上所需的块提供地址,由于搜索也被记录为一个交易,
P
u
t
Put
Put算法将再次被触发。
-
D
e
c
Dec
Dec算法:客户端对加密的文档标识符进行解密,以揭示包含所需文档的块。客户端现在可用直接从区块链网络检索所需的文档。
2.3 安全分析
PBSE框架的安全性分析符合基于概率陷门的SE定义。 定义1:(PBSE非正式版本的关键字-陷门不可区分性)若底层SE方案提供关键字-陷门不可区分性,则PBSE方案在关键字-陷门不可区分性意义上是隐私保护的。对于两个自适应选择的关键字,任何一个关键字都会生成陷门,PPT敌手无法以超过1/2的不可忽略的概率将一个关键字的陷门与另一个关键字区分开来。
定义2:(PBSE非正式版本的陷门-索引不可区分性)若底层SE方案提供陷门-索引不可区分性,则PBSE方案在陷门-索引不可区分性意义上是隐私保护的。对于两个自适应选择的关键字,任何一个关键字都会生成陷门,PPT敌手无法以超过1/2的不可忽略的概率将一个关键字的陷门与另一个关键字区分开来。
定理1:PBSE是一种基于区块链可搜索加密方案的隐私保护。
三、结论与思考
本文整体提出了一种新的基于许可区块链的可搜索加密框架,该框架建立在不可变的分布式账本上,即Hyperledger Fabric结构。Hyperledger Fabric提供许可的成员资格、可扩展性、更高级别的信任和模块化架构。为了增强外包到云端的数据安全性,数据被加密,并存储在区块链上。为了搜索加密数据,该框架利用了基于隐私搜索模式的概率陷门的隐私保护可搜索加密方案。
读完可知,该方案主要优点是利用率隐藏搜索模式的概率陷门的隐私保护,从而抵抗了可区分性攻击。此篇文章是将加密后的密文和索引都存储在区块链上,并没有对其进行计算和通信开销进行实验,具体而言,将密文存储在区块链上进行搜索,可能会增加通信开销和计算开销,影响效率。
[1] S. Tahir, S. Ruj, Y. Rahulamathavan, M. Rajarajan, and C. Glackin, “A new secure and lightweight searchable encryption scheme over encrypted cloud data,” IEEE Transactions on Emerging Topics in Computing, vol. 99, no. 99, 2017.
|