APP下载

基于区块链的双重可验证云存储方案

2022-01-12冯涛孔繁琪柳春岩马蓉MaherAlbettar

通信学报 2021年12期
关键词:可验证拥有者同态

冯涛,孔繁琪,柳春岩,马蓉,Maher Albettar

(1.兰州理工大学计算机与通信学院,甘肃 兰州 730050;2.兰州理工大学经济与管理学院,甘肃 兰州 730050;3.康考迪亚大学康考迪亚信息系统工程研究所,蒙特利尔 H3G 1M8)

1 引言

近年来,工业物联网(IIoT,industrial Internet of things)推动各种智能应用迅速崛起,在制造业、医疗保健、智能能源电网和智能交通系统等领域受到了极大的关注,并成功地融入人们生活和工作[1]。为了减少本地服务器的计算开销和节约存储空间,大量工业设备在业务中产生的实时感知数据和敏感信息需要存储到云端。云存储是云计算的重要分支[2],它为数据的存储和分析提供了高质量的按需服务,但在网络访问和数据上传过程中,其带来的隐私泄露问题也日趋严重。云服务器或敌手恶意获取和篡改用户的数据,导致敏感信息泄露,且对恶意用户无法追踪,从而导致恶性循环。云存储数据的机密性、完整性对工业物联网健康发展非常重要。目前,云存储主要存在以下几个问题:1) 数据的隐私和传输安全得不到保护;2) 云存储数据的正确性和完整性得不到有效验证;3) 无法追踪恶意用户,从而导致恶性循环。因此,针对数据处理的可信性和安全性问题,为保障用户查询真实数据,研究一种可验证云存储方案具有重要意义。

在过去的几十年里,许多学术界和工业界研究者已对可验证计算等相关问题进行了广泛而深入的探索。可验证计算方案主要涉及应用安全领域、计算机理论领域和密码学领域[3],并广泛应用在计费系统、外包计算、电子投票系统等各种场景中。在应用安全领域,大多方案从应用角度出发,以基于审计和各种安全协处理器工具为主;在计算机理论领域,大多方案依赖于复杂的概率可检测证明(PCP,probabilistically checkable proofs)[4],但由于极高的计算成本,它们很难在实际生活中应用。在密码学领域,主要的密码学工具有同态加密[5]、混淆电路、基于属性的加密、同态签名[6]等。Chaum等[7]利用盲签名构造了具体协议,其提出的electronic wallet 模型是利用密码学手段研究可验证计算的开端。随着区块链技术的发展[8],其可以提供完美的透明度和分布式可验证性,以及利用密码学技术和共识协议来保证网络安全传输,为可验证计算增加了更多的应用场景和功能性,创建了更安全可信的数据共享平台。区块链与可验证计算共同进行数据隐私保护,有利于数据分布式存储,以及对云端数据的完整性进行检验,有效控制数据破坏行为所造成的数据安全问题,也有利于监管部门对外包计算等场景进行有效监管,追踪恶意输入。

近年来,有学者提出了基于区块链的可验证云存储方案,但依然存在以下3 个问题尚未解决:1)在数据传输过程中,保证数据安全性、机密性的同时,没有考虑数据的可用性;2) 方案不能在云存储服务环境下实现整体数据和单个数据的可验证;3)无法实现对恶意修改和破坏数据用户的追踪。针对上述问题,本文提出了一种基于区块链的双重可验证云存储方案,解决了数据隐私泄露、不可验证、传输不安全和无法追溯恶意用户的问题。

本文主要的研究工作如下。

1) 提出了基于区块链的双重可验证云存储方案系统模型,并分析敌手的恶意行为。通过区块链技术可实现数据的一致存储和难以篡改,增加了上链数据造假的难度和成本,从而可以消除大部分使用者对数据信用的顾虑。本文构造的方案可保证数据的完整性以及计算过程的可靠性和可信度。使用同态加密技术对数据加密,在密文上进行计算,解决了隐私泄露和传输不安全等方面的问题。

2) 提出的基于区块链的双重可验证云存储方案,可对数据完整性进行有效核验。本文应用具有同态性质的哈希函数,云服务器可以聚合多用户的签名,并对聚合数据进行总体验证,解决了通信负担大、计算效率低等问题。需要追溯上传虚假数据的恶意用户时,进行单独验证,解决了在分布式计算和云存储时对恶意用户的追溯问题,有效避免了恶性循环。

3) 安全性分析表明,本文方案在数据加密和聚合时是一种高效的可验证方案。在保证数据隐私性的前提下,可追溯上传错误数据的恶意用户,比同类方案更加安全可靠。本文方案具有可行性、安全性和有效性的特点。

2 相关工作

在区块链服务网络模型下,研究者构建了结合可验证计算的安全协议,实现数据隐私保护、数据存证、数据核验等多种功能。按照可验证计算参与方数目,可将方案分为一对一可验证计算方案和多方可验证计算方案。

在一对一可验证计算方案中,Wang 等[9]提出了一种基于区块链的可验证数据完整性的个人健康档案共享方案。该方案实现了个人健康档案在共享过程中数据的安全性,提高了患者敏感数据的隐私性,但该方案的计算负担较高,应用场景单一,不具有可扩展性。Guo 等[10]提出了一种新的基于区块链技术的动态单点登录方案,实现了对加密数据的可靠搜索,并通过智能合约设计了加密的核对表,可以在区块链内实现安全的结果验证。该方案虽然提高了安全性,却极大地增加了计算量,降低了验证效率。Guo 等[11]提出了一种轻量级的可验证外包解密的CP-ABE 协议方案。该方案在解密过程中加入验证算法,利用密文的可验证性来验证用户设备的正确性。然而,该方案不满足公开可验证性,因此无法解决用户与云服务平台因数据正确性所产生的问题。

在多方可验证计算方案中,Dimitriou[12]提出了一种基于区块链的投票系统,这一系统通过随机数发生器令牌来确保抗强迫性和无收据性,并且适用于大规模的选举。区块链的结构确保了可核查性和可扩展性,从而增加了对选举的可信度,但是不能抗共谋攻击。Wang 等[13]结合区块链技术实现公平支付,解决了服务器返回错误结果的问题,其使用智能合约存储安全索引并执行搜索。这一方案只支持“与”门访问策略,表达不灵活。Dorsala 等[14]设计了一种基于证明的可验证计算公平协议方案,为比特币和以太坊等区块链系统提供了在其网络中生成交易的公开可验证性。该方案大量运用双线性映射导致效率降低,提高了脚本执行的成本。Zhang 等[15]为了实现去中心化的手续费公平支付方案,采用在区块链中临时冻结押金的形式,确保用户只要诚实执行就能得到搜索结果和服务费用。但该方案需要用户端在验证结果正确性的过程中进行大量的签名验证计算,用户开销较大。

基于区块链的可验证计算方案已有一定的研究基础,虽然根据区块链技术与可验证计算技术特征,研究者已提出了多种安全协议方案,但仍未解决云存储中所面临的隐私保护和数据传输安全问题,以及通过整体数据和单个数据验证而实现对恶意用户的追踪问题。

3 预备知识

3.1 同态哈希函数

3.2 同态加密

同态加密技术[17]可以在密文上进行特定数学运算,并且解密结果等于对应明文进行运算后的结果。在数据聚合、隐私保护等方面有着重要的应用。Enc 表示加密,Dec 表示解密,⊙和⊕分别表示在明文和密文上的运算,同态加密满足运算满足同态性质的加密方式统称为同态加密技术。

加密分为对称加密和非对称加密。对称加密是指加密和解密使用同一个密钥,这种方式显著降低了计算开销;非对称加密采用公钥加密、私钥解密,且基于数学困难问题,加解密操作实现复杂度较大,效率较低,对于资源的占用也较多。本文方案使用对称隐私同态加密技术对原始数据进行加密,因为该算法加密速度快,容易实现。

4 方案模型

本节将阐述基于区块链的双重可验证云存储方案的系统模型、威胁模型等内容。

4.1 系统模型

本文提出的基于区块链的双重可验证云存储方案系统模型如图1 所示。数据拥有者将密文和签名传至云端,上传者信息记录到区块链上,数据使用者可以向挖矿者节点申请验证总体数据和单个数据的完整性,并实现对恶意用户的追溯。其中包括5 类参与实体:云服务器(CS,cloud server)、数据拥有者(DO,data owner)、数据使用者(DU,data user)、挖矿者节点(MN,miner node)、区块链(blockchain)。各实体角色及所属功能介绍如下。

图1 基于区块链的双重可验证云存储方案系统模型

1) 云服务器。云服务器是第三方不可信的存储服务器,具有强大的计算能力和巨大的存储空间来处理和维护数据所有者的数据。在本文模型中,它是函数计算的具体执行者,主要负责存储、聚合和计算数据拥有者上传的加密文件和签名,然后将计算和验证结果发送给数据使用者。

2) 数据拥有者。数据拥有者拥有原始数据。在数据加密阶段,数据拥有者利用流密钥加密算法对自己的原始数据进行加密;在签名产生阶段,数据拥有者用自己的私钥和随机数对文件生成签名,将密文及签名上传给云服务器进行存储,同时将对应的上传者信息记录到区块链中。

3) 数据使用者。数据使用者作为合法用户,可以向区块链中的挖矿者节点请求对总体数据和单独数据进行完整性验证。Du 获得正确的聚合结果后,向云服务器支付服务费,完成交易。

4) 挖矿者节点。挖矿者节点用于验证总体数据和单个数据,会严格执行本文算法,并对DO 和CS返回验证结果,以确保隐私数据的完整性和正确性。当正在执行验证任务的挖矿者节点出现故障时,新的挖矿者节点从备用节点中递补。

5) 区块链。区块链主要负责链上存储数据使用者上传的签名和云服务器上传的聚合结果,接收授权数据使用者进行完整性验证。区块链上只需存储加密文件地址,即可追溯加密文件和上传此加密文件的数据拥有者。由于区块链是公开的,所有用户都可以浏览和访问,有效避免数据被非法修改,确保数据安全。

4.2 威胁模型

本文方案中,云服务器是诚实且好奇的,它会遵守协议以及为用户返回计算和验证结果,但也可能通过恶意手段利用中间结果或最终结果来推测用户的隐私数据,给用户的隐私造成威胁。数据拥有者不是完全可信的,可能出于某些目的伪造或者提供错误的密文,不诚实地将数据上传至云端,或者上传过程中受到敌手恶意篡改、欺骗攻击。区块链具有完全可信性,可以引入区块链帮助数据使用者验证云服务器返回的结果和数据拥有者上传密文的正确性。区块链只用于记录上传者对应信息和聚合结果,不能给区块链上传任何原始数据。挖矿者节点是诚实可信的,会按照本文算法严格执行验证,并将验证结果反馈给数据使用者。

5 方案概述

可验证云存储方案时序如图2 所示。首先,数据拥有者使用同态加密技术对数据加密和签名,多用户将密文C1,C2,···,Cv和签名上传至云服务器。云服务器将上传各个密文对应的上传者信息记录到区块1~区块n,将密文聚合结果上传到区块0,其次,数据使用者向云服务器请求数据结果,云服务器返回计算结果。最后,数据使用者向挖矿者节点发布验证总数据任务,挖矿者节点接收验证任务后,在区块链头进行总体结果验证,并返回总数据验证结果。如果数据正确,云服务器就可以得到服务费,完成交易。如果验证数据不正确,则把错误结果返回给云服务器并终止交易。云服务器接收到错误结果反馈后,再次向挖矿者节点发送验证单个数据信息任务,查询上传了错误信息的数据拥有者。挖矿者节点收到验证任务后,分别访问区块1~区块n,再将单个数据验证结果返回给云服务器。追溯到的恶意用户将会受到惩罚,并且用户可拒绝支付服务费用。

图2 可验证云存储方案时序

6 算法构造

本节对具体的基于区块链的双重可验证云存储方案的算法进行详细介绍。

6.1 数据加解密聚合算法

6.1.1 数据准备阶段

本文方案使用流密钥加密算法对原始数据进行同态加密,因为该算法加密速度快,容易实现,并且在本文中每个数据使用者与云服务器不共享相同的密钥,因此安全性较高。

1) 密钥分配。在密钥分配阶段,系统为每个数据使用者广播由基于密钥长度可变的流加密算法簇产生的密钥kn。

2) 计数器rt。为了使云服务器能检验数据拥有者上传的是否是最新数据,每个数据拥有者产生一个计数rt,并对其进行初始化,来保证数据的实时性和抵御重放攻击能力。

3) 数据加密。数据拥有者L将原始数据mL进行加密后,再上传至云服务器,保证了数据的隐私性,其加密算法为

6.1.2 云服务器聚合密文

1) 密文聚合处理阶段。云服务器将V个数据拥有者上传的密文通过加密算法进行聚合。由于采用的是加法同态加密,因此不需要对密文进行解密,可以直接对上传数据进行相关运算。这既降低了计算开销,也增加了方案的安全性,减少了隐私泄露的风险。其聚合函数为

2) 数据解密阶段。云服务器收到数据拥有者上传的密文后,对其进行解密处理,其解密函数为

6.2 总体验证

在可验证计算方案中,单独验证每个用户的密文会导致过多的通信量,所以需要云服务器将每个用户的密文和签名聚合,先进行总体验证工作,具体算法描述如下。

6.2.1 系统建立阶段(Setup)

6.2.2 挑战阶段(Challenge)

挖矿者节点检索文件标签tl,并使用pkl验证签名tl,如果验证失败,则终止交易;如果验证成功,则恢复其namel。

6.2.3 证据生成阶段(ProofGen)

6.2.4 数据验证阶段(Verification)

如果式(6)成立,挖矿者节点返回TRUE;否则,返回FALSE,并进行单独验证,追溯恶意用户。

为验证数据拥有者存储数据的完整性,式(6)的正确性验证如下。

6.3 单个验证

6.3.1 系统建立阶段(Setup)

设数据拥有者L的数据有n个数据块,为

6.3.2 挑战阶段(Challenge)

挖矿者节点检索文件标签t,并使用pk 验证签名t,如果验证失败,则终止交易;如果验证成功,则恢复其name。

6.3.4 验证阶段(Verification)

如果式(9)成立,挖矿者节点返回TRUE;否则,返回FALSE,并找出恶意用户。

为验证数据拥有者存储数据的完整性,式(9)的正确性验证如下

7 安全性分析与性能评估

7.1 安全性分析

1) 内容隐私性

本文方案中数据信息存储时,同态加密的密文具有可操作性,不同的数据拥有者通过密码技术使用不同的公钥对数据信息进行同态加密处理后存储在云服务器,加强了数据的传输及存储安全性。并将聚合密文和上传者信息存储在区块中。上述操作进一步保证了共享内容的隐私性。

2) 可验证和可追溯性

现有的可验证云存储方案由于缺少可信第三方,存在参与者共谋篡改数据的安全隐患。本文方案利用区块链的去中心化为可验证计算提供了一个可信环境,可以有效避免第三方机构或恶意用户私自篡改数据的风险。利用区块链的不可篡改性和可溯源性,对数据进行同态哈希后将签名分布式存储在区块链上,数据使用者能够在保证安全的前提下,通过挖矿者节点向区块链发出对云端数据进行双重验证的请求,最后得到审查结果,并通过签名信息对恶意用户进行追溯和惩罚。

3) 抗共谋攻击

本文提出的基于区块链的双重可验证云存储方案可以避免共谋。区块链通过密码学技术为可验证计算提供了一个可信任的环境,云服务器将数据拥有者的聚合密文结果存储在链上,有效防止了参与者之间共谋,使各个参与者诚实地执行协议。同时,被追溯到的共谋者会因违反协议被扣除高额的担保押金,而遵守合约比共谋能获得更高的利益,也消除了参与者共谋的动机。

4) 可扩展性

区块链是一个去中心化的账本,上链的信息共识生成区块都拥有时间戳可溯源且无法篡改。但由于区块存储有限,不能将所有的信息完整的存储在区块中,为了保证存储数据正确性的快速验证,本文方案将完整密文存储在云服务器中,链上区块记录上传者信息和存储聚合结果便于验证和追溯,也解决了区块存储容量有限的问题。

7.2 性能评估

1) 计算代价

本文方案中的计算代价主要由生成验证阶段和数据验证阶段产生。计算代价如表1 所示,其中,V为验证的数据拥有者个数,M为在G1上的乘法,E为指数,P为双线性映射,H为单项哈希函数。

表1 计算代价

2) 通信量

3) 验证算法的有效性

本文的验证算法基于概率模型。设被篡改了b块,每次验证n块数据中的c块,随机变量X表示检测到数据被篡改的块数,则验证一次检测到数据被篡改的概率至少为设随机变量Z表示验证a次检测到数据被篡改的块数,则共挑战了w=ac块,即至少有的概率检测到数据被篡改。

假设n块数据中有0.7%的数据被篡改,即同理得b=0.01n和b=0.09n。验证算法的有效性如图3 所示,P{Z≥1}与n无关。当c=n,即验证每一块数据时,本文算法也可以100%证明数据完备性。

图3 验证算法的有效性

通过对现有的可验证计算方案进行对比分析发现,文献[9,12]方案均是基于区块链进行可验证计算研究,不需要依赖可信第三方,但都不具有可追溯性。文献[9]方案实现了个人健康档案共享过程中数据的安全性,提高了患者敏感数据的隐私性,但该方案的计算负担较高,不具有可扩展性;文献[12]提出了一种基于区块链的投票系统,系统中区块链的附加结构确保了普遍的可验证性和可扩展性,从而最大限度地减少了对可信第三方的依赖,并且适用于大规模的选举,但是不能抗共谋攻击。

文献[19-20]方案均实现了数据可验证性。Buccafurri 等[19]提出了一种在云环境中验证查询结果的确定性方法,该方法实现了用户对结果的完整性的验证。数据所有者验证第一个标记的时间值,计算每个元素的MAC 属性,将其与云服务器返回的值进行比较,以便验证从第一个标记开始的每个链接。该方案在一定程度上减小了插入空间和时间的复杂度。武朵朵等[20]提出了一种针对矩阵乘积的可验证外包计算方案。但文献[19-20]方案都不具有可扩展性和可追溯性。

文献[21]提出了一个隐私保护框架,将患者健康记录存储在云辅助环境中,其性能基于适应度、隐私性和实用性等性能指标,但不能对数据正确性进行验证并追溯恶意用户。

本文方案首先保证了数据机密性和传输安全性,实现了数据的隐私保护;其次利用区块链的不可篡改性和可溯源性,实现了云端数据完整性的双重验证,有效避免了数据被非法用户篡改的风险,并可对恶意用户进行追溯。方案对比如表2 所示。

表2 方案对比

8 结束语

区块链可以提供极高的透明度、分布式可验证性和不可篡改性。利用区块链技术和可验证计算技术,可对上传到云端的数据的完整性进行检验,有效避免了数据被非法用户篡改的风险。基于区块链上述功能,本文方案采用同态加密技术对数据信息进行加密,保证数据机密性和传输的安全性,实现数据的隐私保护;另外,使用同态哈希函数,数据使用者能够在保证安全前提下可对云端数据进行双重验证,并可对恶意用户进行追溯。区块链的不可篡改、去中心化及匿名性等特点与可验证计算结合,可以在计费系统、医疗敏感信息共享等领域得到很好的具体应用。将区块链与可验证计算相结合,应用于具体实际场景中解决现存在的关键问题,是下一步研究工作的重点。

猜你喜欢

可验证拥有者同态
基于Stackelberg博弈的异步联邦学习激励机制设计
美德伦理品质有利于其拥有者
关于半模同态的分解*
拉回和推出的若干注记
“可验证”的专业术语解释
一种基于区块链技术的可信电子投票方法
云计算视角下可验证计算的分析研究
一种基于LWE的同态加密方案
HES:一种更小公钥的同态加密算法
无可信第三方的可验证多秘密共享