CN115987526A - 一种基于业务链的数据共享方法、系统和装置 - Google Patents
一种基于业务链的数据共享方法、系统和装置 Download PDFInfo
- Publication number
- CN115987526A CN115987526A CN202211683159.9A CN202211683159A CN115987526A CN 115987526 A CN115987526 A CN 115987526A CN 202211683159 A CN202211683159 A CN 202211683159A CN 115987526 A CN115987526 A CN 115987526A
- Authority
- CN
- China
- Prior art keywords
- data
- shared
- certificate
- user
- service chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种基于业务链的数据共享方法、系统和装置,可用于人工智能技术领域,所述方法包括:响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据,基于广播加密技术,实现区块链凭证的一对多安全共享,能够简化加密流程及凭证管理流程,节约消耗成本。
Description
技术领域
本发明涉及计算机技术领域,特别涉及人工智能技术领域,尤其涉及一种基于业务链的数据共享方法、系统和装置。
背景技术
跨机构业务系统间进行数据交互时,需要机构对文件的真实来源进行背书,同时需要在传输过程中保障数据的完整性。区块链数字身份是为了建立一种扁平化、易扩展的数字身份认证新模式,用户构建可跨架构互联互通的分布式身份认证体系,并在身份所有者的控制下推动用户间数据的共享及安全流转。相关技术中,基于区块链数字身份的数据共享方案需要根据数据共享用户范围一对一生成仅对授权用户可见的可验证凭证处理,当数据需要同时共享个多个用户时,需要进行多次加密处理并生成多个可验证凭证,加密流程及凭证管理流程复杂,消耗成本高。
发明内容
本发明的一个目的在于提供一种基于业务链的数据共享方法,基于广播加密技术,实现区块链凭证的一对多安全共享,能够简化加密流程及凭证管理流程,节约消耗成本。本发明的另一个目的在于提供一种基于业务链的数据共享装置。本发明的再一个目的在于提供一种计算机可读介质。本发明的还一个目的在于提供一种计算机设备。
为了达到以上目的,本发明一方面公开了一种基于业务链的数据共享方法,包括:
响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;
根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;
将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据。
优选的,还包括:
接收业务链中的数据接收方发送的数据共享请求,数据共享请求包括请求数据信息;
向数据接收方发送数据共享确认消息;
将数据接收方添加至当前机构的共享用户集。
优选的,对共享数据进行凭证封装处理,得到可验证数据凭证,包括:
根据共享数据,生成数据凭证;
通过当前身份对应的私钥,对数据凭证进行签名,得到可验证数据凭证。
优选的,根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息,包括:
通过广播加密生成算法,根据当前机构的共享用户集,生成主密钥对,主密钥对包括广播公钥和广播私钥;
通过密钥生成算法,根据当前机构的共享用户集中用户的用户身份和广播私钥,生成用户身份对应的可解密私钥;
通过加密算法,根据当前机构的共享用户集中用户的用户身份和广播公钥,对可验证数据凭证进行加密,得到共享密文和广播加密报文头;
根据当前机构的共享用户集中用户的用户身份对应的公钥,对相应用户身份对应的可解密私钥进行加密,得到用户身份对应的加密私钥;
根据用户身份和对应的加密私钥,生成用户加密身份集;
根据用户加密身份集、共享用户集、广播公钥、共享密文和广播加密报文头,生成密文消息。
优选的,在将密文消息发送至业务链上的区块链节点之前,包括:
根据密文消息进行准入校验,若准入校验通过,继续执行将密文消息发送至业务链上的区块链节点的步骤。
本发明还公开了一种基于业务链的数据共享系统,系统包括:业务系统、数字身份节点、业务链和业务链上的区块链节点;
业务系统用于向数字身份节点发送共享数据封装请求;
数字身份节点用于响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;将密文消息发送至业务链上的区块链节点;
区块链节点用于接收数字身份节点发送的密文消息;向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据。
本发明还公开了一种基于业务链的数据共享装置,包括:
凭证封装单元,用于响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;
加密单元,用于根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;
上链单元,用于将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。
本发明还公开了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现如上所述方法。
本发明响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据,基于广播加密技术,实现区块链凭证的一对多安全共享,能够简化加密流程及凭证管理流程,节约消耗成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于业务链的数据共享系统的结构示意图;
图2为本发明实施例提供的一种数字身份节点的结构示意图;
图3为本发明实施例提供的一种区块链节点的结构示意图;
图4为本发明实施例提供的一种基于业务链的数据共享方法的流程图;
图5为本发明实施例提供的又一种基于业务链的数据共享方法的流程图;
图6为本发明实施例提供的一种基于业务链的数据共享装置的结构示意图;
图7为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请公开的一种基于业务链的数据共享方法、系统和装置可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,本申请公开的一种基于业务链的数据共享方法、系统和装置的应用领域不做限定。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。业务链是业务合作机构间根据业务需求组的建区块链联盟网络,抽取业务规则为业务智能合约并部署到区块链联盟网络上对具体的业务数据进行背书。
数字身份是实体的数字身份标识符及与之关联的数字化属性声明,区块链数字身份是一种基于区块链弱中心化思想的新型分布式数字身份技术,是基于分布式账本提供的一套不依赖于集中权威或身份提供者的身份识别与认证方案,并基于密码学进行用户属性信息隐私防护,核心组件包括但不限于数字身份标识DID(特定规则的分布式数字身份标识及一组对应的公私钥对,公钥上链,私钥用户自己保存)和可验证凭证(VC)。
凭证是指实体需要披露的属性说明,可验证凭证是由发行人签名加密的防篡改凭证,具有密码学安全、隐私保护的特点。可验证凭证包括但不限于可验证的凭证本身和可验证凭证的数字签名,其中,可验证的凭证本身包括但不限于凭证元数据和声明。
分布式公钥基础设施(DPKI)将公开密钥与实体标识符关联在一起,并基于去中心化的节点进行公开密钥信息存储和获取。
数据指纹是指通过哈希散列函数技术对原始数据进行压缩处理,并提取生成的唯一散列值即哈希(hash)值,因不同原始数据生成的hash值不同,可作为判断原始数据是否修改的依据。
广播加密是一种传输数字信息给多个用户的密码系统,能够选取不同的广播群用户组子集进行广播加密,从而以一点对多点的方式安全高效的实现消息的保密传输。
图1为本发明实施例提供的一种基于业务链的数据共享系统的结构示意图,如图1所示,至少一个业务系统100、至少一个数字身份节点200、业务链300和业务链上的多个区块链节点310。图1中以2个业务系统100、2个数字身份节点200为例示出,在实际应用中,业务系统100和数字身份的节点可能更多,在此不作限定。
业务系统100是需要进行跨机构身份互认及数据互通的业务系统,并根据数据共享流程中数据提供方和数据接收方两种不同的角色进行对应的服务流程。数据提供方控制数据共享用户范围,并根据数据共享范围获取业务链300上用户身份ID,生成对应的广播加密密钥,将共享数据封装为可验证数字身份凭证,并用广播加密处理后共享存储在业务链300上,并将凭证连接信息以事件信息触发通知给各数据接收方。数据提供方在业务链300上订阅可验证数字凭证更新事件通知,当接收到通知后从业务链300上获取对应的广播加密处理的凭证,跟基于广播加密处理规则进行解密,获取共享数据。可验证凭证摘要及凭证使用流程全程在业务链300的区块链节点310上共识及背书,保障凭证的真实性及凭证流转的全流程可溯。
数字身份节点200是业务链300上面向各联盟机构的,与区块链节点310配套提供跨联盟机构身份互认及数据共享互通的服务节点,与区块链节点310同步归属于不同的联盟机构。数字身份节点200提供数字身份相关的数字身份ID注册、数字身份凭证签发及验证、凭证广播加密处理等服务处理,并由业务系统100触发服务调用。每个数字身份节点200的内部结构均一致。
图2为本发明实施例提供的一种数字身份节点的结构示意图,如图2所示,数字身份节点200包括系统初始化模块210和数字身份核心模块220。
系统初始化模块210用于对数字身份节点200自身进行数字身份信息初始化,包括但不限于注册身份DID信息,身份DID信息代表该数字身份节点200所属联盟机构;还用于在业务链300上登记身份DID信息,包括但不限于联盟机构DID及联盟机构DID对应属性(例如:A联盟机构)、DID对应的公钥、DID对应的节点通讯地址(域名:端口)。其中,DID对应的私钥信息由该联盟机构对应的业务系统100保存。
数字身份核心模块220用于处理与数据跨机构共享流程相关的身份、凭证、广播加密、数据共享请求交互等核心处理流程。数字身份核心模块220包括身份DID管理子模块221、凭证管理子模块222、广播加密控制子模块223和点对点通讯子模块224。
身份DID管理子模块221用于处理所属联盟机构及机构内涉及数据共享需求的用户进行区块链数字身份DID注册,DID属性更新(更新范围包括但不限于所属机构更新和身份对应的密钥对更新等)、DID注销等服务。例如:为A联盟机构的Bob用户注册区块链数字身份,则需要向业务链300上送身份注册请求,为Bob生成该联盟内唯一的数字身份DID,并将DID标识及DID对应的公钥、DID对应的人,即Bob、所属机构等属性信息登记在链上,DID对应的私钥则由Bob自行进行管理。
凭证管理子模块222用于处理所属联盟机构及机构内涉及数据共享需求的用户进行共享数据的凭证封装处理,包括但不限于凭证生成、凭证链上加密托管、凭证更新、凭证删除等。
广播加密控制子模块223是对数据共享凭证进行广播加密处理的模块,包括但不限于作为数据提供方将凭证加密为共享范围内用户可解密的加密凭证以及作为数据接收方进行凭证解密操作。
点对点通讯子模块224是不同联盟机构间进行数据共享请求交互的模块,当机构A的业务系统100需要向机构B的业务系统100申请数据共享时,机构A的数字身份节点200作为数据接收方,在业务链300上寻找作为数据提供方的机构B数字身份节点200的通讯地址,并建立通讯链接申请数据共享,由机构B的业务系统100审批通过后,则机构A的申请者的数字身份DID则加入机构B该数据的共享用户集DIDGroup。
业务链300为根据外部联盟机构业务系统100的跨机构间数据共享需求组建而成的联盟链,链上包括多个区块链节点310,均属于业务的成员节点,并且归属不同的联盟机构,成员节点上均部署有与数字身份节点200进行数字身份ID管理及凭证管理服务进行交互的数字身份智能合约,数字身份节点200也为分布式部署架构,在每个联盟机构均有部署,业务系统100通过数字身份节点200调用对应的数字身份管理及凭证管理服务。业务链300中区块链节点310的总数为3f+1个,其中,f表示可支持的容错节点个数,最小值为1,请求和业务请求均采用拜占庭容错算法(PBFT)进行共识,一笔共识请求必须在业务链中的每个验证节点收到至少2f+1个来自其他验证节点的一致的确认消息后,该笔交易才能完成当前阶段的共识。值得说明的是,拜占庭容错算法三个阶段的共识都完成后才共识成功,系统数据访问控制策略更新请求和业务请求才被执行,执行结果才能作为合法数据生成新的区块并进行持久化。
区块链节点310用于接收数字身份节点200发起的数字身份ID注册、数字身份凭证签发及验证、及凭证广播加密控制策略更新请求,所有验证节点内部结构均一致,对交易进行权限验证并完成重复及参数合法性校验,校验通过后将交易广播至其他所有区块链节点310,接收其他区块链节点310的待共识的区块广播通知,共识通过后按合约中的逻辑处理后的数据生成新的区块数据,并触发合约执行后的相关系统流程。
图3为本发明实施例提供的一种区块链节点的结构示意图,如图3所示,区块链节点310包括交易路由及事件通知模块311和智能合约共识及执行模块312。
交易路由及事件通知模块311用于接收数字身份节点200发起的数字身份DID及凭证管理服务的请求,根据交易进行客户端延签、智能合约ID、参数等准入判断,判断通过则主控交易进入对应的合约共识路由;同时监听智能合约共识及执行模块312推送的时间通知,根据时间通知按照节点ID进行消息推送。
智能合约共识及执行模块312用于根据数字身份节点200发起的数字身份ID管理、可验证凭证管理,广播加密规则管理等请求进行交易校验、共识处理及持久化。智能合约共识及执行模块312包括交易校验子模块12a、交易共识子模块12b、事件控制子模块12c和持久化子模块12d。
交易校验子模块12a是对业务请求参数进行校验并进行交易预处理的模块,用于根据交易请求参数中的方法类型判断交易是查询类还是更新类,若为查询类交易则从持久化子模块12d中获取对应的数据;若为更新类交易则将交易请求及交易预执行结果封装成区块,将区块序号加1,将区块共识消息广播到业务链300中所有验证节点中。
交易共识子模块12b是完成更新类业务交易共识的核心模块,使用拜占庭共识算法对交易进行三段式共识处理,第一阶段为预备(pre-prepare)共识,第二阶段为准备(prepare)共识,第三阶段为确认(commit)共识,三个阶段为顺序执行,当前一阶段累计收到2f+1个其他交易共识节点的一致确认消息后当前阶段的共识完成并进入下一阶段,三个阶段的共识全部完成后代表该业务请求合法,按业务合约逻辑处理后的数据写入区块进行持久化。
事件控制子模块12c是根据数据提供方机构数字身份节点200提交的DIDGroup,向DIDGroup中的数据接收方的数字身份节点200进行消息推送,以便通知数据接收方的数字身份节点200进行共享数据获取操作。事件控制子模块12c支持按机构进行全量通知或增量通知模式设定。
持久化子模块12d是对共识通过的交易进行最终执行处理,将生成的区块及执行后的世界状态数据进行持久化更新。记录世界状态的最新数据更新集以及促成世界状态数据更新的所有交易日志区块记录。持久化的数据包括参与数据共享的联盟机构的数字身份ID及公钥信息、机构下用户的数字身份ID及公钥信息、广播加密处理的可验证数字凭证及其指纹信息、可验证凭证流转及验证信息、广播加密授权范围信息等。
本发明实施例中,数据提供方的业务系统100用于向自身对应的数字身份节点发送共享数据封装请求。
数据提供方的数字身份节点200用于响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;将密文消息发送至业务链300上的区块链节点310。
区块链节点310用于接收数据提供方的数字身份节点200发送的密文消息;向共享用户集中的数据接收方对应的数字身份节点200发送数据获取消息,以供数据接收方对应的数字身份节点200通过业务链300对密文消息进行解密获得共享数据。
值得说明的是,图1至图3所示的结构还适用于执行图4或图5所述的方法,在此不再重复赘述。
下面以基于业务链的数据共享装置作为执行主体为例,说明本发明实施例提供的基于业务链的数据共享方法的实现过程。可理解的是,本发明实施例提供的基于业务链的数据共享方法的执行主体包括但不限于基于业务链的数据共享装置。
图4为本发明实施例提供的一种基于业务链的数据共享方法的流程图,如图4所示,该方法包括:
步骤101、响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证。
步骤102、根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息。
步骤103、将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据。
值得说明的是,本申请中技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。本申请实施例中的用户信息均是通过合法合规途径获得,并且对用户信息的获取、存储、使用、处理等经过客户授权同意的。
本发明实施例提供的技术方案中,响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据,基于广播加密技术,实现区块链凭证的一对多安全共享,能够简化加密流程及凭证管理流程,节约消耗成本。
图5为本发明实施例提供的又一种基于业务链的数据共享方法的流程图,如图5所示,该方法包括:
步骤201、业务链中的数据提供方接收业务链中的数据接收方发送的数据共享请求,数据共享请求包括请求数据信息。
本发明实施例中,数据提供方是业务链中提供数据的某联盟机构对应的节点,数据接收方是业务链中接收数据的某联盟机构对应的节点。数据提供方和数据接收方之间建立有通信链路,可以通过通信链路进行通信。
本发明实施例中,各联盟机构在链上存储有可共享数据清单,包括但不限于数据名称和数据摘要描述信息,其他联盟机构可以在业务上检索对应的共享数据,若检索到自身需要的共享数据,则通过自身对应的数字身份节点向对应的联盟机构的数字身份节点发送数据共享请求,数据共享请求包括请求数据信息,请求数据信息包括但不限于希望获取的数据信息、需要获取数据的机构或用户的数字身份DID信息。其中,发送数据共享请求的节点为共享数据的数据接收方等待接收数据;接收数据共享请求的节点作为数据提供方。
步骤202、数据提供方向数据接收方发送数据共享确认消息。
本发明实施例中,数据提供方对接收到的请求数据信息进行审核,若审核通过,向数据接收方发送数据共享确认消息。
步骤203、数据提供方将数据接收方添加至当前机构的共享用户集。
具体地,数据提供方将数据接收方对应的机构或用户的数字身份DID信息添加至自身对应的当前机构的共享用户集(DIDGroup)中。共享用户集中的机构或用户均为经过审核的可以进行数据共享的机构或用户。
值得说明的是,当某个机构或用户的共享权限被撤销时,数据提供方将对共享用户集中的机构或用户进行相应更新,即:将共享权限被撤销的机构或用户从共享用户集中删除。进一步地,需要重新计算广播加密报文头Hdr和对称加密密钥Mkey,更新共享密文CM,更新链上托管的加密共享数据消息,各用户的可解密私钥sk不变,权限变更后被撤销的用户即使拥有可解密私钥sk也无法解密得到对应对称加密密钥Mkey,未被撤销的用户使用原来的可解密私钥sk仍能得到对应的对称加密密钥Mkey。
步骤204、响应于共享数据封装请求,数据提供方的数据身份节点对共享数据进行凭证封装处理,得到可验证数据凭证。
本发明实施例中,业务系统向作为数据提供方的数据身份节点发送共享数据封装请求,请求数据身份节点对共享数据进行封装。
本发明实施例中,步骤204具体包括:
步骤2041、根据共享数据,生成数据凭证。
本发明实施例中,将共享数据写入凭证中,生成数据凭证。
步骤2042、通过当前身份对应的私钥,对数据凭证进行签名,得到可验证数据凭证。
本发明实施例中,通过数据提供方对应的机构或用户身份DID对应的私钥对数据凭证进行签名,得到可验证数据凭证。
步骤205、数据提供方的数据身份节点根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息。
本发明实施例中,步骤205具体包括:
步骤2051、通过广播加密生成算法,根据当前机构的共享用户集,生成主密钥对,主密钥对包括广播公钥和广播私钥。
本发明实施例中,共享用户集(DIDGroup)中需要共享数据的用户总数为N,选取安全参数λ,通过广播加密生成算法进行加密计算,生成广播加密的主密钥对<PubKey,MainKey>,其中,PubKey为广播公钥,MainKey为广播私钥,完成广播加密密钥初始化。
步骤2052、通过密钥生成算法,根据当前机构的共享用户集中用户的用户身份和广播私钥,生成用户身份对应的可解密私钥。
本发明实施例中,共享用户集(DIDGroup)包括多个共享用户和每个共享用户的身份DID,将每个共享用户的DID进行哈希(hash)转码,映射为固定长度的算法输入盐;将算法输入盐和广播私钥输入密钥生成算法进行计算,得到每个用户身份对应的可解密私钥。即:
ski=KeyGen(MainKey,encode(didi))
其中,ski为用户i对应的可解密私钥,MainKey为广播私钥,encode(didi)为用户i的算法输入盐,KenGen()为密钥生成算法。
步骤2053、通过加密算法,根据当前机构的共享用户集中用户的用户身份和广播公钥,对可验证数据凭证进行加密,得到共享密文和广播加密报文头。
本发明实施例中,通过加密算法对共享用户集和广播公钥进行加密计算,得到对称加密密钥和广播加密报文头;对可验证数据凭证进行加密计算,得到共享密文。即:
(Hdr,MKey)=Encrypt(DIDGroup,PubKey)
CM=Menc(M,MKey)
其中,Encrypt()和Menc()均为加密算法,DIDGroup为共享用户集,PubKey为广播公钥,Hdr为广播加密报文头,MKey为对称加密密钥,M为可验证数据凭证,CM为共享密文。
步骤2054、根据当前机构的共享用户集中用户的用户身份对应的公钥,对相应用户身份对应的可解密私钥进行加密,得到用户身份对应的加密私钥。
本发明实施例中,通过用户身份对应的公钥,对相应用户身份对应的可解密私钥进行加密,得到相应用户身份对应的加密私钥,例如:通过用户A的公钥对用户A的可解密私钥进行加密,得到用户A对应的加密私钥。即:
mski=skenc(ski,pki)
其中,skenc()为加密算法,mski为用户i对应的加密私钥,ski为用户i对应的可解密私钥,pki为用户i对应的公钥。
步骤2055、根据用户身份和对应的加密私钥,生成用户加密身份集。
具体地,将用户身份DIDi与对应的加密私钥mski形成复核组合,得到用户加密身份集,即:DIDmskGroup={(DIDi,mski),(DIDj,mskj)....(DIDn,mskn)},其中,DIDmskGroup为用户加密身份集,DIDi为用户i的用户身份,mski为用户i对应的加密私钥。
步骤2056、根据用户加密身份集、共享用户集、广播公钥、共享密文和广播加密报文头,生成密文消息。
具体地,将共享用户集DIDGroup、广播公钥PubKey、共享密文CM和广播加密报文头Hdr进行封装,得到封装共享数据消息Message={Hdr,CM,PubKey,DIDGroup};通过数据提供方的身份DID对应私钥对封装共享数据消息进行加密,得到加密共享数据消息;将加密共享数据消息与用户加密身份集进行组合,得到密文消息。
进一步地,将密文消息进行业务链上链托管,并提取对应的哈希值(hash),即:数据指纹,进行存证。
步骤206、数据提供方的数据身份节点根据密文消息进行准入校验,若准入校验通过,执行步骤207;若准入校验失败,流程结束。
本发明实施例中,准入校验包括但不限于密文消息验签、参数合法性校验和智能合约ID校验。若准入校验通过,表明密文消息所处的交易可以进入业务链进行交易校验和交易共识,继续执行步骤207;若准入校验失败,表明密文消息所处的交易不可以进入业务链,流程结束。
步骤207、数据提供方的数据身份节点将密文消息发送至业务链上的区块链节点。
本发明实施例中,区块链节点根据密文消息所处的交易的请求参数中的方法类型判断交易是查询类还是更新类,若为查询类交易,则获取对应的数据并返回;若为更新类交易,则将交易和交易预执行结果封装成区块,将区块序号加1,将区块共识消息广播至业务链中所有验证节点;通过拜占庭公式算法根据区块公式消息对交易进行三段式共识处理,三个阶段顺序执行,当前一阶段累计收到2f+1个其他交易共识节点的一致确认消息后当前阶段的共识完成并进入下一阶段,其中,f为可支持的容错节点的个数,f的最小值为1。
值得说明的是,当三个阶段的共识全部完成,代表该交易请求合法,按业务合约对交易执行业务逻辑处理后,并将处理后得到的数据结果写入区块进行持久化。
进一步地,将生成的区块及执行后的世界状态数据进行持久化更新。记录世界状态的最新数据更新集以及促成世界状态数据更新的所有交易日志区块记录。持久化的数据包括参与数据共享的联盟机构的数字身份ID及公钥信息、机构下用户的数字身份ID及公钥信息、广播加密处理的可验证数字凭证及其指纹信息、可验证凭证流转及验证信息、广播加密授权范围信息等。
步骤208、区块链节点向共享用户集中的数据接收方发送数据获取消息。
本发明实施例中,共享用户集中包括多个被授权的共享用户的身份DID,均为当前数据提供方的机构对应的数据接收方。区块链节点按照共享用户集中的共享用户的身份DID向对应的数据接收方的数据身份节点发送数据获取消息,以通知数据接收方当前共享数据已更新,数据接收方可以通过数字身份节点进行共享数据获取操作。
值得说明的是,可以按照机构进行数据接收方的全量通知,也可以按照设置的增量通知模式进行增量通知,本发明实施例对此不作限定。
步骤209、数据接收方通过业务链对密文消息进行解密获得共享数据。
本发明实施例中,步骤209具体包括:
步骤2091、数据接收方通过业务链,根据自身的身份DID对密文消息进行校验,若校验通过,执行步骤2092;若校验失败,流程结束。
本发明实施例中,密文消息包括加密共享数据消息和用户加密身份集,密文消息有对应的哈希值(hash)。
本发明实施例中,通过自身的身份DID,上链从用户加密身份集DIDmskGroup查询出自身的加密私钥。获取业务链上密文消息的hash,基于hash对密文消息进行校验,若校验通过,表明密文消息未被篡改,继续执行步骤2092;若校验失败,表明密文消息被篡改,数据不可信,流程结束。
步骤2092、通过业务链获取数据提供方的身份DID对应的公钥信息,并通过公钥信息对加密共享数据消息进行解密,得到封装共享数据消息。
本发明实施例中,解密得到的封装共享数据消息Message包括共享用户集DIDGroup、广播公钥PubKey、共享密文CM和广播加密报文头Hdr,即:Message={Hdr,CM,PubKey,DIDGroup}。
步骤2093、通过解密算法,根据自身的私钥对自身的加密私钥进行解密,得到对应的可解密私钥。
具体地,通过sk=skdec(msk,vk),对自身的加密私钥进行解密,得到对应的可解密私钥。其中,sk为可解密私钥,skdec()为解密算法,msk为数据接收方自身的加密私钥,vk为自身的私钥。
步骤2094、通过解密算法,根据自身身份DID、封装共享数据消息和数据提供方的私钥进行解密,得到可验证数据凭证。
具体地,对广播公钥、共享用户集、数据接收方自身身份DID、可解密私钥和广播加密报文头进行解密,得到对称加密密钥,即:
Mkey=decrypt(PubKey,DIDGroup,DID,sk,Hdr)
M=mdec(CM,Mkey)
其中,decrypt()和mdec()均为解密算法,DIDGroup为共享用户集,PubKey为广播公钥,Hdr为广播加密报文头,MKey为对称加密密钥,M为可验证数据凭证,CM为共享密文,sk为可解密私钥,M为可验证数据凭证。
步骤2095、通过业务链获取数据提供方的身份DID对应的公钥,并通过获取到公钥对可验证数据凭证进行验签,得到共享数据。
本发明实施例中,若验签通过,表明可验证数据凭证未被篡改,数据真实,通过数据凭证获取共享数据;若验签失败,表明可验证数据凭证被篡改,流程结束。
本发明提供的基于业务链的数据共享方法,能够实现数据的精准授权流转。同时基于广播加密算法方式,从而实现同一数据凭证面向多个共享用户群体时只需要一次加密,避免需要为每个用户定向生成一份凭证,让数据流转凭证签发和维护工作更加便捷易用。本发明可通过修改数据访问控制策略用户集合可控制数据可共享用户范围,可验证数字凭证的共享控制从一对一优化为一对多,同时支持共享用户的撤销,使得数据访问权限控制更加灵活;采用传统广播加密技术、对称加密技术、非对称加密技术,在数据凭证共享过程中对和数据进行签名、加密,数据接收方通过对DID私钥的所有权来获取数据的解密权,保障数据共享范围可精准控制,数据安全防护强度较高。
本发明实施例提供的基于业务链的数据共享方法的技术方案中,响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据,基于广播加密技术,实现区块链凭证的一对多安全共享,能够简化加密流程及凭证管理流程,节约消耗成本。
图6为本发明实施例提供的一种基于业务链的数据共享装置的结构示意图,该装置用于执行上述基于业务链的数据共享方法,如图6所示,该装置包括:凭证封装单元11、加密单元12和上链单元13。
凭证封装单元11用于响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证。
加密单元12用于根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息。
上链单元13用于将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据。
本发明实施例中,该装置还包括:接收单元14、发送单元15和添加单元16。
接收单元14用于接收业务链中的数据接收方发送的数据共享请求,数据共享请求包括请求数据信息。
发送单元15用于向数据接收方发送数据共享确认消息。
添加单元16用于将数据接收方添加至当前机构的共享用户集。
本发明实施例中,凭证封装单元11具体用于根据共享数据,生成数据凭证;通过当前身份对应的私钥,对数据凭证进行签名,得到可验证数据凭证。
本发明实施例中,加密单元12具体用于通过广播加密生成算法,根据当前机构的共享用户集,生成主密钥对,主密钥对包括广播公钥和广播私钥;通过密钥生成算法,根据当前机构的共享用户集中用户的用户身份和广播私钥,生成用户身份对应的可解密私钥;通过加密算法,根据当前机构的共享用户集中用户的用户身份和广播公钥,对可验证数据凭证进行加密,得到共享密文和广播加密报文头;根据当前机构的共享用户集中用户的用户身份对应的公钥,对相应用户身份对应的可解密私钥进行加密,得到用户身份对应的加密私钥;根据用户身份和对应的加密私钥,生成用户加密身份集;根据用户加密身份集、共享用户集、广播公钥、共享密文和广播加密报文头,生成密文消息。
本发明实施例中,该装置还包括:校验单元17。
校验单元17用于根据密文消息进行准入校验,若准入校验通过,触发上链单元13继续执行将密文消息发送至业务链上的区块链节点的步骤.
本发明实施例的方案中,响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对可验证数据凭证进行加密,得到密文消息;将密文消息发送至业务链上的区块链节点,使得区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过业务链对密文消息进行解密获得共享数据,基于广播加密技术,实现区块链凭证的一对多安全共享,能够简化加密流程及凭证管理流程,节约消耗成本。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
本发明实施例提供了一种计算机设备,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上述基于业务链的数据共享方法的实施例的各步骤,具体描述可参见上述基于业务链的数据共享方法的实施例。
下面参考图7,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图7所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有计算机设备600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于业务链的数据共享方法,其特征在于,所述方法包括:
响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;
根据当前机构的共享用户集,对所述可验证数据凭证进行加密,得到密文消息;
将所述密文消息发送至业务链上的区块链节点,使得所述区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过所述业务链对所述密文消息进行解密获得共享数据。
2.根据权利要求1所述的基于业务链的数据共享方法,其特征在于,还包括:
接收业务链中的数据接收方发送的数据共享请求,所述数据共享请求包括请求数据信息;
向所述数据接收方发送数据共享确认消息;
将所述数据接收方添加至当前机构的共享用户集。
3.根据权利要求1所述的基于业务链的数据共享方法,其特征在于,所述对共享数据进行凭证封装处理,得到可验证数据凭证,包括:
根据所述共享数据,生成数据凭证;
通过当前身份对应的私钥,对所述数据凭证进行签名,得到可验证数据凭证。
4.根据权利要求1所述的基于业务链的数据共享方法,其特征在于,所述根据当前机构的共享用户集,对所述可验证数据凭证进行加密,得到密文消息,包括:
通过广播加密生成算法,根据当前机构的共享用户集,生成主密钥对,主密钥对包括广播公钥和广播私钥;
通过密钥生成算法,根据当前机构的共享用户集中用户的用户身份和所述广播私钥,生成用户身份对应的可解密私钥;
通过加密算法,根据当前机构的共享用户集中用户的用户身份和所述广播公钥,对所述可验证数据凭证进行加密,得到共享密文和广播加密报文头;
根据当前机构的共享用户集中用户的用户身份对应的公钥,对相应用户身份对应的可解密私钥进行加密,得到用户身份对应的加密私钥;
根据所述用户身份和对应的加密私钥,生成用户加密身份集;
根据所述用户加密身份集、共享用户集、广播公钥、共享密文和广播加密报文头,生成密文消息。
5.根据权利要求1所述的基于业务链的数据共享方法,其特征在于,在所述将所述密文消息发送至业务链上的区块链节点之前,包括:
根据所述密文消息进行准入校验,若准入校验通过,继续执行将所述密文消息发送至业务链上的区块链节点的步骤。
6.一种基于业务链的数据共享系统,其特征在于,所述系统包括:业务系统、数字身份节点、业务链和业务链上的区块链节点;
所述业务系统用于向数字身份节点发送共享数据封装请求;
所述数字身份节点用于响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;根据当前机构的共享用户集,对所述可验证数据凭证进行加密,得到密文消息;将所述密文消息发送至业务链上的区块链节点;
所述区块链节点用于接收所述数字身份节点发送的所述密文消息;向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过所述业务链对所述密文消息进行解密获得共享数据。
7.一种基于业务链的数据共享装置,其特征在于,所述装置包括:
凭证封装单元,用于响应于共享数据封装请求,对共享数据进行凭证封装处理,得到可验证数据凭证;
加密单元,用于根据当前机构的共享用户集,对所述可验证数据凭证进行加密,得到密文消息;
上链单元,用于将所述密文消息发送至业务链上的区块链节点,使得所述区块链节点向共享用户集中的数据接收方发送数据获取消息,以供数据接收方通过所述业务链对所述密文消息进行解密获得共享数据。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一项所述的基于业务链的数据共享方法。
9.一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现权利要求1至5任一项所述的基于业务链的数据共享方法。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1至5任一项所述的基于业务链的数据共享方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211683159.9A CN115987526A (zh) | 2022-12-27 | 2022-12-27 | 一种基于业务链的数据共享方法、系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211683159.9A CN115987526A (zh) | 2022-12-27 | 2022-12-27 | 一种基于业务链的数据共享方法、系统和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115987526A true CN115987526A (zh) | 2023-04-18 |
Family
ID=85971855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211683159.9A Pending CN115987526A (zh) | 2022-12-27 | 2022-12-27 | 一种基于业务链的数据共享方法、系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115987526A (zh) |
-
2022
- 2022-12-27 CN CN202211683159.9A patent/CN115987526A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11651362B2 (en) | Method and system for zero-knowledge and identity based key management for decentralized applications | |
Zhang et al. | BaDS: blockchain‐based architecture for data sharing with ABS and CP‐ABE in IoT | |
Guo et al. | Blockchain meets edge computing: A distributed and trusted authentication system | |
CN110602138B (zh) | 区块链网络的数据处理方法、装置、电子设备及存储介质 | |
CN110419193B (zh) | 用于安全智能家居环境的基于ksi的认证和通信方法及其系统 | |
US11483298B2 (en) | Information masking using certificate authority | |
US11159307B2 (en) | Ad-hoc trusted groups on a blockchain | |
CN114730420A (zh) | 用于生成签名的系统和方法 | |
CN113256290A (zh) | 去中心化加密通讯与交易系统 | |
US9800556B2 (en) | Systems and methods for providing data security services | |
US11367065B1 (en) | Distributed ledger system for electronic transactions | |
WO2022193984A1 (zh) | 跨链进行数据传输的方法、装置、计算机设备、存储介质和计算机程序产品 | |
CN111711607B (zh) | 一种基于区块链的流式微服务可信加载与验证方法 | |
CN112152778A (zh) | 一种节点管理方法、装置、及电子设备 | |
CN115883154A (zh) | 访问凭证的颁发方法、基于区块链的数据访问方法及装置 | |
CN107566393A (zh) | 一种基于受信任证书的动态权限验证系统及方法 | |
Zhou et al. | A Scalable Blockchain‐Based Integrity Verification Scheme | |
CN111131160B (zh) | 一种用户、服务及数据认证系统 | |
KR102118556B1 (ko) | 프라이빗 블록체인 기반 개인정보 관리 서비스 제공 방법 | |
CN114866244B (zh) | 基于密文分组链接加密的可控匿名认证方法、系统及装置 | |
CN115987526A (zh) | 一种基于业务链的数据共享方法、系统和装置 | |
CN115412250B (zh) | 一种sm9密钥生成中心认证方法、装置、设备及介质 | |
CN117675383A (zh) | 针对网络化协同设计的数据传输架构及数据传输方法 | |
CN116760534A (zh) | 基于标识的数据处理方法、终端设备、电子设备及介质 | |
CN115914243A (zh) | 一种信息处理方法及装置、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |