APP下载

基于CP-ABSE 的农机社会化服务联盟链隐私匹配方案

2023-08-15阮俊虎

农业工程学报 2023年11期
关键词:农机手密文合约

景 旭 ,谭 菡 ,蒋 炎 ,阮俊虎

(1. 西北农林科技大学信息工程学院,杨凌 712100;2. 西北农林科技大学经济管理学院,杨凌 712100)

0 引 言

中国农业生产呈现出“大国小农”、农田碎片化和劳动力缺失等特征,农机社会化服务[1-2]能够解决农户难以承担农机高昂的购买和维护费用的难题,促进小农户和现代农业的有效衔接,有利于实现农业增效、农民增收。基于互联网的农机社会化服务平台[3-4](以下简称农服平台),如中国农业社会化服务平台、嘀地农机、全国农机化信息服务平台等,汇集了农田作业服务需求和服务资源,打破农户与农机手之间的信息壁垒,提供农事生产服务对接途径。鉴于农业生产的地域性和季节性等特征,部分地区的农机资源会出现冗余或稀缺现象,仅靠本区域内农机调度难以平衡供需关系[5]。多个农服平台联合共享任务和农机手资源,实现农机资源的协调调度[6-7],能够提高农机作业效率,提升农业全产业链服务能力,增加集约化服务规模效益。但在多平台联合场景中,如果用户的地理位置[8]、任务偏好[9]、农田作业需求等敏感信息以明文形式共享,可能会导致隐私泄露问题,影响农服平台之间合作的积极性。因此,研究农机社会化服务联合平台的隐私匹配具有重要意义。

关于多方联合场景中的隐私匹配,国内外学者开展了广泛的研究。QI 等[10]通过改进局部敏感哈希技术,在保证用户敏感数据隐私的前提下,整合多平台数据,实现了分布式的推荐服务;SOBITHA 等[11]将同态加密技术应用于数据挖掘中,提出了一种个性化推荐方案,但上述两种方案都仅关注用户敏感数据的保护。SHU 等[12-13]使用可搜索加密技术实现任务和工人之间的匹配,保护了被推荐内容和用户双方敏感数据的隐私,但依靠集中式服务器提供数据共享和计算,存在单点故障[14]、易遭受内外部恶意攻击和服务器不可信等问题[15]。牛淑芬等[16-17]将可搜索加密与代理重加密技术应用于多家医院联合场景中,在区块链上实现了电子病历关键字的可靠搜索。GUO 等[18]设计了一个基于智能合约的匹配协议,使用区块链技术在去中心化的联合众包系统中实现了安全任务推荐方案。综上可以看出,现有研究多集中在共享敏感数据前通过加密保证隐私,然而,以密文形式共享数据会削弱数据的可用性[19],且难以同时保证数据和用户双方的隐私;通过集中式服务器共享数据、提供匹配服务,很难被联盟的各方信任。

区块链[20]作为一个多方共识、不可篡改的分布式账本,由区块链网络中的所有节点共同维护数据,能够在多方联合场景中实现去中心化可信架构;链上智能合约的执行过程对所有节点透明,在给定的输入下,输出结果稳定;但通过区块链共享密文数据难以实现链上数据的可用性与数据访问权限的设置。密文策略的属性基可搜索加密技术(ciphertext-policy attribute-based searchable encryption,CP-ABSE)[21]能够保证数据加密条件下的可检索性,实现一对多的细粒度数据共享。

基于联盟链和CP-ABSE,本文提出一种农机社会化服务联合平台隐私匹配方案。多个农服平台基于联盟链组成去中心化的信息共享平台,各平台将农田作业任务密文和资源调用等信息发布至联盟链中,保证数据的真实性和完整性;通过CP-ABSE 加密任务数据,保护农户和农机手双方敏感数据的隐私,在各农服平台对合作平台共享的任务数据和农机手的搜索关键字一无所知的情况下,实现任务密文数据检索和细粒度的访问控制;隐私匹配服务转移到智能合约,窃听者无法猜出关键字,可保证搜索返回结果可信。本研究破解了农服平台间的“数据孤岛”问题,能够推动农服平台之间的合作,对于推动农机社会化服务的推广具有重要的意义。

1 关键技术

1.1 CP-ABSE

CP-ABSE 是由密文策略的属性基加密[22]与可搜索加密技术[23-24]相结合的密码学技术,能够同时实现一对多的细粒度访问控制和密文数据检索功能,平衡了数据的隐私性和可用性。CP-ABSE 方案[25-26]中数据所有者可以通过定义密文的访问策略赋予访问者搜索权限,广泛应用于多数据所有者和访问者模型。

1.2 区块链

区块链中集成了分布式数据库、共识机制[27]、P2P网络、智能合约[28]和密码学等技术,广泛应用于提供可信服务场景。按照开放程度,区块链可分为公有链、联盟链和私有链。联盟链[29]网络由成员共同维护,适用于多组织间的数据共享。智能合约本质上是一段运行在区块链上的计算机程序,可以处理较为复杂的业务逻辑。

2 农机社会化服务联合平台隐私匹配方案

2.1 平台架构

农机社会化服务联合平台使用联盟链作为连接各农服平台的枢纽,将相互独立的多个系统组成一个去中心化的联盟。各方能够将农田作业任务共享给合作平台,实现跨平台的农机手资源调用。联合平台主要包括证书授权(certificate authority,CA)中心、农户、农机手、农服平台和联盟链5 个实体,如图1 所示。

图1 基于联盟链的农机社会化服务联合平台架构Fig.1 Agricultural machinery socialization service federated platform architecture based on blockchain

1)CA 中心:全局证书机构,负责生成系统主密钥、系统公钥和农机手私钥。

2)农户:有农田作业需求的用户,通过农服平台在联盟链上发布农田作业任务。

3)农机手:具有闲置农机资源,提供农机服务的农机专业户。农机手使用私钥生成搜索令牌,通过农服平台调用智能合约匹配链上任务。

4)农服平台:农户和农机手对接的平台,是独立的企业或组织,在本地数据库中维护用户和任务的明文数据。主要负责3 种业务,一是当平台内的农服资源无法满足农田作业任务时,加密任务数据,调用上链智能合约发布至联盟链中;二是接收本平台内农机手提交的搜索令牌,作为参数调用匹配智能合约;三是负责跨平台农田作业合同的签订。

5)联盟链:由农服平台构成联盟链网络,链上智能合约提供任务匹配服务,联盟链账本记录任务信息和平台之间的资源调用数据。

2.2 方案总体设计

在多方联合场景中,集中式服务器难以被各参与方同时信任,因此本方案基于联盟链构建去中心化的联合平台。由智能合约执行任务匹配,可信CA 中心负责密钥服务。

针对多平台联合场景中敏感共享数据的隐私性和可用性需求,本文基于CP-ABSE 技术构建匹配方案。将农田作业任务类型和农机手的任务偏好之间的匹配转化为加密关键字和密文索引之间的匹配问题;通过数据所有者和访问者之间细粒度访问控制,实现密文条件下农田作业需求与服务资源之间的匹配。

在农业生产中,农田作业任务具有地域性和大量突发性的特征,而农机手作为农机专业合作社或农机租赁企业,能够为同区域内多个农田作业任务提供所需的服务资源。本文方案将多个农田作业任务编号以任务集合的形式与任务密文共同存储在联盟链账本中,成功匹配一条任务密文后返回多个任务编号,减少搜索令牌与任务密文的匹配次数,提高匹配智能合约的效率。

综上,农机社会化服务联合平台隐私匹配方案主要由系统建立、农机手注册、任务发布、任务匹配和跨平台农田作业等五个阶段构成,如图2 所示。

图2 匹配方案流程Fig.2 Task matching process

2.3 方案详细流程

农机社会化服务联合平台隐私匹配方案详细流程如下。

2.3.1 系统建立

本阶段分为全局属性设置和系统初始化2 个步骤。

1)设置全局属性集U

联合平台各方共同设置一个全局属性集U={attr1,attr2,···,attrn},用来规范多平台联合时农机手属性和任务访问权限的设置,n为全局属性集合大小,attri为U中的一个属性,每个attri都有两个值vi和¬vi,vi和¬vi为系统建立阶段生成的随机数, 1≤i≤n。属性或访问策略中包含属性attri时,attri=vi;否则attri=¬vi。

2)系统初始化

CA中心选取一个安全参数 λ,输出系统公钥Kpub和系统主密钥Kpri。

CA中心首先生成两个阶数为p的乘法循环群G和GT,g为G的生成元,e:G×G→GT是一个双线性映射,Zp是p阶循环群。其次,定义单向哈希函数H:{0,1}*→Zp,选取随机数a,b,c∈Zp和随机数集合{r1,r2,···,r2n}∈Zp、{x1,x2,···,x2n}∈G。最后,计算ui=,yi=e(xi,g),Kpub=和Kpri=(a,b,c,ri,xi),其中1≤i≤2n。系统主密钥Kpri由CA 中心保管,系统公钥Kpub公开。

2.3.2 农机手注册

本阶段分为属性和访问策略设置、农机手私钥申请2 个步骤。

1)农机手属性和任务访问策略设置

设Sur为农机手ur的属性集,为农田作业任务的访问策略。由于农机手属性和任务访问策略采用与门访问结构,和均可表示为n比特位的字符串,即分别表示ur和tk中的一个属性,与attri相同,和值为vi或¬vi。

若∀i∈[1,n] ,∈Ptk,即=,则农机手属性Sur满足任务访问策略Ptk。

2)农机手私钥申请

农服平台IDm中的农机手ur根据属性集Sur向 CA中心申请私钥。C A中心根据Sur、系统公钥Kpub和系统主密钥Kpri生成农机手的私钥。

2.3.3 任务发布

农服平台负责生成任务密文,调用上链智能合约将加密任务发布至联盟链中。

农服平台使用系统公钥Kpub加密农田作业任务,设任务编号为tk,任务访问策略为Ptk,任务类型为关键字w。农服平台选取随机数t1,t2∈Zp,计算C1tk=gct1,C2tk=ga(t1+t2)gbH(w)t1和对于Ptk中的每个属性,当=vi时,=ui=g-ri;当=¬vi时,=ui+n=g-ri+n。加密后的任务密文为

农服平台调用上链智能合约将任务密文与对应任务集合T发布至联盟链中,T中包含一个或多个农田作业任务编号,即T=

2.3.4 任务匹配

本阶段分为搜索令牌生成、智能合约执行任务匹配2 个步骤。

1)搜索令牌生成

农机手ur使用系统公钥Kpub和私钥将任务偏好w′生成搜索令牌。农机手选取随机数s∈Zp,计算通过私钥计算最终搜索令牌

2)智能合约执行任务匹配

token

农服平台收到农机手提交的搜索令牌后,调用匹配智能合约,判断搜索令牌与任务密文是否匹配。

2.3.5 跨平台农田作业

由于跨平台的农机手资源调用涉及平台间资源整合和收益分配,因此,首先由任务发布平台和接收平台达成一致后签订跨平台农田作业合同。然后,任务发布平台向联盟链提交合同单,任务接收平台验证通过后上链。农机手完成农田作业任务后,通过所在平台将任务完成证明交付给任务发布平台。任务发布平台审核后,将链上合同单中的任务状态变更为已完成。

在匹配方案实际应用中,农机类型和农机手的属性不是固定的,联合平台可周期性的更新。更新流程如下:1)CA 中心更新系统公钥和系统主密钥;2)农机手将更新后的属性集合提交给CA 中心以更新私钥;3)各农服平台更新链上任务密文。

2.4 数据结构

联盟链账本中链上数据以Key-Value 的方式存储。Value 值由任务密文C=与对应的任务集合T=组成,即Value=,T中包含多个任务编号tk。Key 值由农服平台编号IDm与平台发布的链上任务数量task_n共同组成,即Key=IDm+task_n。

链上存储的跨平台农田作业合同单中,任务内容的哈希值Fhash和任务状态Fstate作为Value 值,即Value=;Key 值由任务发布平台、任务接收平台IDm和双方已达成的交易数量trade_n共同组成,Key=+IDm+trade_n。跨平台农田作业合同签订时,任务状态Fstate为未完成状态F,任务发布平台在确认任务完成后更改为已完成状态T。

2.5 智能合约设计

农机社会化服务联合平台隐私匹配方案中,设置任务上链、匹配等智能合约。智能合约与联盟链账本的交互通过应用程序接口(application programming interface,API)的调用实现,查询操作调用GetState API,上链和更新操作调用PutState API。

2.5.1 任务上链智能合约

农田作业任务具有时效性,若平台内农服资源短缺,将任务加密后调用上链智能合约发布至联盟链,并更新与链上加密任务对应的本地数据库。任务上链流程如图3 所示。

图3 任务上链流程Fig.3 Task data upload process

在图3 中,农服平台在将任务发布至联盟链前,首先检索本地数据库,判断链上是否存在同类型任务密文,即是否存在与待发布任务具有相同关键字和访问策略的链上加密任务,若存在,则更新链上任务集合 ;若不存在,则将任务加密后发布至联盟链中。最后,更新本地数据库。

T

2.5.2 匹配智能合约

农服平台以农机手搜索令牌为参数调用匹配智能合约。匹配智能合约负责搜索令牌与任务密文间的匹配,运行流程如图4 所示。

图4 匹配智能合约运行流程Fig.4 The process of match smart contract

在图4 中,智能合约从联盟链账本中获取任务密文后,首先将任务密文从String 类型转换为密文数据结构,然后计算搜索令牌与任务密文是否正确匹配;若匹配,智能合约将任务集合T和任务Key 值返回给平台,否则返回null。

3 算法分析

3.1 正确性分析

农机社会化服务联合平台隐私匹配方案中,农机手任务偏好与任务类型相匹配,且属性满足任务访问策略时,搜索令牌token与密文C在匹配阶段的计算如下:

3.2 安全假设

在许多基于区块链的研究[30-31]中,CA 中心均被假设为可信的,用来保证密钥的安全生成与分发,因此,本文假设CA 中心是诚实的,会按照协议分发密钥和系统参数,通过安全信道传输数据。

参与构成联盟链的各农服平台通常为较大的企业或组织,理解信誉的重要性,因此假设农服平台是半诚实的,会按照协议的执行,但可能会试图从链上共享密文中推断额外信息。

农机手不会主动泄露自己的私钥。

3.3 安全性分析

1)数据的完整性

农田作业任务密文、跨平台农田作业合同单等存储在联盟链账本中,联盟链分布式数据存储、多方维护、共识确认等特性保证了链上账本中数据不可被篡改,从而保证了数据的完整性。

2)数据的机密性

文献[21] 中选择关键字攻击游戏证明,如果敌手能够在多项式时间内以不可忽略的优势ε赢得游戏,则挑战者可以在一个多项式时间内以不可忽略的优势解决离散对数(discretelogarithm,DL)问题,因此本文使用CP-ABSE算法[21]保证了链上密文在选择关键字攻击下具有不可区分性。在3.2 节的安全假设下,各平台无法从链上共享的密文中获知更多的额外信息,保证了数据的机密性。

3)匹配结果的可信性

本文方案中,搜索令牌由农机手生成,能够与任意平台发布的任务密文匹配;任务匹配通过智能合约以公开透明的方式进行;匹配结果不会存储在联盟链帐本中,避免了被动攻击,因此,匹配结果具有可信性。

4 试验与分析

4.1 测试环境

1)本文在CPU 型号为i7-7700HQ 且搭载Windows10的设备中进行测试,使用VMware Workstation 构建2 核2 处理器的虚拟机,虚拟机运行内存为6 GB,硬盘大小为80 GB。

2)联盟链网络使用Hyperledger Fabric 2.2 搭建,部署3 个orderer 节点为排序节点;部署peer0.org1.federate.cn、peer1.org1.federate.cn、peer0.org2.federate.cn、peer1.org2.federate.cn 等4 个peer 节点充当记账节点,分别属于两个组织org1 和org2,每个组织中的peer0 节点作为锚节点,负责与其他组织共享信息;共识算法选用raft;状态数据库采用levelDB;单个区块的最大交易数为10 笔,最大打包时间间隔为2 s,最大字节数为10 MB。

3)CP-ABSE 算法基于密码库jpbc v2.0.0 (http://gas.dia.unisa.it/projects/jpbc)实现,使用Type A 型素数阶椭圆曲线y2=x3+x。系统公钥、系统主密钥、密文、私钥和搜索令牌的数据结构主要通过Zr、G1、G2和GT群构造,算法执行过程调用密码库中powZn 和mul 等API。

4)通过区块链基准测试工具Hyperledger Caplier 测试性能。

4.2 功能测试与对比

1)功能测试

本文基于CP-ABSE 构造的农机社会化服务联合平台隐私匹配方案功能测试如图5 所示。

图5 功能测试Fig.5 Function test

由CA 中心负责生成的系统主密钥和系统公钥如图5a 所示。假设农机手属性集S={“甘肃省”, “插秧机”},农机手向CA 中心申请属性私钥如图5b 所示。

以平台A 在联盟链中发布加密任务为例,设农田作业任务类型w={“小麦除草”},访问策略P={“陕西省”,“大型割草机”},任务编号tk为277,平台A 在联盟链中已发布的任务数量为37 且未上链同类型农田作业任务。平台A 调用函数compareToList 检索本地数据库DB_Task,由于联盟链中账本数据以Key-Value 的形式存储,此时任务Key 值为“A38”,Value 值包括农田作业任务密文C和任务集合T,Value={C,“277”},如图5c 所示。

以平台B 中农机手匹配链上任务为例,假设该农机手任务偏好w′={“小麦除草”}。农机手使用私钥生成搜索令牌token,并发送给所在平台B,如图5d 所示。平台B 将搜索令牌token作为参数,调用智能合约searchcc匹配链上密文,返回密文Key 值和任务集合T,如图5e所示。

平台B 中农机手接取平台A 发布的农田作业任务,通过Hyperledger explorer 显示的跨平台农田作业合同单如图5f 所示。

2)功能对比

本文方案与文献[10,14-15,18] 的功能性对比如表1 所示。

表1 功能性对比Table 1 The comparison of performance

由表1 可以看出,方案1[10]和方案2[14]无法实现密文数据搜索功能,方案2[14]、方案3[15]和方案4[18]均不能实现细粒度的访问控制,且方案4[18]需要依靠代理进行密文的安全转换。表1 中文献所提方案均满足多方数据共享场景中对敏感数据的隐私保护需求,通过与以上方案对比,表明本文方案在功能性上具有一定的优势。

4.3 性能测试

本节对算法各阶段进行数值模拟实验,通过改变全局属性的数量来分析算法的效率,全局属性数量分别取值50、100、150、200,测试包括本地性能测试和链上性能测试两个部分。

1)本地性能测试

本地性能测试的实验结果取算法运行50 次的平均值,如图6 所示。

图6 本地性能测试Fig.6 Local performance test

由图6a 可以看出,系统构建算法和私钥生成算法的运行时间与全局属性数量线性相关。当全局属性数量为50 时,系统构建算法和私钥生成算法运行时间分别约1.2 和0.6 s,满足业务简单的联合平台的应用需求;当全局属性数量为200 时,系统构建算法和私钥生成算法运行时间分别约8 和2.5 s,基本满足业务相对复杂的联合平台的应用需求。

由图6b 可以看出,当全局属性数量发生变化时,搜索令牌生成算法的计算开销基本稳定在60 ms 左右,数据加密算法的计算时间分布在60~80 ms 区间内,两种算法运行时间较低,满足联合平台中任务发布和农机手生成搜索令牌两种运行次数较多的业务需求。

2)链上性能测试

链上性能测试中将交易总量设置为5 000,以平均时延作为性能评估指标,取5 次测试的平均值。实验结果表明匹配智能合约的平均时延约为250 ms,不会随着全局属性个数的增加而改变。因为CP-ABSE 算法生成的密文长度恒定,匹配智能合约的计算过程与全局属性数量无关。

5 结 论

本文基于联盟链构造了农机社会化服务联合平台,使用CP-ABSE 技术设计并实现了联合平台中保护隐私的匹配方案。本方案使用智能合约提供任务匹配服务,保证匹配结果的可信性;基于CP-ABSE 实现任务发布方和农机手双方敏感数据加密条件下的可搜索性,农户可以自主设置访问策略,达到细粒度的访问控制。

安全性分析表明,本方案可以保证区块链账本中敏感共享数据在选择关键字攻击下的不可区分性,保证了数据完整性和机密性。基于Hyperledger Fabric 构建了农机社会化服务联合平台原型系统,功能测试结果表明,该方案能够实现数据加密情况下,区块链中安全、准确和细粒度的跨平台匹配;性能测试结果表明,算法的运行效率基本满足联合平台的应用需求。

本文基于CP-ABSE 技术提出的隐私匹配方案在农机社会化服务联合平台中具有可行性和有效性,满足数据隐私性、完整性和可信性的需求以及平台的性能要求,但在改进和优化方面仍然存在一些可行的技术点,如多关键字搜索、可追责性等。多关键字搜索可提高搜索的准确性和效率,提升用户的搜索体验,具有更高的实用性;可追责CP-ABSE 能够增强联合平台对私钥泄露问题的监测和追踪能力。

猜你喜欢

农机手密文合约
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
农机手职业病患病原因及防治措施
一种基于密文分析的密码识别技术*
江南春·农机手
云存储中支持词频和用户喜好的密文模糊检索
浅谈阿勒泰地区加强农机手技能培训的几点做法
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望
高青农机手网上选“机”