一种联邦学习环境下基于区块链的数据安全访问方法技术领域
本发明属于通信技术领域,涉及信息安全与机器学习技术,更进一步涉及一种联邦学习环境下基于区块链的数据安全访问方法,可在使用联邦学习的各种场景中进行数据访问控制。
背景技术
随着大数据时代的到来,用户个人数据量成指数增长,导致本地机器学习数据存储和计算的开销逐渐增加,当本地计算能力不足以支撑用户的业务要求时,联邦学习随之产生。联邦学习是一种由谷歌提出的协作人工智能技术,其最开始的目的是解决手机用户在本地更新模型的问题,主要思想是利用分布式架构将本地数据集和模型作为一个子更新构建一个机器学习模型,加速模型训练速度,避免直接的隐私泄露。联邦学习在能够保护数据和终端信息安全的前提下,解决本地存储限制和计算力不足问题,实现多参与方或多计算结点之间高效率的机器学习。随着联邦学习优越性逐渐被认可,各类学者将其广泛应用于语音识别,电子健康等各种应用场景中。特别的,由于联邦学习可使用的机器学习算法没有局限性,也就是说它可以适配市面上大多数机器学习算法,包括神经网络、随机森林等。联邦学习有望成为下一代人工智能协同算法和协作网络的基础。
密文策略属性加密CP-ABE(Ciphertext-Policy Attribute-Based Encryption)方法是实现多方参与的访问控制主要技术之一,特别是在规模庞大且用户身份未知的情形下尤为适用。区块链作为一个去中心化、不可篡改、公开透明的分布式平台,一直被广泛关注,特别是基于以太坊结构的图灵完备的智能合约更弥补了早期如比特币等平台无法实现复杂函数功能的不足,但是区块链的存储限制使得其对于大规模数据的支持存在问题。
在申请号为CN201910774155.3名称为“基于联邦学习的疾病数据处理方法、装置、设备及介质”和申请号为CN201910872625.X名称为“一种联邦学习训练数据隐私性增强方法及系统”的两份专利申请文件中,均对联邦学习的应用以及交互数据的安全性进行了探讨,然而并未提及对多方环境中数据的访问控制。联邦学习框架中用户上传的数据能够被所有人访问在实际应用场景中显然是不合理的,用户应该具有其数据的绝对控制权,即可以指定哪些对象具有访问其数据的权利。
发明内容
本发明的目的在于针对现有技术中的数据安全访问控制问题,在不影响联邦学习训练的前提下,提出了一种联邦学习环境下基于区块链的数据安全访问方法。
本发明将密文策略属性加密CP-ABE、区块链和星际文件系统IPFS相结合,使得整个联邦学习过程透明公开且可追溯,增强了联邦学习安全性;同时,我们根据区块链的特性,在交易数据中添加版本标识,实现联邦学习中的版本管理,使联邦学习可以方便的进行数据回溯和模型回滚。
为了达到上述目的,本发明具体包括如下步骤:
(1)将区块链结点作为星际文件系统IPFS的结点,使区块链具有星际文件系统IPFS存储数据和传输数据的能力;
(2)密钥生成中心KGA获取系统公钥PK和主密钥MSK;
(3)密钥生成中心KGA对智能合约进行初始化操作,并将智能合约部署到区块链上,通过智能合约在区块链中上传系统公钥PK;
(4)用户对数据进行本地训练,并将训练结果加密上传:
(4.1)用户向密钥生成中心KGA发送申请Ruser进行注册,注册后成为合法用户:
Ruser={attri,Addi,time}
其中,attri表示用户想要申请的属性集合,Addi表示区块链对用户生成的唯一标识地址,time代表提出申请的时间戳;
(4.2)密钥生成中心KGA收到用户发送的申请Ruser后,首先生成批准授予的属性集合attri′,再采用密钥生成算法生成用户私钥SK:
SK←KenGen(attri′,MSK),
并将生成的用户私钥SK发送给用户;
(4.3)用户使用本地训练模型获取训练后的数据E,将其存放在本地,并通过星际文件系统IPFS生成数据E的存放地址A和时间戳T;
(4.4)用户通过密文策略属性加密CP-ABE算法对用户数据存放地址A和时间戳T进行加密,得到用户密文CT:
CT←Encrypt(PK,(A,T),Λ,Δt),
其中,Λ为用户设定的访问结构,Δt为指定的访问结构有效时间;
(4.5)用户生成版本号V,并将用户密文CT与版本号V上传到区块链;
(5)服务器获得所需版本的用户上传数据,对其进行集中训练得到模型训练结果,并将该训练结果更新到区块链上,具体按照如下步骤进行:
(5.1)服务器向密钥生成中心KGA发送申请Rsr进行注册,注册后成为合法用户:
Rsr={attrj,Addj,time,ζ}
其中,attrj表示服务器想要申请的属性集合,Addj表示区块链对服务器生成的唯一标识地址,time代表提出申请的时间戳,ζ表示服务器申请标识。
(5.2)密钥生成中心KGA收到服务器发送的申请Rsr后,首先生成批准授权属性集合attrj′,然后执行密钥生成算法生成服务器私钥SK*:
SK*←KenGen(attrj′,MSK),
并将生成的服务器私钥SK*发送给服务器;
(5.3)密钥生成中心KGA通过智能合约向全网标识服务器地址;
(5.4)服务器从区块链获取需要的用户密文CT,使用服务器私钥SK*对密文CT进行解密操作,获得用户数据地址A和时间戳T:
(A,T)←Decrypt(PK,SK*,CT);
(5.5)服务器通过星际文件系统IPFS获取用户存储在本地的数据E,对其进行集中训练获得最终结果并存储,根据最终结果生成服务器数据地址A′和时间戳T′;
(5.6)服务器采用密文策略属性加密CP-ABE算法对服务器数据地址A′和时间戳T′进行加密操作,得到服务器密文CT′:
CT′←Encrypt(PK,(A′,T′),Λ′,Δt),
其中,PK为系统公钥,Λ′为服务器指定的访问结构;
(5.7)服务器将其生成的服务器密文CT′和版本号V上传到区块链;
(6)用户解密服务器上传的数据,并更新本地模型:
(6.1)用户通过智能合约定位所需服务器地址,根据版本号V获取服务器更新数据,即服务器密文CT′,使用自己的私钥SK对密文CT′进行解密操作,获得服务器数据地址A′和时间戳T′:
(A′,T′)←Decrypt(PK,SK,CT′);
(6.2)用户使用服务器数据地址A′和时间戳T′通过星际文件系统IPFS获取服务器最新训练结果,更新本地训练模型。
本发明与现有技术相比,具有如下优点:
第一、由于本发明采用密文策略属性加密CP-ABE,使用户加密对应于一个访问结构、解密密钥对应于属性集合,从而可以对用户和服务器提供基于属性的细粒度访问控制,在不影响联邦学习的前提下引入数据的访问控制,保证了用户对自己数据的绝对控制权;
第二、由于本发明将数据存储于区块链上,使得用户和服务器对数据进行的更改操作会被诚实的记录,从而保证了数据的安全性;同时由于区块链上数据具有不可篡改的特性,可以支持联邦学习进行模型的回滚,方便进行版本管理;当用户规模增大时,可以使用钱包代理等方式,使得系统整体的可扩展性得到增强;此外,区块链的挖矿算法可以提供给用户一个激励机制,从而能够促使用户上传更多有效信息;
第三、由于本发明采用星际文件系统IPFS,将际文件系统IPFS与区块链相结合的做法,可有效解决区块链的存储限制问题;同时在进行密文策略属性加密CP-ABE进行加密操作时设置访问结构有效时间,减少了撤销CP-ABE属性所需的消耗,使得系统性能得到明显提高。
附图说明
图1是本发明的整体步骤示意图;
图2是本发明中访问控制联邦学习的流程图;其中(a)为用户训练上传数据的流程图,(b)为服务器训练上传数据的流程图,(c)为用户更新本地数据的流程图;
图3是本发明中智能合约的逻辑示意图。
具体实施方式
以下参照附图和实施例,对本发明作进一步详细说明:
参照图1,本发明的一种联邦学习环境下基于区块链的数据安全访问方法,主要包括:初始化、用户训练上传数据、服务器训练上传数据以及用户更新本地数据四个部分。
第一部分:初始化。包括区块链、智能合约以及密钥生成中心的初始化。
步骤1:将区块链结点作为星际文件系统IPFS的结点,搭建一个区块链和IPFS平台,使区块链具有星际文件系统IPFS存储数据和传输数据的能力。初始化部署时,区块链的不可篡改公开透明的特性应与IPFS多点对多点的传输方式相结合,即就是区块链的用户节点同时也是IPFS的节点,拥有IPFS的传输能力。
步骤2:密钥生成中心KGA将安全参数λ和属性集合U作为输入,执行密文策略属性加密CP-ABE初始化算法,输出系统公钥PK和系统主密钥MSK:
(PK,MSK)←Setup(1λ),
即按照上式获取系统公钥PK和主密钥MSK;
步骤3:密钥生成中心KGA对智能合约进行初始化操作,并将智能合约部署到区块链上,通过智能合约在区块链中上传系统公钥PK。此处部署智能合约上传公钥时,KGA必须调用智能合约来进行系统公钥PK的上传操作,使用智能合约的方式将PK对区块链全网公布。
第二部分:用户数据本地训练,训练结果加密上传。此步骤中主要包括用户数据加密、IPFS存储以及与区块链的交互。
步骤4:用户对其数据进行本地训练,并将训练结果加密,通过CP-ABE实现数据上传:
(4.1)用户向密钥生成中心KGA发送申请Ruser进行注册,注册后成为合法用户:
Ruser={attri,Addi,time}
其中,attri表示用户想要申请的属性集合,Addi表示区块链对用户生成的唯一标识地址,time代表提出申请的时间戳;
(4.2)密钥生成中心KGA收到申请后,通过访问控制策略生成批准授予的属性集合attri′,再采用密钥生成算法生成用户私钥SK:
SK←KenGen(attri′,MSK),
并将生成的用户私钥SK发送给用户;
(4.3)用户使用本地训练模型获取训练后的数据E,将其存放在本地,并通过星际文件系统IPFS生成数据E的存放地址A和时间戳T;
(4.4)用户通过密文策略属性加密CP-ABE算法对用户数据存放地址A和时间戳T进行加密,得到用户密文CT:
CT←Encrypt(PK,(A,T),Λ,Δt),
其中,Λ为用户设定的访问结构,Δt为指定的访问结构有效时间;
(4.5)用户生成版本号V,并将用户密文CT与版本号V上传到区块链生成交易TXi:
TXi={CT,V};
第三部分:服务器数据解密、聚合数据训练及结果加密上传。包括了智能合约的使用、服务器与区块链的数据交互、本地解密处理以及最终结果上传。
步骤5:服务器获得所需版本的用户上传数据,对其进行集中训练得到模型训练结果,并将该训练结果更新到区块链上,按照如下步骤进行:
(5.1)服务器向密钥生成中心KGA发送申请Rsr进行注册,注册后成为合法用户:
Rsr={attrj,Addj,time,ζ}
其中,attrj表示用户想要申请的属性集合,Addj表示区块链对服务器生成的唯一标识地址,time代表提出申请的时间戳,ζ表示服务器申请标识。
(5.2)密钥生成中心KGA收到请求后,根据访问策略,生成可授权属性集合attrj′,然后执行密钥生成算法,即根据系统主密钥MSK和attrj′成服务器私钥SK*:
SK*←KenGen(attrj′,MSK),
并将生成的服务器私钥SK*发送给服务器;
(5.3)密钥生成中心KGA通过智能合约向全网标识服务器地址;
(5.4)服务器从区块链获得需要的用户密文CT,使用服务器私钥SK*对密文CT进行解密操作,获得用户数据地址A和时间戳T:
(A,T)←Decrypt(PK,SK*,CT);
(5.5)服务器通过星际文件系统IPFS获取用户存储在本地的数据E,对其进行集中训练获得最终结果并存储,根据最终结果生成服务器数据地址A′和时间戳T′;
(5.6)服务器采用密文策略属性加密CP-ABE算法对服务器数据地址A′和时间戳T′进行加密操作,得到服务器密文CT′:
CT′←Encrypt(PK,(A′,T′),Λ′,Δt),
其中,PK为系统公钥,Λ′为服务器指定的访问结构;
(5.7)服务器将其生成的服务器密文CT′和版本号V上传到区块链,生成交易TXj:
TXj={CT′,V};
第四部分:用户解密服务器上传梯度更新各自的模型。
步骤6:用户解密服务器上传的数据,并更新本地模型:
(6.1)用户通过智能合约定位所需服务器地址,根据版本号V获取服务器更新数据,即服务器密文CT′,使用自己的私钥SK对密文CT′进行解密操作,获得服务器数据地址A′和时间戳T′:
(A′,T′)←Decrypt(PK,SK,CT′);
(6.2)用户使用服务器数据地址A′和时间戳T′通过星际文件系统IPFS获取服务器最新训练结果,更新本地训练模型。
参照图2(a)用户训练上传数据的流程图,对步骤4做进一步描述:
用户向KGA发出带有请求属性集合attri的请求,KGA检查其属性请求是否合法;若合法,KGA使用CP-ABE密钥生成算法生成用户私钥,并发送给用户;否则,返回错误。
用户首先使用本地数据集训练模型进行训练,将训练结果和数据通过IPFS存储,并生成IPFS的存储地址A和时间戳T,此时的(A,T)可以唯一标识一个数据存储;然后,用户从智能合约上获取公钥,指定访问结构以及有效的访问时间,对(A,T)进行加密;最后,将加密后的数据增加版本号和用户地址后,上传到区块链。
参照图2(b)服务器训练上传数据的流程图,对步骤5做进一步描述:
服务器向KGA发出请求时,除了请求属性集,还必须增加一个服务器标识μ,标识这是一个服务器发起的请求,区别于普通用户;当KGA收到请求后,判断请求属性是否合法;如果合法,KGA在生成私钥给服务器的同时,还需要使用智能合约将服务器的地址公布到区块链上,便于用户识别服务器;若不合法,则返回错误。
服务器拿到自己的私钥后,通过区块链收集用户数据。首先,对链上数据根据上传版本号以及数据所属用户做一个筛选,确定需要数据;然后,使用私钥解密,获得用户授权的数据后进行本地训练数据上传过程,该与步骤3中数据训练上传过程一致。另外,此时上传的是联邦学习的结果,也就是综合多个用户训练后所得结果。
参照图2(c)用户更新本地数据的流程图,对步骤6做进一步描述:
用户通过查看智能合约确定所需服务器数据,通过版本号等信息确定服务器是否上传更新数据;若没有上传,则等待;若存在上传,则使用自己的私钥进行解密,通过IPFS获取服务器训练结果,更新本地数据。
参照图3,本发明中智能合约的逻辑示意图,智能合约的所有人是KGA,主要包括两个功能:系统公钥上传和服务器注册。系统公钥上传函数可以使用户方便的获取系统公钥PK,同时合约中PK的状态可以标识当前公钥是否有效,保证加密的正确性。服务器注册函数的目的是将所有现存服务器公告给用户,方便用户定位服务器,获取所需数据。
本发明利用CP-ABE与区块链的分布式平台相结合,为联邦学习提供了一种更安全且支持访问控制的方法。针对CP-ABE的撤销复杂问题,本发明设置有效时间,可以减少撤销的消耗。同时,利用区块链的不可篡改的特性,本发明中设计了针对联邦学习的版本管理,可以使模型方便的进行回滚等操作。
由于联邦学习的特性,附图中描述的逻辑流程可能在学习过程中不用全部执行。可以为所描述的流程中提供其他步骤,或者可以从所描述的流程中删除步骤。另外,本发明不仅支持描述中的两层结构,也可扩展为如用户,边缘服务器,中心服务器等三层或多层结构。因此,其他实施方式在以下权利要求的范围内。
本发明未详细说明部分属于本领域技术人员公知常识。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。