基于区块链与代理重加密的数据共享方案

n C tinfo security
技术研究2020年第8期\_________________________________________________________________________________________________________■doi:10.3969/j.issn.1671-1122.2020.0&003
基于区块链与代理重加密数据共享方案
---------------------李莉1,曾庆贤1,文义红2,王士成2-------------------------------
(1.武汉大学国家网络安全学院,武汉430072;2.中国电子科技集团公司第五十四研究所,石家庄050081)
摘要:在不可信环境下实现安全的数据共享一直是一个难题,传统中心化方案存在数据容易被泄露、数据容易被篡改、数据去向难以追踪、监管难度大等问题。公
钥体制下的数据共享方案则存在通信代价、计算开销大,实用性差等问题。针对上述
问题,文章提出一个基于区块链的数据共享方案。该方案通过区块链维护一个可信账
本来保证数据的可追溯性,同时也保证了访问控制权限的不可篡改。在此基础上构建
了基于Schnorr的代理重加密方案,通过一个代理重加密密钥实现了数据的安全共享。
文章所提方案相比传统方案有较好的安全性和可追溯性,且已成功应用于医疗数据共
享项目中。
关键词:区块链;代理重加密;数据共享;Schnorr签名
中图分类号:TP309文献标志码:A文章编号:1671-1122(2020)08-0016-09
中文引用格式:李莉,曾庆贤,文义红,等.基于区块链与代理重加密的数据共享方案[J].信息网络安全,2020,20(8):16-24.
英文引用格式:LI Li,ZENG Qingxian,WEN Yihong,et al.Data Sharing Scheme Based on the Blockchain and the Proxy Re-encryption[J].Netinfo Security,2020,20(8):16-24.
Data Sharing Scheme Based on the Blockchain and
the Proxy Re-encryption
LI Li1,ZENG Qingxian1,WEN Yihong2,WANG Shicheng2
(1.School of C yber Science and E ngineerings Wuhan University,Wuhan430072,China;2.The54th Research
Institute of C hina Electronics Technology Group Corporation^Shijiazhuang050081,China)
Abstract:Achieving secure data sharing in an untrusted environment is always a difficult problem.Traditional centralized solutions have problems that data is easily leaked,data is
easily tampered,data destination is difficult to track,and supervision is difficult.Data sharing
scheme based on public-key system has some problems such as high communication cost,high
computation cost and poor practicability.To solve the above problems,this paper proposes a
data sharing scheme based on blockchain.The scheme maintains a credible ledger through the
blockchain to ensure the traceability of data and immutability of the access control authority.
On this basis,a proxy re-encryption scheme based on Schnorr is constructed,which realizes
the secure data sharing by a proxy re-encryption secret key.Compared with the traditional
收稿日期:2020-6-28
基金项目:国家重点研发计划[2018YFC1315404]
作者简介:李莉(1976—),女,湖北,副教授,博士,主要研究方向为应用密码安全、区块链、物联网安全等;曾庆贤(1996—),男,江西,硕士研究生,主要研究方向为区块链、物联网安■全;文义红(1977—),男,湖北,高级工程师,博士,主要研究方向为遥感图像视频分析处理、航天区块链应用、航天系统仿真及应用等;王士成(1976—),男,河北,研究员,硕士,主要研究方向为人工智能与大数据、空间态势感知、航天地面应用等。
通信作者:李莉***********
N0TINFO SECURITY
技术研究__________________________________________________________________________________________________2020年第8期
schemes,the proposed scheme has better security and traceability,and has been successfully
applied in the medical data sharing project.
Key words:blockchain;proxy re-encryption;data sharing;Schnorr algorithm
0引言
数据安全一直是一个比较重要的话题[1]。随着大数据的应用发展,数据共享需求对数据安全提出了更多挑战。如何在保证数据隐私的同时,安全、可追溯地共享所需数据成为研究的热点。传统的中心化方案通常存在数据缺乏可信度、数据流向不透明、事后难以追责的问题[2],这些问题成为设计数据共享系统的最大障碍。
本文针对上述问题,提出一个基于区块链的数据共享系统。该系统由多个组织参与,每个组织控制一定数量的节点。数据拥有者在上传第据的同时,通过元数据(Metadata)分配数据的访问权限,保证了拥有者对射g权限有较K的控制力。相较于其他区块链方案,本文方案触基于Schnon•算法的代®加密技术保证数据共享的安全可靠。区昨和代密的结合使得可以实现安全、完整、可追溯的娠共享。
1相关工作
当前已有一些数据共享方案。例如,文献⑶使用粒子喲法对痂进行加工,保护其中的敏感数据;针对垂直数据集中的敏感数据问题,文献[4]采用基于安全多方计算保护决策树的方案;文献[5]提出基于云计算的娠共享方案。这些尝蹄在一定程度L做到了对隐私数K的鮒•,但中心化数据本身的安全问题却
难以解决。中心化系统必须建立在一个诚实的第三方之中,并且能够抵御外在的攻击,其内部成^也要有严格的权限控制。这些问题大大增加了建立中心化数据系统的瞬。
区块链的出现为问题的解决提供了一个全新的思路。区块链—b由多个对等节点参与的分布式账本呵,通过智能合约来保证记账的安全性与完整性。在区块链上,一系列对等节点通过智能合约提供的接口完成访问控制和妳读写操作,并将这些操作的H志永久保存在链匕使得数据流向清晰透明。现今已有一e区块链在数据共享上的研究和应用。文献[8]针对用户可穿戴设备场景提出f以用户为中心的隐私第据可控的数据共享方案。文献[9]利用对称可搜索技术,在区块链上建立了一个数据可搜索平台,在保证数据安全的同时实现了数据的可搜索性。针X寸用户之间的数据安全传输、共享,文献[10]也提出了基于区舱的族,并且触PoW(Proof o f W ork,工作量证明)机制来防止恶意节点对区蛛的攻击。
2相关技术
2.1区块链技术
区块链技术是从比特币底层抽象出来的一种新兴技术叫它是由全网节点维护的〜分布式公开账本,数据结构类似于C语言中的链表,链上的每个节点保存了最近的交易记录以及上一个区块的哈希值,因为任何对数据的改动都会使得哈希值发生巨大变化。该特性带来的结果是,除非节点具有超过全网51%的算力,否则无法对整条链进行分叉,这就避免了常见的“双花问题”,也因此保证了区块的不可更改。区块
链保存在所有参与的节点中,也避免了单点失效的问题,且能防止恶意节点对数据进行篡改。区块链是一个去中心化的网络,不需要一个权威的第三方对其进行监管和控制,通过分布式协议和智能合约技术完成相应的功能。
区块链根据开放程度分为3个类型:公有链、私有链以及联盟链。公有链对所有人公开,根据一定的算法,每个人都能成为其中的一个节点并参与计算和读写。私有链是高度集中的区块链,通常只有〜组织,只有组织信任的节点才能参与区块链进行账本的读写。联盟链介于两者之间,通常由几个组织构成,每个组织管理了一些节点,这些节点维护了区块链的各项功能。因为联盟链提供的模式能够满足数据共享的许多
n C tinfo security
技术研究2020年第8期\
应用场景,所以其被选为很多项目的底层区块链模式。
2.2Fabric
Fabric是由不同组织参与开发的一W盟链项目Ml,是开源项目超级账本中比较成熟的一个,面向企业级区块链开发。其网络主要由3种节点构成:背书节点、确认节点和排序节点,此外还有一个可插拔的认
证中心(CertificateAuthority,CA)
背书节点负责对交易进行背书,根据已有规则对数据进行读写操作。在收到交易的提案之后,背书节点首先对其中的签名进行验证,并检査提案的发起者是否有权限;然后根据自己的状态数据库进行模拟交易,把结果生成读集(ReadSet)和写集(Write Set),它们代表了对Fabric状态数据库的读写操作集合;最后把执行结果背书并返回给交易的发起者。确认节点负责对背书节点发来的交易进行检查,验证其数据结果。排序节点负责对收到的交易进行排序,打包成区块,并将结果返回给交易对应的节点。CA节点是Fabric中PKI体系下的核心节点,主要负责用户的注册以及证书的颁发和撤销等。
Fabric中比较引人注目的功能是它支持多条链(Channel),每条链支持连接不同的组织,运行独立的链码(Chaincode)。这使得在一个区块链上运行几条独立的#^可能,也鮒隔离不同舷相同节社的嫌。
2.3代理重加密
代理重加密是BLAZED等人提出的一个概念。该机制允I链系统中有f半舷的代理者,代理密钥,将Alice加密的密文转换为Bob可解密的密文。在这个过程中,代理者无法获得任何明文信息网。在当前背景下,多数系统的娠存储功能都是由f不诚观者半妙的云服务端实现,代密的
可以避免云服务端的恶意行为。
代密可用于如下翱。Alice每次都融邮箱接收用自己公钥加密的邮件,假设某天Alice因为时间问题^能及时处理邮件,因此她想将邮件转发给自己的助理Bob,让Bob来处理这些邮件。因为邮件的内容是利用Alice的公钥加密的密文信息,因此Bob无法获取邮件的明文信息。f简单的办法就是Alice直接把自己的私钥罐给Bob,舷会产生一些问题:首先如果直接发送密钥明文,那邮件的加密就失去了意义,一旦Bob的邮件服务邮件的明轴会;WCAHce 可能不希望自己的私钥被别人直接获取。在这种场景下,代理重加密就有了用武之地。Alice可以根据Bob的公钥和自己的私钥产生一个代理重加密密钥,放在自己的邮箱服务器的癖库中。在收到密文邮件后,邮箱服务器可以利用这个代理重加密密钥,将密文进行一次重加密,将重加密后的密文转发给Bob,Bob收到这条重加密的密文消息后,就可以利用自己的私钥对密文进行解密,进而还原出明文消息。
代醛加密分多种形式。根据密文转换方向的不同可分为单向代理重加密和双向代理重加密。单向代理重加密只允许将Alice能解密的密文转换为Bob能解密的密文。双向代理重加密除了允许将Alice能解密的密文转换为Bob能解密的密文,同时也可以将Bob能解密的密文转换为Alice能解密的密文。根据重加密密钥转换次数的不同,可以分为单跳密文转换和多跳密文转换。本文使用的是基于单跳单向的代理重加密方案,即只允许对一个密文进行从Alice能解密到Bob能解密的密文转换。
2.4Schnorr签名
Schnorr^名种基于离删寸咖题的签名虑这是一种简单、高效的签名算法,能够在一些资源受限的环境下发挥良好的性能。此外,Schnorr签名还具有可证明安全性,能够在随机预言机模型下很好地证明Schnorr签名的安全性。
3系统架构
本文引入区块链,并基于Fabric链码设计了一个数据共享平台系统方案。系统的主要角有数据拥有者、娠请求者和半诚实第三方代理。
琳拥有者WS的原始持有者,他徵享娠密文、相关密钥以及元妳上传至代理服务器。数据请求
N0TINFO SECURITY
技术研究
“020年第8期
者搜索娜的元姗,并对感兴趣的娜申请下载。半
诚实第三方代理负责保存妳拥有者上传的妳,并遵
循上传下载等协议为輝拥有者和请求者搦存储
和使用等服务。半诚实第三方代理虽然遵馳议执行,
但却可能保存协议的中间计算状态。第三方代理首先确
认娜请求者的下载资格,如果请求者具有资格,贝!I代
理方会发送密文以及重加密后的对称密钥的密文给数据
请^者,躺#求者通过自己的私钥解密娜,获得明文。
本文方案在代理服务器端通过密码算法保证数据
一直以密文形式存储,数据请求者只有在成功请求数
据后,才能解密得到数据明文。系统功能包括上传文件、
搜索文件列表和下载对应文件。系统架构如图]所示,
主要分为3个模块:前端模块、代理服务器模块以及
区舱模块。
数据拥有者数据请求者
35
验证权限||数据重加密|前端模块
果生成日志上链。4)若从区块链模块确认用户有权限
下载文件,则通过一个代理重加密密钥加对经对称密
钥加密的密文进行重加密。
区块链模块分为两个部分:智能合约和底层数据区块。智能合约4组定义了区块链系统逻辑的核心合
约代码,由管理M编写,在系统初始化阶段部署在各个
节点上,提供远程接口供用户调用问。这种合约不仅
能够免除因为人工失误而造成的错误,还能避免恶意操
作者对数据进行恶意修改和破坏。在Fabric中,智能合
约就是链码(Chaincode)。本文系统中,智能合约主要
负责管理3种数据:元数据、访问控制数据以及日志信
息。系统通过调用智能合约的API将数据的元数据以及
访问控制赠上链。底层赠区块主要负责存储相須
据,也就訣上数据。它4个类似链表的数据结构,
每个节点保存了上f节点的哈希值,以保证链上数据
的不唳改性。
代理服务器模块
数据拥
|文件搜索||保存密文|
Fabric网络彳区块区块|-区块链模块
4方案设计
4.1主要流程
基于第3章的系统架构,本文设计了基于区块链与代趣加密的数B共享方案。数据共享流程如图2所示,
主要包括数据加密处传、WF斜解密两个过程。
①加密f"e
②加^filekey
③生成伙心
⑪盍加密过程产生新密文
图1系统架构
前端模块主要为数据拥有者和数据请求者提供可视化的操作接口,方便用户进行数据上传、搜索以及下载等相洋作。
代理服务器模块扮演半诚实第三方的角,主要有4个功能:])保存数据拥有者上传的数据密文和相应的元数据。2)根据用户提供的关键字在元数据中搜索对应文件,并将结果返回给请求者。3)接受对文件的下载请求,并将请求者信息和文件信息发送给区块链模块,由区块链模块验证用户是否有对应这个文件的下载权限。区块链模块验证之后,会对此次请求结
代理服务器
④上传文件9小如即和S
&
数据拥有者/
图2基于区块链与代理重加密的数据共享流程图
©
%
chekey^cp
mr
IQ
Ign
Im i
n C tinfo security
技术研究2020年第8期\
详细描述过程之前,先给出方案涉及的符号、密
钥和密码操作,分别如表1、表2和表3所示。
表1符号及其含义
符号含义
A数据拥有者
B数据请求者
CA证书颁发机构
I系统安全参数
q Zbit的大素数
G阶为g的加法循环
pG的生成元
F;模g的正整数域
述,id B用户4、方的身份标识,可以唯一确定用户的公钥
表2密钥及其含义
密钥含义
&A CA的公钥
P a用户/的公钥
P b用户P的公钥
N ca CA的私钥
dA用户4的私钥
用户B的私钥
file待加密数据文件
filekey用于加密声沧的对称密钥,与兒e一一对应
rk A-,B用户A授权给用户B的重加密密钥
表3密码操作及其含义
密码操作含义
^filekey对他迸行加密保护,生成密文C file
E P a(f ilekey)使用巳对用e砂进行加密保护,生成密文知
DECdp(Pfilekey)使用d B解密密文6昨,得到刑就即
DEC敷)使用为沧砂解密%,得到明文龙比
Re-Enc©®重加密CfiJekey,得到CfiieJuy
4.2系统初始化
数据拥有者和数据请求者首先要在CA注册,获取自己的证书。CA建立且颁发证书的相关流程本文不再赘述,这里只给出其中的两个主要流程,具体如下:1)承系统皱和系统主公私钥
(1)输入安全参数?,CA选择f/bit的大素数g,顼〜q阶加法循环G,令P为G的〜^(2)CA选择〜随机数仏訂;作为主私钥,计算电=虹卩为系统主公钥;
(3)CA卿两个安錄凑函数:&:{0,1}“x G t F;,
(4)CA秘密保存系统主私钥&a,公开系统参数params={G,q,P,l}:A,H1,H2}。
2)用户U生成公私钥对,CA为用户U生成证书
(1)用户U产生f随机数為日;作为私钥,并计算公钥局将(迹局)发送给CA,其中,迹为用户的身份翩;
(2)CA利用私钥血为用户U的公钥代生成证书Ce%。
4.3加密及上传数据
1)Big拥有者加密屁
该步骤对应图2中的①。为了保证数据的安全共享,首先使用对称加密算法对并e进行加密,得到C ftle=E ftlekey{file)o将%保存在代理服务器上,供数据请下载。这一过程称为Sym_ENC。
2)数据拥有者加密卿即
该步骤对应图2中的②。给定河e砂和时间戳T o,用户&利用自身公钥匕对■卿即加密,具体描述如下:(1)产生相关的元数据加妣=(辺|人);
(2)输入待加密的消息砂;
(3)产生随机数胆F;,并计算点7?=圧;
(4)if#第一部分密文C A=M®Hi(zwe/al|出);
⑸if#第二部分密文治压(別MMefa);
(6)计算Schnorr签名部分z/=f+/z Q,若z A=0,返回步骤(3);
(7)输出C fllekey=(C A,meta,h A,z A)。
卜沐过稈称为AsyENCwithSchnorro
3)琳拥有者戦動[1密密钥心
该步骤对应图2中的③。给定原始密文°隔=©, meta}t A,z A),用户B的身份选和证书Ce/勿,用户&产生授权给用户B的心的过程如下:
(1)恢复随机数rz—Q;
(2)用户&利用屜验证Ce码是否有效,若有效,则从Ce徧中获取马;
(3)rk A^B=Hi(meta\\rP A(meta\\rP B)。

本文发布于:2024-09-22 01:31:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/470881.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   加密   区块   节点   进行   系统   密文
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议