基于区块链的档案数据保护与共享方法
谭海波1 , 周桐1,2 , 赵赫1 , 赵哲1,2 , 王卫东1 , 张中贤1 , 盛念祖1,2 , 李晓风1     
1. 中国科学院 合肥物质科学研究院, 安徽 合肥 230031;
2. 中国科学技术大学, 安徽 合肥 230026
摘要: 针对现有档案数据管理中普遍存在的数据中心化存储、安全性差和防篡改性弱等问题,提出一种基于区块链的档案数据保护与共享方法:通过智能合约和数字签名技术,实现了数字档案馆的身份认证和档案所有权的确定;通过智能合约和星际文件系统(IPFS)等技术,实现了数字档案的保护、验证、恢复与共享;通过公有链与联盟链结合的方式,在降低经济成本的同时保障了数据的安全性,提高了可扩展性.该方法具有去中心化、安全可信和不可篡改等特点,有望促进档案馆数据存储方式的转型,以满足日益增长的档案数据保护与共享的需求.
关键词: 数字档案    区块链    智能合约    数字签名    IPFS    
Archival Data Protection and Sharing Method Based on Blockchain
TAN Hai-Bo1 , ZHOU Tong1,2 , ZHAO He1 , ZHAO Zhe1,2 , WANG Wei-Dong1 , ZHANG Zhong-Xian1 , SHENG Nian-Zu1,2 , LI Xiao-Feng1     
1. Hefei Institutes of Physical Science, Chinese Academy of Sciences, Hefei 230031, China;
2. University of Science and Technology of China, Hefei 230026, China
Abstract: In view of the problems existing in the management of archival data, such as centralized data storage, poor security, and low tamper resistant modification, this study proposes an archival data protection and sharing method based on blockchain technology. The identification of digital archives and the determination of archives ownership have been achieved through smart contracts and digital signature technologies; digital archives files have been protected, verified, restored, and shared through technologies such as smart contracts and the interplanetary file system (IPFS); the economic cost have been reduced meanwhile data security could be guaranteed and data extendibility improved through the combination of permissioned and permissionless blockchains. Featuring the characteristics of decentralization, security, credibility, and tamper-resistant, this method is expected to promote the data storage way transformation in archives so as to meet the increasing demand for the protection and sharing of archival data.
Key words: digital archive    blockchain    smart contract    digital signature    IPFS    

档案是一种重要的数据记录, 是人们在各种社会活动中直接形成的具有保存价值的原始信息.区别于一般的图书情报资料和电子文档信息, 档案的本质属性是原始记录性, 它使得档案能够还原真实的历史状况, 因而具备重要的保存与参考价值, 并且拥有法律效力.

随着IT技术的高速发展, 人们大规模地运用数字化的手段来提升档案的存储和处理效率.现有的数字档案系统为档案的管理工作带来便利的同时, 仍然存在以下主要问题[1]:(1)相比传统的纸质物理档案, 数字档案作为保存在存储介质上的比特字节, 具有高度的易变性, 并且数字档案在存储、传输和处理等过程中容易被修改; (2)每个档案馆都是档案信息的“孤岛”, 档案馆之间缺乏安全有效的档案共享渠道; (3)现有的数字档案保护方案大多是通过数字水印和数字签名等技术实现, 在档案遭到篡改或破坏后一般难以恢复.

档案数据的真实性和原始性主要依赖于对系统中心或第三方实体的信任, 如系统主节点、中心数据库以及系统负责人、数据库管理员等.一旦上述系统中心不再可信(例如系统数据库遭入侵, 或管理员被胁迫或收买), 档案数据的真实性将荡然无存.

区块链是一种运行于对等网络中各节点遵从特定共识机制的公共账本技术, 它具有去中心化、无需信任、防篡改性强等优点[2-4], 有望解决现有数字档案馆中普遍存在的数据安全性低、共享性差等问题.本文基于区块链以及IPFS(inter planetary file system)[5]、数字签名和混合加密等技术, 提出了以下解决方法.

1)  数字档案馆之间构建联盟链, 共同管理和维护此区块链的稳定运行, 并将数据快照定期与公有链进行锚定, 保障数据安全的同时, 降低了数据保护成本;

2)  通过私有IPFS集群加密存储档案原始数据, 配合链上的智能合约存储档案指纹等摘要信息, 实现了档案信息的保护、验证、恢复与共享;

3)  采用将档案修改记录和档案摘要历史版本存储到智能合约上的方式, 实现了对档案修改操作责任人的追责和档案历史版本的回溯;

4)  基于本文提出的数据档案保护和共享方法, 研发了档案数据保护与共享系统, 该系统与传统的档案管理系统以接口的形式进行对接, 为现有的档案数据提供额外的安全保护.

本文第1节介绍数字档案馆建设和区块链数据保护领域的相关工作.第2节介绍本方法涉及的区块链和IPFS等相关技术.第3节介绍整体架构, 包括系统架构和智能合约架构.第4节介绍方法的具体设计.第5节介绍方法的具体实现.第6节对本方法进行分析与评估.最后在第7节对本文工作进行总结.

1 相关工作

自20世纪90年代起, 美国就开始了数字档案馆的相关研究[6], 并随后推广到其他发达国家.2004年, 美国华盛顿州数字档案馆完成建设, 存储了超过1亿份档案文件, 其中部分档案通过网络共享至其他国家[7].2009年, 瑞士国家数字档案馆建设完成, 通过多地备份等机制, 实现档案文件的长期储存[8].上世纪90年代末, 我国国家档案局提出了构建数字档案馆的规划, 以实现纸质档案和音、视频档案的数字化, 达到档案的长期存储、高效共享和快捷查询等目标[9].2014年, 国家档案局《数字档案室建设指南》中明确提出了数字档案室的建设原则及内容[10], 为推动我国数字档案馆的建设与发展奠定了基础.2015年, 肖敏等人基于大数据分析技术, 挖掘各类数字档案之间的关联性和潜在价值, 为档案管理人员提供更有针对性的决策建议[11].2016年, 福建省数字档案馆信息平台的建设过程中, 利用了云计算等技术来解决档案分散各地的“孤岛效应”问题, 提升了档案的共享、处理和存储效率[12].2017年, 王伟等人在数字档案馆建设过程中融合了射频识别技术(RFID), 在增加数字档案安全性的同时, 提高了档案管理工作的效率[13].

数字档案的相关规范标准已日趋完善, 大数据、云计算、物联网等新技术正逐步应用到数字档案馆的建设中.但受限于中心化的存储技术与管理方式, 档案的原始性、真实性和安全性等问题尚未得到妥善解决, 档案被伪造、窃取和篡改等恶性事件屡有发生[14].

近年来, 国内外许多研究人员和机构运用区块链技术在数据保护与共享领域进行一些探索与实践[1].2013年, Araoz等人创立了Proof of Existence项目, 通过将哈希值存储到区块链交易OP_RETURN字段的方法, 实现了电子文件的真实性保护[15].Vaughan等人提出了Chainpoint项目, 基于区块链实现了一种通用的文件保护框架, 该方案计算文件哈希值并以此构建默克尔树[16], 以降低数据保护的成本[17].2016年, Azaria等人利用智能合约构建了去中心化的医疗数据访问与权限管理系统, 实现患者对其医疗数据的所有权, 使其自主地对医疗记录进行分享与管理[18].同年11月, 蔡维德等人提出了基于区块链的应用系统开发方法, 包含了账户链、交易链双链设计模型, 以及链上代码并行执行模型应用原则[19].2017年, Rifi等人[20]通过IPFS存储物联网(IoT)设备数据、智能合约控制访问权限的方式, 实现了IoT设备数据的访问保护.但该方案基于公有区块链和公有IPFS实现, 仍然具有数据存储成本高和隐私性较差等问题.同年, 蚂蚁金服公司基于区块链技术开展捐赠善款流向的追踪管理, 提升其系统和数据的透明性、可追溯性和不可篡改性[21].2018年, 百度将区块链技术应用于百度百科的数据保护, 将百科词条每次更新的历史版本和作者、编辑时间等信息记录到区块链上, 达到数据保护与存证的目的[22].2017年9月, 薛腾飞等人综合利用了区块链、MIFS、AFS和DDBS等技术, 提出了基于区块链的医疗数据共享模型, 实现了各医疗机构的数据共享/但是该方案依然将医疗数据存储在中心化数据库中, 没有很好地解决医疗数据篡改和恢复等问题[23].同年10月, 章宁等人利用区块链、数据库和非对称加密等技术, 实现了一种基于区块链的个人隐私数据保护的解决方案框架, 初步实现了在互联网租车场景中个人隐私的保护/但是该方案设计的数据交互审计平台运行在中心化服务器上, 仍然可能存在安全性和稳定性方面的隐患[24].自2014年起, 该实验室的研究团队也开展了区块链技术的相关研究, 并在物联网和医疗健康数据[25-28]等多个应用场景进行了实践[1].

2 相关技术

一般而言, 区块链结构是以数据区块为单位、按照时间顺序链接而成; 数据区块则是由分布式节点通过共识算法产生、并以一定的经济激励确保所有节点都有动力参与到区块链的活动中来.分布式系统中的所有节点地位均等, 不存在任何中心化的特殊节点, 且每个节点均会验证区块数据、传播区块数据, 从而保证少量节点的作恶不会影响到整个区块链系统的运行.区块链可分为公有链、私有链、联盟链, 其中, 公有链被称为非许可链, 任何组织或个人都可以参与共识, 并具有数据的读写权限; 私有链适用于单位或组织的内部系统使用[29], 其数据的读写权限是由该组织控制的, 不能够完全解决信任问题; 联盟链也被称为许可链, 其共识由联盟成员参与, 数据读写权限按联盟规则制定, 节点的加入需要联盟其他节点的同意.主流的公有链和联盟链实例比较[30]表 1.

Table 1 Comparision between mainstream permission and permissionless blockchains 表 1 主流的公有链和联盟链实例比较

共识算法致力于解决在去中心化的分布式互连网络中所有的节点如何达成一致的问题[32].目前, 区块链系统中的共识算法主要包括工作量证明(proof of work, 简称PoW)、股权证明(proof of stake, 简称PoS)和权威证明(proof of authority, 简称PoA)等[32-34], 其中, 比特币采用PoW共识算法, 要求系统的各节点基于自身算力共同求解一个计算复杂但验证容易的数学难题, 最快解决该难题的节点将获得一个区块打包的权利; 在PoS系统中, 持有最多数字货币而非最高算力的节点具有最大的概率打包下一个区块, 从而解决了PoW中算力资源浪费的问题; PoA则是一种由指定的权威节点产生区块的共识机制, 所有的权威节点地位相同, 可以通过投票的方式踢出或加入权威节点[35].相比于PoW和PoS共识机制, 虽然PoA的去中心化程度以及节点的竞争公平性和匿名性较弱, 但是可靠的权威节点认证机制和高效的共识效率更加适用于联盟链的使用场景, 并且避免了算力浪费和51%攻击的问题.现实场景中的每个数字档案馆维护一个权威节点, 由组织机构的声誉担保, 每个档案馆都会积极遵守共识算法, 维护联盟链运行, 不会轻易做出损害自身名誉的行为.

智能合约是可以在区块链上自动执行的特殊程序, 其特点是程序代码以及数据均存储于链上, 因此拥有防篡改性强、去中心化程度高等特点[36, 37].智能合约以交易的形式被创建和调用, 合约程序在分布式网络中的所有节点被执行, 因此不存在中心节点, 且任何节点发生故障都不会影响合约程序的运行[1].以太坊是主流的支持智能合约的区块链, 通过以太坊虚拟机实现了智能合约的功能, 允许开发人员使用类似JavaScript语法的高级语言Solidity进行智能合约的开发[38].

IPFS是全球互联的分布式文件系统, 它综合了包括分布式哈希表、块交换、版本控制系统和自我认证文件等系统的优点, 具有内容可寻址、不可篡改、去中心化等特点[39].在存储文件时, IPFS会根据文件内容计算得出文件指纹, 在获取文件时, IPFS根据文件指纹从存储节点中取出文件并验证之后返回给用户[1].IPFS分为私有集群和公有集群:公有集群是指全网IPFS节点构成的分布式网络, 任何人均可作为一个节点加入到该网络中; 私有集群仅限于某个团体或组织内部使用, 具有相同swarm-key的节点才可以参与到该网络中[40].

3 整体架构 3.1 系统架构

图 1所示, 本文提出的数据档案保护和共享方法由数字档案馆、联盟区块链、公有区块链、私有IPFS集群、系统服务(RESTful service)这5部分构成系统协同完成:数字档案馆(digital archive, 简称DA)作为数字档案联盟的权威节点参与到联盟区块链中, 享有档案保护、验证、共享等服务; 系统服务是一种去中心化应用(DApp), 本身不存储任何档案数据和身份信息, 以RESTful接口的形式为数字档案馆系统提供智能合约和IPFS接口调用; 公有区块链采用基于PoW共识算法的以太坊区块链(ethereum), 通过定期存储联盟链区块快照信息, 实现了对联盟链上数据的保护; 联盟区块链采用基于PoA共识算法的以太坊联盟链, 通过智能合约存储档案馆的数字身份和档案的摘要信息, 实现了身份的注册与恢复和档案的保护与共享等业务逻辑, 并通过定期与公有链锚定的方式增强数据的原始性和真实性保护; 私有IPFS集群存储了加密档案的原始信息, 并通过swarm.key进行节点的身份认证, 通过分布式哈希表(DHT)[41]、块交换(BitTorrent)[42]等技术保障了数据的安全性.基于公有区块链、联盟区块链和私有IPFS集群结合的数字档案数据流如图 2所示.

Fig. 1 System artchitecture diagram 图 1 系统架构图

Fig. 2 Data flow chart of digital archives 图 2 数字档案数据流图

3.2 合约架构

本方法主要利用智能合约一致性和不可篡改的特性, 在区块链原始安全功能的基础上, 还具有灵活性和可编程性.本方法的智能合约体系(如图 3所示)由公有链中区块数据保护合约(block data protection contract, 简称BAPC)和联盟链合约共同构成:BAPC合约部署在公有链中, 并存储联盟链的数据快照信息; 联盟链中的智能合约包括数字身份控制合约(digital identity controller contract, 简称DICC)、数字身份管理合约(digital identity manage contract, 简称DIMC)、数字档案管理合约(digital archive manage contract, 简称DAMC)等.

Fig. 3 Structure chart of smart contracts 图 3 智能合约架构图

●   DICC作为全局合约记录该联盟链中所有档案馆的数字身份标识(SC-ID)、对应的公钥(PubKey)和与其相关联的DIMC和数字档案管理合约(DMAC).在创建DICC合约时, 首个档案馆的数字身份以及相关合约被一同创建;

●   DIMC通过民主投票的方式实现档案馆联盟数字身份的内部自治, 包括身份创建投票合约(identity creation vote contract, 简称ICVC)和身份重置合约(identity reset vote contract, 简称IRVC):ICVC合约用于为新加入联盟的档案馆在DICC合约中创建投票请求并为其投票; IRVC合约用于在档案馆私钥泄露时, 通过民主投票的方式重置其公钥.

●   DAMC用于实现数字档案保护、验证、恢复和共享等业务逻辑, 包括档案信息存储合约(archive information storage contract, 简称AISC)、档案共享(信息)存储合约(archive sharing storage contract, 简称ASSC)和档案权限控制合约(archive authority control contract, 简称AACC): AACC合约用于数字档案的权限控制; AISC合约用于存储档案的摘要信息, 包括数字档案对象(DocJSON)的IPFS地址、哈希值、版本号、创建时间和最后修改时间等; ASSC合约用于存储档案馆分享的档案信息, 包括档案编号(DocID)、档案馆身份标识(SC-ID)和分享时间等.一个DocID可以共享给多个SC-ID访问.ASSC中的SC-ID的分类如表 2所示:若DocID对应的SC-ID的值为-1, 则该档案是完全对外部开放的, 外部用户或档案馆都可以直接从ASSC合约中获取档案IPFS地址; 若为0, 则联盟内部的所有成员都访问; 若SC-ID的值≥1时, 则只有指定SC-ID的档案馆有权访问该档案.

Table 2 SC-ID classification 表 2 SC-ID分类

4 方法设计 4.1 数字档案馆身份的注册与找回

数字档案的数字身份代表此档案馆参与到联盟链中, 是档案保护、共享等活动的基础.每个希望加入联盟的数字档案馆都需要获得半数以上联盟成员的同意, 方可为其在联盟中完成数字身份的注册.具体流程如下.

●  首先, 加入联盟的数字档案馆基于ECDSA椭圆曲线算法[43]在本地秘密地生成公私密钥对〈PK, SK〉, 其中, SK本地秘密存储;

●  然后, 通过可靠信道, 将PK及其身份信息发送给联盟内的所有成员, 并委托某个成员通过其ICVC合约创建数字身份的投票请求, 其他成员则通过其ICVC合约参与投票;

●  最后, 当票数超过半数时, DICC合约保存该档案馆的公钥信息, 然后为其生成SC-ID并创建DIMC和DAMC等一系列合约, 从而完成数字档案馆身份的注册.

由于私钥由档案馆秘密存储, 一旦内部人员或黑客非法窃取到私钥, 就可以伪造该档案馆的身份进行档案的查看、修改和分享等操作.因此, 一方面需要档案馆妥善保管SK, 避免因管理不善导致SK的泄露; 另一方面, 本文设计了基于投票机制的密钥重置方案.

●  首先, 档案馆秘密地重新生成一对新的公私密钥〈PKNEW, SKNEW〉, 通过可靠信道, 将新的PKNEW和SC-ID等信息发送给联盟内的其他成员, 并请求某一成员为其创建重置投票;

●  其他联盟成员为其进行重置投票, 当票数超过半数时, DICC合约重置该档案馆的公钥.

本方法在设计过程中充分考虑了档案馆密钥重置的可能, 通过身份编号SC-ID实现了公钥与业务逻辑的解耦.档案查询与共享等操作都基于SC-ID进行权限判断, 即使重置了DICC合约中的公钥, 只要签名对应的公钥与DICC中的SC-ID保持一致, 依然可以验证档案馆的数字身份.

4.2 数字档案的保护与验证

数字档案保护是指通过联盟链和公有链的链上智能合约, 配合IPFS私有集群将数字档案存储在区块链上, 防止其内容被非法篡改和破坏, 并提供验证和恢复等操作, 从而达到保护数字档案的目的.新增档案是将数字档案对象DocJSON保护在链下的私有IPFS集群和其档案指纹保存在链上的AISC合约中; 更新档案则将每次更新生成的DocJSON档案对象和更新档案时产生的数据进行保护.如图 4所示, 数字档案对象是JSON形式的档案信息组织结构, 包含档案编号、版本号、创建时间、操作管理员和档案附件等信息.

Fig. 4 Structure diagram of JSON of digital archives 图 4 数字档案JSON对象结构图

档案新增流程见算法1, DA首先生成一对随机的密钥edk(key, iv)用于档案附件和档案对象的加密, 然后, 先用edk对档案附件加密后存储到IPFS集群, 并将附件哈希值($Hash_{Files}^{sha256}$)、加密附件的指纹($Ipfs_{EncryptedFiles}^{add}$)和其他档案属性整合为档案对象(DocJSON)加密后存入IPFS集群, 并对档案馆身份(SC-ID)、档案编号(DocID)、档案对象哈希值($Hash_{DocJson}^{sha256}$)和加密档案对象的档案指纹($Ipfs_{ciphertext}^{add}$)等信息进行签名, 通过RESTful Service发送到智能合约进行处理.AISC合约收到新增档案请求后, 调用AACC合约从签名中恢复公钥信息, 并与DICC合约中登记的密钥进行对比:若身份检查通过, 则在合约中添加档案编号与摘要等信息的映射.

算法1. Saving of Archive.

1: Procedure SaveArchive(DocID, DocAttrs, Files)

2:    system executes:

3:      generate a random keyPair→edk〈key, iv

4:      AESencrypt(Files, key, iv)→EncryptedFiles

5:      extract($Hash_{Files}^{sha256},Ipfs_{EncryptedFiles}^{add}$)→Filesattrs

6:      combine(DocAttrs, Filesattrs)→DocJSONplaintext

7:      AESencrypt(DocJSONplaintext, key, iv)→DocJSONciphertext

8:      ECDSAsign(SC-ID, DocID, $Hash_{DocJson}^{sha256},Ipfs_{ciphertext}^{add}$)→signature

9:    contract executes:

10:      if AACCOwnerAuthCheck(signature, SC-ID)=true then

11:        $AISC_{mapping}^{add}$(DocId, [version, IpfsAddr, Hash, Time])

12:        endif

13: end Procedure

档案更新操作流程与新增类似, 不同之处在于DA不会重新生成edk, 而是使用在新增档案时创建的edk; DA会根据DocID从AISC合约和IPFS中取出DocJSON并解密, 然后根据更新的档案信息生成新的DocJSON并在加密后存储至IPFS和AISC合约中.

档案验证操作包括公有链对联盟链上的数据验证、联盟链对IPFS中档案数据的验证和DocJSON对档案馆本地数据库中档案信息的验证这3部分, 具体流程见算法2.

算法2. Validation of Archives.

1: Procedure ValidateArchive(DocID)

2:    system executes:

3:      signature→ECDSAsign(PrivateKeyA, SC-ID, DocID)

4:    service executes:

5:      if validate(PrivateChaingetBlock, BDPCgetlastblock)=false then

6:        return errorinvalidChain(DocID, timestamp)

7:      endif

8:    contract executes:

9:      if AACCOwnerAuthCheck(signature, SC-ID)=true then

10:        return $AISC_{DocID}^{getlastversion}$ListDocJSONipfs, DocJSONhash

11:      endif

12:    system executes:

13:      AESdecrypt($Ipfs_{cipherjson}^{get}$(DocJSONipfs), edk)→DocJSONplaintext

14:      if validate(DocJSONhash, sha256(DocJSONplaintext))=false then

15:        return errorinvalidIpfs(DocID, DocJSONipfs, timestamp)

16:      endif

17:      if validate(DocJSONplaintext, $LocalDB_{DocID}^{select}$)=false then

18:        return errorinvalidDB(DocID, timestamp)

19:      endif

20:    end Procedure

DA对SC-ID, DocID等信息进行签名发送到RESTful Service处理, Service收到请求后, 从公有链上的BDPC合约中获取最新的联盟链区块快照信息, 并与联盟链中的区块信息进行比对验证:若验证不通过, 则返回联盟链数据异常错误; 若验证通过, 则将签名发送到智能合约处理.AISC合约收到请求后, 先通过AACC合约对档案馆身份进行检查, 然后, 根据DocID从合约中查询该档案的摘要信息ListDocJSONipfs, DocJSONhash〉并返回.DA从AISC合约获取信息后, 先根据DocJSONipfs从IPFS集群中获取DocJSONciphertext, 然后根据本地的edk信息解密得到DocJSONplaintext, 并验证其哈希值是否与DocJSONhash一致:若验证不通过, 则返回IPFS数据异常错误.最后, 将可信任的DocJSONplaintext与本地数据库中的档案信息进行比对验证:若验证不通过, 则返回本地数据异常的错误.

在档案验证过程中产生的数据异常错误, 本文提供与之对应的恢复手段.

●  联盟区块链数据异常:通过联盟链和公有链上的BDPC合约存储的区块信息进行比对, 发现异常后可以继续与BDPC合约之前存储的区块信息进行对比, 定位出异常区块高度, 并在联盟链中基于此区块高度重新开始创建新的区块;

●   IPFS集群数据异常:由于AISC合约中保存有该档案各历史版本的数字指纹和哈希值, 一旦系统侦测到当前档案信息被篡改, 可恢复前期已保存的正确版本;

●  本地数据库数据异常:依照链上保存的可信档案文件来重置本地数据库被攻击者篡改的档案.相较于去中心化的区块链及IPFS, 本地数据库中的档案数据更易被篡改, 因此这是本方案中需要重点考虑的保护内容.

4.3 数字档案的共享与获取

数字档案的共享是指在数字档案联盟成员内部或数字档案联盟与外部用户之间, 通过智能合约、IPFS和混合加密机制实现了安全可靠的档案数据的共享, 并使得传统的档案系统可以安全高效地获取区块链系统, 从而保护档案数据, 具体流程如图 5所示.

Fig. 5 Flow chart of archievs sharing and acquisition 图 5 档案共享与获取流程图

步骤1:数字档案馆A(DA-A)使用私钥SKA对待分享档案编号DocID、分享目标档案馆SC-ID-B等信息进行签名, 并通过Service发送到智能合约.ASSC合约在收到请求后, 先调用AACC合约, 通过签名对档案馆身份进行检查, 检查通过后, 将SC-ID-B写入合约中DocID对应的分享列表;

步骤2:数字档案馆B(DA-B)使用私钥SKB对待分享档案编号DocID和身份标识SC-ID-B等信息进行签名, 并发送到智能合约.ASSC合约在收到请求后, 先调用AACC合约对DA-B进行见算法3的权限检查, 检查通过后, 返回档案指纹和对应的哈希值;

算法3. Authority Check.

1: Procedure AuthorityCheck(DocID, SC-ID, hash, signature)

2:    if $ASSC_{DocID}^{isPublicShare}$=true then

3:      return true

4:    endif

5:    ecrecover(hash, signature)→PublicKey

6:    if DICCcheckPublicKey(SC-ID, PublicKey)=false then

7:      return false

8:    endif

9:    if $ASSC_{DocID}^{isInnerShare}$=true||AACCOwnerAuthCheck(SC-ID)=true then

10:      return true

11:    endif

12:      return ASSCcheckShareList(DocID, SC-ID)

13: end Procedure

步骤3:DA-B根据从合约中获取的档案指纹, 从IPFS集群中异步获取加密的档案对象DocJSONciphertext, 同时, DA-B通过异步https请求将身份标识SC-ID-B和DocID发送给DA-A, 获取DocJSON的解密密钥;

步骤4:DA-A收到DA-B的请求后, 根据DocID和SC-ID-B等参数, 通过ASSC合约检查共享记录的真实性, 并从DIMC合约中获取SC-ID-B对应的PKB, 然后使用PKB对解密密钥edk进行非对称加密, 并返回给DA-B, 见公式(1).

$ ECDS{A_{encrypt}}(P{K_B},edk\left\langle {key,iv} \right\rangle ) \to encrypte{d_{\left\langle {key,iv} \right\rangle }} $ (1)

步骤5:DA-B收到DA-A的返回数据后, 使用私钥SKB进行解密得到原始的edkkey, iv〉, 然后使用edkDocJSONciphertext进行解密, 得到原始的档案对象DocJSONplaintext; 还可以根据JSON结构中的档案附件指纹从IPFS中获取附件密文, 并通过edk进行解密查看, 见公式(2)~公式(4).

$ ECDS{A_{encrypt}}(S{K_B},encrypted\left\langle {key,iv} \right\rangle ) \to ed{k_{\left\langle {key,iv} \right\rangle }} $ (2)
$ AE{S_{encrypt}}(DocJSO{N_{ciphertext}},edk) \to DocJSO{N_{plaintext}} $ (3)
$AE{S_{decrypt}}(Ipfs_{EncryptedFiles}^{get},edk) \to Files$ (4)
5 方法实现

基于本文提出的数据档案保护和共享方法研发了档案数据保护与共享系统, 其实现主要分为区块链智能合约开发、私有IPFS集群搭建、RESTful Service(DApp)开发、数字档案系统研发这4部分.其中,

●  智能合约部分, 首先使用puppeth程序生成创世区块的相关信息Creation.json, 并为数字档案馆联盟链中的初始档案馆分配权威节点; 然后使用go-ethereum[44]客户端, 基于Creation.json创建联盟链中的节点; 最后, 使用go-ethereum客户端进行以太坊公有链的同步, 以便实现进行公有链BAPC合约的调用.本文使用Solidity语言进行BAPC, DICC等合约的开发, 并使用truffle框架进行合约的管理、编译、调试和部署;

●  对于IPFS部分, 本文使用了go-ipfs[45]客户端进行本地私有IPFS集群的搭建, 通过环境变量LIBP2P_ FORCE_PNET的配置启用私有集群模式, 限制仅具有相同swarm.key文件的节点可进行访问;

●  对于RESTful Service(DApp), 本文采用基于Node.js的Web框架Express进行开发, 并通过web3.js实现了对智能合约的调用, 通过js-ipfs-api实现了对私有IPFS的接口调用.

本系统已在中国科学院合肥物质科学研究院档案馆(下属多个研究所, 形成联盟)进行初步试用, 对研究院的基建档案和大科学工程等档案进行保护, 在现有的传统档案管理系统的基础上, 将录入和更新操作的档案信息通过RESTful Service接口同步到区块链上, 并为传统档案管理系统增加了档案的验证、共享和恢复功能.

数字档案验证操作的界面如图 6所示, 档案的修改历史追溯和分享界面如图 7所示; 每个档案馆运行了一个权威节点和多个数据同步节点, 自2018年5月至今档案联盟链已创建1 057 459区块, 保护了10 342条档案信息.

Fig. 6 Interface of verification results of digital archives 图 6 数字档案验证界面

Fig. 7 Interface of digital archives history and sharing 图 7 数字档案历史和分享界面

6 分析与评估 6.1 运行成本分析

假设系统中每月需进行档案保护操作的次数为α, 档案分享操作次数为β, 身份管理操作次数为γ, 则在以太坊公有链上部署智能合约的每月成本为Costethereum, 见公式(5).

$ Cos{t_{ethereum}} = \alpha \times Cos{t_{protection}} + \beta \times Cos{t_{share}} + \gamma \times Cos{t_{identity}} $ (5)

本文提出的联盟链与公有链相结合的方案, 可以将大多数智能合约部署于联盟链中, 在联盟链中部署和调用合约的成本可以忽略不计, 仅需考虑联盟链网络每月的运行成本记为ω.联盟链每进行μ次数据存储操作时调用公有链BDPC合约锚定联盟链中当前的区块快照信息, 锚定频率可以动态调整, 见公式(6).

$Cost_{privateChain}^{ethereum} = \frac{{\alpha + \beta + \gamma }}{\mu }Cos{t_{protection}} + \omega ,\mu > 1$ (6)

在联盟链规模较小时, 可以频繁锚定; 随着联盟链的规模不断扩大, 系统的安全性、稳定性随之提升, 锚定频率也可以逐渐减小.μ参数的值越大, 该方案的经济成本越低, BDPC合约存储的区块高度间隔越大, 对联盟区块链的保护和数据可恢复程度也会降低(如图 8所示)[1].

注:μ表示公有链保护的区块高度间隔, Cost表示系统运行的经济成本, Security表示系统的安全性 Fig. 8 Relations diagram between parameter μ and systemative cost and security 图 8 参数μ与系统成本和安全性关系图

根据EthGasStation的数据统计[46], 在撰写本文时(2018年5月), 以太坊调用智能合约的平均交易费用为8Gwei, 折合成人民币约为0.7元.调用智能合约的交易费用与存储数据的字节数的有关, 为简化计算, 我们忽略该差异, 统一使用平均交易费用.当联盟链的运行成本ω(电力成本)忽略不计时, 公有链和联盟链结合的方案可以将经济成本大约缩减为原来的1/μ, 见公式(7).

$\mu \approx \frac{{Cos{t_{ethereum}}}}{{Cost_{privateChain}^{ethereum}}},\mu > 1$ (7)
6.2 安全性评估

假设联盟链中的区块高度为α的快照信息存储在公有链中高度为β的区块中, 距离当前区块的高度差为h, 若攻击者想要通过分叉的方式替代该区块, 则需要重新计算并生成从第β个区块到当前区块高度的所有区块, 并通过全网节点的验证.假设当前公有区块链中诚实节点的算力为p次哈希每秒, 攻击者控制的节点算力为q次哈希每秒.只要没有大量节点的加入或退出, 新区块的计算难度不会有明显增加.为了方便计算, 假设没有新节点的加入, 且每秒中诚实节点产生新区块的概率为w, 攻击节点获得新区块的概率为u.假设h表示诚实节点与攻击节点区块高度差, 则每秒高度差h有3种可能的结果[28], 即高度差缩小、高度差变大和高度差不变, 每个结果出现的概率分别为P1, P2, P3.假设在t秒内会出现t种结果, 每个结果出现的次数用随机变量X1, X2, X3表示, 其中, X1表示发生的次数为n, X2表示发生的次数为m, X3表示发生的次数为t-m-n.诚实节点与攻击节点的高度差h的变化概率符合多项分布[28].

如在t秒内, 攻击节点想要追上诚实节点, 则需要满足n∈[0, (t-h-1)/2].m=n+h+k, 且1≤kt-2n-h, 其概率见公式(8).

${P_h}(t) = \sum\limits_{n = 0}^{(t - h - 1)/2} {\sum\limits_{k = 1}^{t - 2n - h} {\frac{{t!}}{{m!n!(t - m - n)}}P_1^nP_2^mP_3^{t - m - n}} } $ (8)

其中, P1=w(1-u)表示诚实节点产生新区块, 而攻击节点没有, 即高度差变大的概率; P2=u(1-w)表示攻击节点产生新区块, 而诚实节点没有, 即高度差缩小的概率; P3=1-P1-P2表示两者都产生或都没有产生新区块的概率, 即高度差不变的概率.

根据公式(8)得到攻击节点成功篡改区块数据的概率.如图 9所示, h为攻击者实现数据篡改需要替代的区块数量, 横坐标T为时间(单位:诚实节点发现一个区块的平均时间), 纵坐标P为攻击者篡改数据成功的概率.

Fig. 9 Probability distribution when attackers successfully tampered with block data 图 9 攻击者成功篡改区块数据的概率分布图

由图可知:攻击者成功篡改区块数据的概率会随着区块高度差h的增大而减小.当攻击节点的算力小于诚实节点时, 由于攻击节点需要预先生成新的h个区块, 然后再与诚实节点竞争产生区块, 在刚开始的一段时间内, P会先上升, 然后逐渐减小并最终趋于0;当攻击节点算力为诚实节点的25%、高度差h=4时, 攻击成功的最高概率不到0.01%, 高度差为6和10时, 攻击者成功的概率基本为0;当攻击节点算力为诚实节点的50%、区块高度差h=4时, 攻击者成功的最高概率不到0.05%;当攻击节点算力与诚实节点相当, 在一段时间后, 成功概率逼近35%[28].

在数字档案保护的应用场景中, 篡改档案的操作往往是发生在与利益相关的一些考核过程中, 往往距离档案录入日期较为久远, 因此区块高度差x会为千或万的数量级, 即使攻击节点与诚实节点相当时, 完成这种规模的区块替换操作也是几乎不可能的.由于以太坊激励机制的存在, 假如攻击者拥有如此巨大的算力, 其作为诚实节点所产生区块的奖励也远远大于数据篡改的收益[47].

本方法通过公有链与联盟链的结合实现了一种链式保护机制, 通过公有链BDPC合约锚定联盟链的区块快照信息, 实现对联盟链上数据的保护与验证; 通过联盟链AISC合约存储档案指纹和哈希值的方式, 实现对IPFS中档案对象的保护与验证; 通过IPFS存储加密的原始档案对象, 实现对本地数据库中的档案信息的保护与验证.但若仅采用以太坊公有链的方案, 诚然此方案安全性最高, 但是档案的操作成本也随之变高, 并且操作效率较低(尤其是改变合约状态等操作, 需要公有链的矿工打包数据).此外, 一旦公有链被攻击(虽然概率很低), 档案系统也会受影响; 若仅采用联盟链的方案, 运行的节点相对较少(尤其在运行初期), 系统的安全性和稳定性不如公有链, 还会出现联盟中部分成员共谋造假的风险; 而采用基于联盟链和公有链的方式, 通过第6.1节和第6.2节的分析可以看出:运行PoA共识算法的以太坊联盟链, 本身具备较强的防篡改能力, 此外, 使用高安全性公有链进行额外保护, 还能够防范部分成员共谋造假对联盟链进行攻击的风险, 并且不仅限于单一公有链, 还可以拓展为多条公有链进行协同保护.3种方案相互对比结果见表 3.

Table 3 Comparision between different protection schemes 表 3 不同保护方案对比

7 结语

本文基于智能合约、IPFS、数字签名和混合加密等技术设计了一种基于区块链的档案数据保护与共享方法, 并以此为基础研发了档案数据保护与共享系统.该方法通过智能合约和数字签名技术实现了档案馆联盟的内部自治; 通过公有链与联盟链的结合, 实现了档案数据的保护、验证与恢复; 利用智能合约和IPFS技术实现了档案数据的共享与获取.未来工作中, 我们将就档案数据管理的区块链共识机制开展进一步深入研究.总的来说, 本文中的方案综合考虑了经济成本、安全性、易用性和扩展性等问题, 系统能以较低的经济开销和较少的系统修改, 实现对现有档案管理系统中的档案数据进行高效安全的保护与共享, 为数字档案馆的建设和数字资源的保护提供一些有益的启发.

参考文献
[1]
Zhao Z. Research and design of digital archive management system based on blockchain[M.S. Thesis]. Hefei: University of Science and Technology of China, 2018(in Chinese with English abstract).
[2]
He P, Yu Y, Zhang YF, Bao YK. Survey on blockchain technology and its application prospect. Computer Science, 2017, 44(4): 1-7(in Chinese with English abstract). [doi:10.11896/j.issn.1002-137X.2017.04.001]
[3]
Tschorsch F, Scheuermann B. Bitcoin and beyond:A technical survey on decentralized digital currencies. IEEE Communications Surveys & Tutorials, 2016, 18(3): 2084-2123.
[4]
Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. 2009. https://bitcoin.org/bitcoin.pdf
[5]
Benet J. IPFS-Content addressed, versioned, P2P file system (DRAFT 3). https://raw.githubusercontent.com/ipfs/papers/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf
[6]
Wang DM. The theory and practice of the construction of digital archives in colleges and universities. Journal of Dongbei University of Finance and Economics, 2014(6): 85-88(in Chinese with English abstract). [doi:10.3969/j.issn.1008-4096.2014.06.014]
[7]
Cheng YY. Analysis of Int'l digital archives construction and core operational mechanism. Archives & Construction, 2014, 12: 31-34(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/dayjs201412008
[8]
Cunningham A, Millar L, Reed B, Peter J. Scott and the Australian 'Series' system: Its origins, features, rationale, impact and continuing relevance. In: Proc. of the International Congress on Archives, 2013. 121-144.[doi: 10.3828/comma.2013.1.13]
[9]
Shi ZW. Gradual progress and steady progress-On the construction of Shandong digital archives (room). Shandong Archives, 2013, 3: 10-11(in Chinese with English abstract). http://d.old.wanfangdata.com.cn/Periodical/sdda201303003
[10]
Liu YJ. Research on the construction of digital archive office in China[MS. Thesis]. Hefei: Anhui University, 2017(in Chinese with English abstract).
[11]
Xiao M. Research on the construction of archives services utilization system under the big data environments[MS. Thesis]. Xiangtan: Xiangtan University, 2015(in Chinese with English abstract).
[12]
You SS. The research on the service of Fujian province digital archives information on the basic of cloud computing[MS. Thesis]. Fuzhou: Fujian Agriculture and Forestry University, 2016(in Chinese with English abstract).
[13]
Wang W. Design of file management system based on RFID and study of anti-collision algorithm[MS. Thesis]. Hangzhou: Hangzhou Dianzi University, 2017(in Chinese with English abstract).
[14]
Wang ZD. Precaution measures against archive frauds should be taken at basic levels. China Youth Daily, 20170526(in Chinese). http://zqb.cyol.com/html/2017-05/26/nw.D110000zgqnb_20170526_4-01.htm
[15]
Proof of existence-An online service to prove the existence of documents. 2018. https://docs.proofofexistence.com/
[16]
Merkle RC. A digital signature based on a conventional encryption function. In: Proc. of the Int'l Conf. on the Theory and Applications of Cryptographic Techniques on Advances in Cryptology. Springer-Verlag, 1987. 369-378.
[17]
Verify a chainpoint proof directly using Bitcoin. 2017. https://runkit.com/tierion/verify-a-chainpoint-proof-directly-using-bitcoin
[18]
Azaria A, Ekblaw A, Vieira T, et al. MedRec: Using blockchain for medical data access and permission management. In: Proc. of the Int'l Conf. on Open and Big Data. IEEE, 2016. 25-30.[doi: 10.1109/OBD.2016.11]
[19]
Tsai WT, Yu L, Wang R, Liu N, Deng EY. Blockchain application development techniques. Ruan Jian Xue Bao/Journal of Software, 2017, 28(6): 1474-1487(in Chinese with English abstract). http://www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=5232&flag=1 [doi:10.13328/j.cnki.jos.005232]
[20]
Rifi N, Rachkidi E, Agoulmine N, et al. Towards using blockchain technology for IoT data access protection. In: Proc. of the Int'l Conf. on Ubiquitous Wireless Broadband. IEEE, 2018. 1-5.[doi: 10.1109/ICUWB.2017.8251003]
[21]
Blockchain+public welfare, concept or trend. 2017. http://www.xinhuanet.com/gongyi/2016-12/21/c_129414848.htm
[22]
Baidu's 'Wikipedia' now logs revisions on a blockchain. 2018. https://www.coindesk.com/baidus-wikipedia-now-logs-revisions-on-a-blockchain
[23]
Xue TF, Fu CQ, Wang Z, Wang XY. A medical data sharing model via blockchain. Acta Automatica Sinica, 2017, 43(9): 1555-1562(in Chinese with English abstract). [doi:10.16383/j.aas.2017.c160661]
[24]
Zhang N, Zhong S. Mechanism of personal privacy protection based on blockchain. Journal of Computer Applications, 2017, 37(10): 2787-2793(in Chinese with English abstract). [doi:10.11772/j.issn.1001-9081.2017.10.2787]
[25]
Zhao H, Li XF, Zhan LQ, Wu ZC. Data integrity protection method for microorganism sampling robots based on blockchain technology. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2015, 43(s1): 216-219(in Chinese with English abstract). [doi:10.13245/j.hust.15s1052]
[26]
Li XF, Zhao H, Li F, Tan HB, Sun YN, Liu B. Electronic document anti-tampering method. Chinese Patent ZL201410436231.7, 2014-08-29(in Chinese).
[27]
Zhao H, Zhu XY, Li XF, Tan HB, Wang WD, Zhang ZX, Lv B, Zhou T, Zhao Z, Wang L, Sheng NZ. A digital archives management method and system based on blockchain technology. Chinese Patent CN201711226383.4, 2017-11-29(in Chinese).
[28]
Sheng NZ, Li F, Li XF, Zhao H, Zhou T. Data capitalization method based on blockchain smart contract for internet of things. Journal of Zhejiang University (Engineering Science), 2018, 52(11): 1-10(in Chinese with English abstract). [doi:10.3785/j.issn.1008-973X.2018.11.000]
[29]
[30]
Shao QF, Jin CQ, Zhang Z, Qan WN, Zhou AY. Blockchain:Architecture and research progress. Chinese Journal of Computers, 2018, 41(5): 969-988(in Chinese with English abstract). [doi:10.11897/SP.J.1016.2018.00969]
[31]
He YJ, Gong GC. Research on blockchain technology in security related fields of Internet of things. Telecom Engineering Technics and Standardization, 2017, 30(5): 12-16(in Chinese with English abstract). [doi:10.13992/j.cnki.tetas.2017.05.004]
[32]
King S, Nadal S. PPCoin: Peer-to-peer crypto-currency with proof-of-stake. 2012. https://peercoin.net/assets/paper/peercoin-paper.pdf
[33]
DPOs consensus algorithm-The missing white paper. 2016. https://steemit.com/dpos/@dantheman/dpos-consensus-algorithm-this-missing-white-paper
[34]
[35]
[36]
Christidis K, Devetsikiotis M. Blockchains and smart contracts for the Internet of things. IEEE Access, 2016. [doi:10.1109/ACCESS.2016.2566339]
[37]
Cruz JP, Kaji Y, Yanai N. RBAC-SC:Role-based access control using smart contract. IEEE Access, 2018. [doi:10.1109/ACCESS.2018.2812844]
[38]
Buterin V. A next-generation smart contract and decentralized application platform. 2014. https://github.com/ethereum/wiki/wiki/White-Paper.
[39]
Chen Y, Li H, Li K, et al. An improved P2P file system scheme based on IPFS and blockchain. In: Proc. of the Int'l Conf. on Big Data. IEEE, 2017. 2652-2657.[doi: 10.1109/BigData.2017.8258226]
[40]
[41]
Baumgart I, Mies S. S/Kademlia: A practicable approach towards secure key-based routing. In: Proc. of the 2007 Int'l Conf. on Parallel and Distributed Systems, Vol.2. IEEE, 2007. 1-8.[doi: 10.1109/ICPADS.2007.4447808]
[42]
Cohen B. Incentives build robustness in Bittorrent. In: Proc. of the Workshop on Economics of Peer-to-Peer Systems, Vol.6. 2007. 68-72.
[43]
Johnson D, Menezes A, Vanstone S. The elliptic curve digital signature algorithm (ECDSA). Int'l Journal of Information Security, 2001, 1(1): 36-63. [doi:10.1007/s102070100002]
[44]
[45]
IPFS documentation. https://docs.ipfs.io/
[46]
[47]
Antonopoulos AM. Mastering Bitcoin: Unlocking Digital Cryptocurrencies. 1st ed. Sebastopol: O'Reilly Media, Inc., 2014. 174-177.
[1]
赵哲.基于区块链的档案管理系统的研究与设计[硕士学位论文].合肥: 中国科学技术大学, 2018.
[2]
何蒲, 于戈, 张岩峰, 鲍玉凯. 区块链技术与应用前瞻综述. 计算机科学, 2017, 44(4): 1-7. [doi:10.11896/j.issn.1002-137X.2017.04.001]
[6]
王冬梅. 高校数字档案馆建设的理论与实践. 东北财经大学学报, 2014(6): 85-88. [doi:10.3969/j.issn.1008-4096.2014.06.014]
[7]
程妍妍. 国外数字档案馆建设及核心运行机制分析. 档案与建设, 2014, 12: 31-34. http://d.old.wanfangdata.com.cn/Periodical/dayjs201412008
[9]
史志伟. 循序渐进稳步进取——谈山东数字档案馆(室)建设. 山东档案, 2013, 3: 10-11. http://d.old.wanfangdata.com.cn/Periodical/sdda201303003
[10]
刘英俊.我国数字档案室建设研究[硕士学位论文].合肥: 安徽大学, 2017.
[11]
肖敏.大数据环境下档案利用服务体系建设研究[硕士学位论文].湘潭: 湘潭大学, 2015.
[12]
游姗姗.基于云计算的福建省数字档案馆信息服务研究[硕士学位论文].福州: 福建农林大学, 2016.
[13]
王伟.基于RFID的档案管理系统设计及防碰撞算法研究[硕士学位论文].杭州: 杭州电子科技大学, 2017.
[14]
王钟的.警惕档案造假要从基层抓起.中国青年报, 20170526. http://zqb.cyol.com/html/2017-05/26/nw.D110000zgqnb_20170526_4-01.htm
[19]
蔡维德, 郁莲, 王荣, 刘娜, 邓恩艳. 基于区块链的应用系统开发方法研究. 软件学报, 2017, 28(6): 1474-1487. http://www.jos.org.cn/jos/ch/reader/view_abstract.aspx?file_no=5232&flag=1 [doi:10.13328/j.cnki.jos.005232]
[21]
区块链+公益, 概念还是趋势.2017. http://www.xinhuanet.com/gongyi/2016-12/21/c_129414848.htm
[23]
薛腾飞, 傅群超, 王枞, 王新宴. 基于区块链的医疗数据共享模型研究. 自动化学报, 2017, 43(9): 1555-1562. [doi:10.16383/j.aas.2017.c160661]
[24]
章宁, 钟珊. 基于区块链的个人隐私保护机制. 计算机应用, 2017, 37(10): 2787-2793. [doi:10.11772/j.issn.1001-9081.2017.10.2787]
[25]
赵赫, 李晓风, 占礼葵, 吴仲城. 基于区块链技术的采样机器人数据保护方法. 华中科技大学学报(自然科学版), 2015, 43(s1): 216-219. [doi:10.13245/j.hust.15s1052]
[26]
李晓风, 赵赫, 李芳, 谭海波, 孙怡宁, 刘冰.一种电子文件防篡改方法.ZL201410436231.7[发明专利], 2014-08-29.
[27]
赵赫, 朱晓煜, 李晓风, 谭海波, 王卫东, 张中贤, 吕波, 周桐, 赵哲, 王丽, 盛念祖.一种基于区块链技术的数字档案管理方法及系统. CN201711226383.4[发明专利], 2017-11-29.
[28]
盛念祖, 李芳, 李晓风, 赵赫, 周桐. 基于区块链智能合约的物联网数据资产化方法. 浙江大学学报(工学版), 2018, 52(11): 1-10. [doi:10.3785/j.issn.1008-973X.2018.11.000]
[30]
邵奇峰, 金澈清, 张召, 钱卫宁, 周傲英. 区块链技术:架构及进展. 计算机学报, 2018, 41(5): 969-988. [doi:10.11897/SP.J.1016.2018.00969]
[31]
何渝君, 龚国成. 区块链技术在物联网安全相关领域的研究. 电信工程技术与标准化, 2017, 30(5): 12-16. [doi:10.13992/j.cnki.tetas.2017.05.004]