基于区块链与函数加密的隐私数据安全共享模型研究
基于区块链与函数加密的隐私数据安全共享模型研究
李懿1,2,3, 王劲松1,2,3, 张洪玮1,2,3
1 天津理工大学计算机科学与工程学院,天津 300384
2 智能计算机及软件新技术天津市重点实验室,天津 300384
3 计算机病毒防治技术国家工程实验室,天津 300457
摘要:区块链技术给数据共享中的数据确权、数据溯源、数据可信、数据可用等方面提供了新思路,但数据共享中的隐私数据安全仍面临许多挑战。首先回顾当前基于区块链的数据共享研究现状;然后提出一种隐私数据安全共享模型,通过函数加密技术对隐私数据进行加密,结合零知识证明技术生成相关计算的可信证明,实现“数据可用不可见”的安全可靠的数据共享。实验结果显示,该模型的共享时延及经济开销均在可接受范围内,证明了该模型的安全性和可行性。
关键词:区块链 ; 函数加密 ; 零知识证明 ; 数据共享 ; 隐私保护
论文引用格式:
李懿, 王劲松, 张洪玮. 基于区块链与函数加密的隐私数据安全共享模型研究[J]. 大数据, 2022, 8(5): 33-44.
LI Y, WANG J S, ZHANG H W. Research on privacy data security sharing scheme based on blockchain and function encryption[J]. Big Data Research, 2022, 8(5): 33-44.
0 引言
1 研究现状
传统中心化数据共享具有单点故障、数据易丢失、易被篡改、隐私数据难保护等问题。近年来随着区块链技术的兴起,研究热点已经转移到去中心化数据共享。Chen J C等人利用区块链难以篡改的特性,将系统中的每次数据共享记录及相关信息记录在区块链中,并利用智能合约充当数据交换的媒介。但是由于区块链具有数据透明的特点,直接将原始数据暴露在链上会导致数据隐私难以通过该方案共享。Liang X P等人利用联盟链创建了一个以用户为中心的健康数据共享模型,用户的可穿戴设备和医疗设备收集到的数据会同步存储到云端,并且为了保证数据的完整性,云端会把数据的检索记录和验证结果传至区块链进行保存,还利用基于树的方法提高平台的可扩展性和性能。但是其假设云是可信的,这大大减弱了该模型的安全性。Theodouli A等人提出基于区块链的电子健康信息共享平台,其假设云服务器是恶意的,并通过对比链上数据的哈希值,确保恶意云服务器没有篡改数据,还给用户提供了完善的页面,帮助用户快速获知自己数据的访问情况,起到审计和监督的作用。但是其并未考虑恶意服务器泄露数据的风险,并且其假设网络由可信实体维护,这使得该方案难以落地。Gordon W J等人分析了基于区块链构建医疗数据共享架构时需考虑的安全风险,但是其并未给出具体的解决措施和架构。Azaria A等人提出去中心化的电子病历管理系统,用户可以通过智能合约自定义访问控制策略,并与不同的机构共享自己的电子病历。此外,作者还设计了激励系统来鼓励权威机构积极参与,维护网络稳定。Yang H等人借助区块链和属性基加密(attribute-based encryption,ABE)实现安全电子健康数据共享,用户将能够访问数据的属性条件记录在链上,只有拥有相关属性的人才能向云服务器发起数据访问请求。Cao S等人提出了云链结合的安全电子医疗数据共享系统,其核心思想是将每个数据操作写为公有链中的一笔交易,并在数据上传时将数据的哈希值与签名存在链上,从而保证数据的正确性和完整性。刘彦松等人利用属性加密和同态加密构建了保护隐私的链上数据交易平台,利用同态加密对密文进行计算,从而避免泄露原始数据,但是其并未给出该系统的性能指标,并且同态加密的计算开销大,复杂计算难以在链上实现。Yu K P等人利用智能合约和属性基加密,实现了工业互联网的数据共享平台,域管理员负责制订域安全和访问策略。其中拥有与访问策略相匹配的属性的用户,可以从边缘/云服务器获取中间解密参数,并且支持用户属性的更新和撤销。Zhang Y等人和Wörner D等人都通过在比特币中写入自建协议,配合链下数据解析脚本,构建IoT设备数据共享平台。这种方法利用比特币的稳定性来保证共享服务的稳定性,并利用假名技术保护用户隐私。但是比特币的性能不高,难以满足IoT的低时延需求。Özyilmaz K R等人利用智能合约构建了IoT传感器与数据使用者的数据共享平台,但是IoT设备通常不具有运行区块链的能力,并且该研究同样没有考虑隐私数据。Shafagh H等人利用区块链实现了去中心化的访问控制和数据管理,并通过传统访问控制方法来保护隐私数据,但是其不支持访问策略的更新。Pan J L等人利用智能合约控制IoT设备从边缘服务器获取数据,边缘服务器通过读取链上数据来判断IoT设备访问是否合法。张召等人对现有基于区块链的数据共享模型进行了分析,指出了该架构中存在的问题,并提出了链上数据完整性存证、链下实际数据传输的数据共享模型,但是并未解决隐私数据问题,且未给出实验证明。
通过对比现有数据共享研究不难发现,尽管在该领域已有一些研究成果,但是还存在诸多可以改进的地方,例如未考虑隐私数据、将云服务器假设为完全可信等。有些问题难以单独使用区块链或云来解决。为此,本文提出了基于区块链与函数加密的隐私数据安全共享模型,实现了更加高效、安全的数据共享。
2 相关技术
2.1 区块链及智能合约技术
区块链是一个公开、分布式、难以篡改的账簿,其最早在中本聪于2008年发布的比特币白皮书中被提出,其被作为支撑比特币系统的底层技术。区块链通常由运行相同或相近版本的客户端软件的节点通过对等网络组成,网络中传递的能够引起系统状态变化的消息被称为交易。整个对等网络中不存在中心化节点,所有节点间的地位及权利都是相等的,只有运行提前商定的共识算法,网络中的所有节点才能够对整个网络的状态变更达成统一。常见的共识算法包括工作量证明(proof of work,PoW)、权益证明(proof of stake, PoS)、权威证明(proof of authority, P o A)等。总体来说,区块链具有多种性质,这里仅列出与本文关系密切的特性。
● 透明性。区块链中的任何节点都可以随时获取区块链的所有状态,包括历史状态与当前状态,并且所有的历史交易与当前正在网络中传播的交易都是透明的。
● 永久存储。区块链会永久记录所有造成状态变更的交易,一旦区块被添加并确认,其内容就是不可更改的,这也是区块链技术非常突出的特性。
● 去中心化。区块链网络中不存在中心节点,这意味着只要交易自身是正确的,其一定会被忠实地执行。并且由于不存在中心节点,没有任何单独实体能够控制整个网络,除非所有节点同时宕机,否则区块链网络将永远存在。
智能合约是区块链发展过程中极其重要的里程碑,简而言之,智能合约可以被看作预先定义好的一段程序代码,代码通过交易的形式被存储在区块链中,并得到网络中各参与节点的共识。智能合约通常由Solidity语言编写,只能被区块中的交易触发执行。智能合约是否被正确执行,由所有区块链节点共同验证。结合区块链自身的加密货币属性与共识协议中的执行激励,智能合约可以实现复杂的交易和业务逻辑。以太坊是第一个支持图灵完备智能合约的区块链,其设想最早由Vitalik Buterin于2014年提出。以太坊存在两种账户:外部账户和合约账户。外部账户由唯一对应的公钥和私钥控制,能够通过私钥进行签名并发起交易,其地址由公钥计算得到。合约账户与外部账户最大的不同在于没有私钥能够控制合约账户,并且合约账户能够存储代码,其账户地址由固定算法直接算出。与比特币一样,每个交易都由输入方和接收方构成,外部账户可以通过使用私钥签名的交易进行转账、合约创建、合约调用等一系列操作。智能合约的行为完全取决于预设代码及外部账户调用传入的参数。
2.2 函数加密技术
函数加密是在Shamir A提出的身份基加密(identity-based encryption, IBE)和Goyal V等人提出的属性基加密的基础上发展而来的一种新型公钥加密算法,最早由Boneh B等人于2011年正式提出。它从两个方面拓展了传统公钥加密算法体系:一是其支持访问控制,只有满足特定条件的人才能解密;二是其允许通过对密文进行选择性的计算直接得到计算结果。
具体来说,传统公钥解密中往往只有解密成功或者解密失败两种结果,也就是说,解密者要么获取所有明文信息,要么不能获得任何信息。但函数加密允许加密者精确控制透露给解密者的信息量。例如,使用计算平均值的函数密钥对加密数据进行解密时,只能获取该加密数据的平均值,而不会获得额外信息。函数加密中每个函数F的密钥都与密钥空间K中的某个k值相关联,该密钥由可信权威机构利用全局主密钥生成。当消息空间X中的数据x被可信权威机构生成的主公钥加密后,使用与k相关联的密钥skk解密后的结果为F(k,x)。一个函数加密方案包含5个算法:Setup输入安全参数生成后续需要的素数群;Master Key Generation创建主公钥和主私钥;Function Key Derivation以主私钥和具体函数F为输入,生成skk用于获取函数结果;Encryption用于加密数据,生成密文;Decryption以skk和密文为输入,获取F(x)的解密结果。
2.3 零知识证明技术
零知识证明技术是一种加密技术,用于证明某个断言,而不具体透露其他任何信息。虽然其出现早于区块链,但却因为区块链被广为关注。由于区块链的透明性让网络中的用户可以随意访问所有数据,容易造成隐私数据泄露等问题。零知识证明的特性使其成为实现区块链隐私保护的重要方法。零知识证明包含以下3个特性。
● 完整性:诚实的证明方产生的合法证明一定会通过验证。
● 可靠性:证据在计算上是不可伪造的。
● 零知识性:验证者除证据本身外不能获取任何额外知识。
零知识证明主要分为两类:交互式零知识证明和非交互式零知识证明。交互式零知识证明是指验证方多次向证明方的声明提出挑战,双方需要多次通信,直至验证方认为正确概率大于某个阈值时表示认可。同时,值得注意的是,在交互式零知识证明中,证明方只能同时向一方证明。非交互式零知识证明是指证明方单方计算证据,随后任何验证方都可以随时快速验证证据的正确性,因此现在广泛使用的都是非交互式零知识证明。非交互式零知识证明的主要参与方包含3个:Generator以安全参数k为输入,输出另一个安全参数pp;Prover生成证据π,用于证明某个声明的真实性;Verifier能够快速验证证据的真实性。
3 系统架构
3.1 设计目标
本文模型旨在达到如下设计目标。
● 数据拥有者可控的数据共享。针对数据易复制、难管控、难确权等问题,本文模型旨在让数据拥有者对数据拥有完全的控制权。本文模型具有原始数据不外露、云存储数据防篡改、访问控制、安全共享等特点。
● 隐私保护。为了在保护原始数据的前提下实现数据共享,本文模型旨在结合密码学和区块链技术,实现“数据可用不可见”、结果可验证,从而保证隐私数据的安全性。
● 可靠性验证。使用零知识证明技术,保证数据处理结果的可靠性,消除由原始数据不可见带来的数据处理不可信风险,保护数据使用者的权益。
3.2 整体架构
本文结合区块链与云服务器,实现数据链上存证、链下存储的混合存储架构,并使用函数加密、零知识证明等技术实现隐私保护以及可验证结果的安全数据共享,具体架构如图1所示。本文模型包含以下主要角色:可信机构(trusted authority, TA)、区块链(blockchain,BC)、云服务提供商(cloud service provider,CSP)、数据拥有者(data owner,DO)、数据使用者(data user,DU)。
图1 整体架构及各角色间交互
各个角色具体介绍如下。
● 可信机构:负责全局初始化设置,本文模型中使用的函数加密及零知识证明的初始化参数设置都由TA生成,并且TA负责函数加密中私钥的生成。本文假设TA完全可信。
● 区块链:负责存储加密数据摘要、验证零知识证明的正确性、发布DO的定价及函数、接收DU的数据请求以及最终的自动支付流程,上述功能通过智能合约实现,合约中包含相关事件,用于传递消息。
● 云服务提供商:负责存储数据拥有者上传的密文,并向购买后的数据使用者提供密文。
● 数据拥有者:负责存储数据、加密数据、指定使用函数并定价。
3.3 运行流程
4 算法构造
4.1 函数加密
本函数加密模型基于DDH(decisional Diffie-Hellman)假设构建。下面对DDH假设进行简单介绍。
其中,GroupGen为任意概率多项式时间算法,输入安全参数lλ,产生一个三元组,其中G为p阶素数群,其生成元为g。那么( g,ga,gb,ga b)与( g,ga,gb,gc)是不可分辨的,其中的a、b、c均随机独立选取。与第2.2节中介绍的相同,IPFE=(Setup,KeyDer,Encrypt,Decrypt)。
●Setup(lλ,lI)初始化整个系统,生成主公钥和主私钥,将全局安全参数λ和l作为输入参数,其中整数
● KeyDer(msk,y)为数据使用者提供的向量
● Encrypt(mpk,x)使用主公钥对数据
其中,Ct0=gr,g是G的生成元,h、r是随机变量。
● Decrypt(mpk,Ct,sky)以主公钥mpk、密文Ct、密钥sky为输入,返回以g为基的离散对数。因此,由上述3个算法可以得出。
4.2 零知识证明
其中,
本文模型需要证明sk的有效性,即sk是通过正确的msk计算得到的,然后将该问题转化为相应的电路。由于zk-SNARK不能直接解决任何实际问题,需要将问题转化为多项式,并对多项式施加一系列约束才能进行后续的证明。随后,将电路转化为R1CS (rank-1 constraint system),并通过拉格朗日插值法转化为QAP(quadratic arithmetic program)。使用Groth16算法生成证明。具体来说,本文模型使用zk-SNARK生成证明的过程主要分为以下3步。
● Trust Setup生成CRS作为公共安全参数。首先选取
值得注意的是,计算完σ后,原始的σ1、σ2通常被称为“有毒废料”,应该被销毁,否则整个零知识证明将不再安全。
● 选取
将c1、c2、v作为计算证明的公开部分, r、s、y作为生成证明的秘密部分。
● 计算证明
最后将证明π传入智能合约进行验证。
5 安全性分析与实验
5.1 安全性分析
5.2 实验结果及分析
图2 上传自定义计算函数消耗的Gas随所求变量大小的变化
内积函数加密算法性能会受到所求向量长度的影响,从而影响整个数据交易的性能,因此本文对不同长度的向量进行了性能测试,实验环境与上述以太坊节点宿主机相同,得到的实验结果如图3所示。由图3可以看出,随着向量长度的增加,加密和解密所需时间增长较块,但是派生密钥所需时间依然维持在较低水平,这也侧面证明了本文模型将加密和解密放到链下执行的正确性。
6 结束语
作者简介
联系我们:
Tel:010-81055448
010-81055490
010-81055534
E-mail:bdr@bjxintong.com.cn
http://www.infocomm-journal.com/bdr
http://www.j-bigdataresearch.com.cn/
转载、合作:010-81055307