CN116032475A - 一种数据共享方法、***、设备及计算机可读存储介质 - Google Patents
一种数据共享方法、***、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116032475A CN116032475A CN202211693833.1A CN202211693833A CN116032475A CN 116032475 A CN116032475 A CN 116032475A CN 202211693833 A CN202211693833 A CN 202211693833A CN 116032475 A CN116032475 A CN 116032475A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- data
- encryption method
- attribute
- encryption
- 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
技术领域
本申请涉及数据处理技术领域,更具体地说,涉及一种数据共享方法、***、设备及计算机可读存储介质。
背景技术
当前,用户之间可以基于需求对数据进行共享,比如采用邮件传输、人工手动录入库的方式对数据进行共享,然而这些方式很容易泄漏数据,同时工作人员在发送邮件、录入等过程会出现非预期的操作,无法审计。为了避免此种问题,可以基于区块链对数据进行共享,在此过程中,数据提供方将待共享数据上传至区块链,数据请求方可通过区块链访问被共享的数据。
然而在基于区块链进行数据共享的过程中,区块链联盟中的所有参与方均可读区块链上的数据,无法细粒度的访问控制,为了解决此种问题,可以结合属性加密来基于区块链进行数据共享,属性加密是解决细粒度访问控制的一种办法,但其存在一种类似于CA的授权中心机构,这与区块链技术的去中心化思想背道而驰,且授权中心对加密后的数据有绝对的解密能力,直接使用属性加密解决区块链数据的细粒度访问控制可能会留下安全隐患,使得现有结合属性加密来基于区块链进行数据共享方法的适用性较差。
综上所述,如何提高数据共享方法的适用性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据共享方法,其能在一定程度上解决如何提高数据共享方法的适用性的技术问题。本申请还提供了一种数据共享***、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种数据共享方法,应用于数据所有者,包括:
获取待共享的目标消息;
基于代理重加密方法、所述数据所有者的公钥对所述目标消息进行加密,得到第一密文;
基于属性加密方法对所述第一密文进行加密,得到第二密文,并将所述第二密文上传至区块链进行共享;
接收数据使用者发送的第三密文、验证信息及所述数据使用者的公钥,所述第三密文、所述验证信息包括所述数据使用者基于所述属性加密方法对所述第二密文进行解密后得到的密文和信息;
基于所述验证信息验证所述第三密文与所述第一密文是否一致,若一致,则基于所述代理重加密方法、所述数据所有者的公钥、所述数据所有者的私钥及所述数据使用者的公钥,生成重加密密钥;
传输所述重加密密钥至所述数据使用者,以使所述数据使用者基于所述代理重加密方法、所述重加密密钥、所述数据所有者的公钥对所述第三密文进行加密,得到第四密文,并使所述数据使用者基于所述代理重加密方法、所述数据使用者的私钥对所述第四密文进行解密,得到所述目标消息。
优选的,所述基于代理重加密方法、所述数据所有者的公钥对所述目标消息进行加密,得到第一密文之前,还包括:
获取所述代理重加密方法的初始设定函数;
基于所述代理重加密方法、所述初始设定函数生成所述数据所有者的公钥及所述数据所有者的私钥。
优选的,所述基于属性加密方法对所述第一密文进行加密,得到第二密文,包括:
确定所述目标消息的属性访问策略树,并生成所述目标消息的第一验证序列;
基于所述属性加密方法、所述属性访问策略树及所述第一验证序列对所述第一密文进行加密,得到所述第二密文。
优选的,所述接收数据使用者发送的第三密文、验证信息及所述数据使用者的公钥,所述第三密文、所述验证信息包括所述数据使用者基于所述属性加密方法对所述第二密文进行解密后得到的密文和信息,包括:
接收所述数据使用者发送的第三密文、第二验证序列及所述数据使用者的公钥,所述第三密文、所述第二验证序列包括所述数据使用者基于所述属性加密方法、所述数据使用者的属性私钥对所述第二密文进行解密后得到的密文和序列,所述数据使用者的属性私钥包括基于所述属性加密方法对所述数据使用者的属性进行处理后生成的私钥。
优选的,所述基于所述验证信息验证所述第三密文与所述第一密文是否一致,包括:
判断所述第二验证序列与所述第一验证序列是否一致;
若所述第二验证序列与所述第一验证序列一致,则判定所述第三密文与所述第一密文一致;
若所述第二验证序列与所述第一验证序列不一致,则判定所述第三密文与所述第一密文不一致。
优选的,所述基于所述属性加密方法、所述属性访问策略树及所述第一验证序列对所述第一密文进行加密,得到所述第二密文,包括:
对所述第一验证序列及所述第一密文进行拼接,得到拼接结果;
基于所述属性加密方法、所述属性访问策略树对所述拼接结果进行加密,得到所述第二密文。
一种数据共享方法,应用于数据使用者,包括:
在区块链中获取第二密文,所述第二密文包括数据所有者基于属性加密方法对第一密文进行加密得到的密文并由所述数据所有者上传至所述区块链,所述第一密文包括所述数据所有者基于代理重加密方法、所述数据所有者的公钥对目标消息进行加密后得到的密文;
基于所述属性加密方法对所述第二密文进行解密,得到第三密文和验证信息;
传输所述第三密文、所述验证信息及所述数据使用者的公钥至所述数据所有者,基于所述数据所有者基于所述验证信息验证所述第三密文与所述第二密文一致后,基于所述代理重加密方法、所述数据所有者的公钥、所述数据所有者的私钥及所述数据使用者的公钥,生成重加密密钥;
接收所述数据所有者传输的所述重加密密钥;
基于所述代理重加密方法、所述重加密密钥、所述数据所有者的公钥对所述第三密文进行加密,得到第四密文;
基于所述代理重加密方法、所述数据使用者的私钥对所述第四密文进行解密,得到所述目标消息。
一种数据共享***,应用于数据所有者,包括:
第一获取模块,用于获取待共享的目标消息;
第一加密模块,用于基于代理重加密方法、所述数据所有者的公钥对所述目标消息进行加密,得到第一密文;
第二加密模块,用于基于属性加密方法对所述第一密文进行加密,得到第二密文,并将所述第二密文上传至区块链进行共享;
第一接收模块,用于接收数据使用者发送的第三密文、验证信息及所述数据使用者的公钥,所述第三密文、所述验证信息包括所述数据使用者基于所述属性加密方法对所述第二密文进行解密后得到的密文和信息;
第一验证模块,用于基于所述验证信息验证所述第三密文与所述第一密文是否一致,若一致,则基于所述代理重加密方法、所述数据所有者的公钥、所述数据所有者的私钥及所述数据使用者的公钥,生成重加密密钥;
第一传输模块,用于传输所述重加密密钥至所述数据使用者,以使所述数据使用者基于所述代理重加密方法、所述重加密密钥、所述数据所有者的公钥对所述第三密文进行加密,得到第四密文,并使所述数据使用者基于所述代理重加密方法、所述数据使用者的私钥对所述第四密文进行解密,得到所述目标消息。
一种数据共享设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述数据共享方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数据共享方法的步骤。
本申请提供的一种数据共享方法,应用于数据所有者,获取待共享的目标消息;基于代理重加密方法、数据所有者的公钥对目标消息进行加密,得到第一密文;基于属性加密方法对第一密文进行加密,得到第二密文,并将第二密文上传至区块链进行共享;接收数据使用者发送的第三密文、验证信息及数据使用者的公钥,第三密文、验证信息包括数据使用者基于属性加密方法对第二密文进行解密后得到的密文和信息;基于验证信息验证第三密文与第一密文是否一致,若一致,则基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥;传输重加密密钥至数据使用者,以使数据使用者基于代理重加密方法、重加密密钥、数据所有者的公钥对第三密文进行加密,得到第四密文,并使数据使用者基于代理重加密方法、数据使用者的私钥对第四密文进行解密,得到目标消息。本申请中,数据所有者可以基于代理重加密方法及属性加密方法对目标消息进行处理,生成可以基于属性来决定是否能够共享目标消息的第二密文并上传至区块链中,且数据所有者自身可以在基于数据使用者的验证信息验证第三密文与第一密文一致的情况下,基于代理重加密方法生成重加密密钥,继而可以使得数据使用者自身可以基于重加密密钥解密得到目标消息,去除了属性加密方法中授权中心的中心性,使得属性加密方法与区块链可以更好的结合,适用性好。本申请提供的一种数据共享***、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为属性访问策略树的示意图;
图2为本申请实施例提供的一种数据共享方法的流程图;
图3为本申请实施例提供的一种数据共享***的结构示意图;
图4为本申请实施例提供的一种数据共享设备的结构示意图;
图5为本申请实施例提供的一种数据共享设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当前,用户之间可以基于需求对数据进行共享,比如采用邮件传输、人工手动录入库的方式对数据进行共享,然而这些方式很容易泄漏数据,同时工作人员在发送邮件、录入等过程会出现非预期的操作,无法审计。为了避免此种问题,可以基于区块链对数据进行共享,在此过程中,数据提供方将待共享数据上传至区块链,数据请求方可通过区块链访问被共享的数据。
然而在基于区块链进行数据共享的过程中,区块链联盟中的所有参与方均可读区块链上的数据,无法细粒度的访问控制,为了解决此种问题,可以结合属性加密来基于区块链进行数据共享,属性加密是解决细粒度访问控制的一种办法,但其存在一种类似于CA的授权中心机构,这与区块链技术的去中心化思想背道而驰,且授权中心对加密后的数据有绝对的解密能力,直接使用属性加密解决区块链数据的细粒度访问控制可能会留下安全隐患,使得现有结合属性加密来基于区块链进行数据共享方法的适用性较差。
而本申请提供的数据共享方法可以借助代理重加密方法提高数据共享方法的适用性。
为了便于理解本申请提供的数据共享方案,现对现有的属性加密方法及代理重加密方法进行介绍:
1、属性加密
Bethencourt等人在2007年提出了Ciphertext-Policy Attribute-BasedEncryption(CP-ABE)机制,将访问策略嵌入到密文中,用户属性嵌入到密钥中,从而信息拥有者可以规定密文访问策略,适用于消息分发场景。
通常,可以使用树型结构来表达访问结构,树的内部结点表示与、或、门限操作,叶子结点表示属性。可以把上述的树型结构称为访问树。如图1所示,构造的访问树W表示满足{员工|属于A公司,属于研发部门,入职时间早于2022.2.31日}或者{员工|属于B公司,属于财务部门}的员工表示授权集。如不满足上述条件则为非授权集。
CP-ABE使用属性刻画用户的资格,并且由数据的加密方来制定密文访问策略,以决定谁可以解密密文。CP-ABE中,用户的私钥与一系列属性相关,只有用户的属性符合密文的访问结构才能解密此密文。在CP-ABE中,各参与方的角色由属性决定,因此规定了一种访问结构来表达授权的属性集合。在访问结构中的集合就是授权集,相反,不在访问结构中的集合就是非授权集。
CP-ABE包含了四个基本算法:Setup,Encrypt,KeyGen,Decrypt。
其中,ABE.Setup(1k)->(MPK,MSK):只接受隐式的安全参数作为输入,输出公共参数MPK和主密钥MSK;
ABE.Encrypt(MPK,M,W)->CT:输入MPK,消息M和访问结构W,对M进行加密,产生密文CT;
ABE.KeyGen(MSK,L)->SKL:输入主密钥MSK和描述密钥的属性集合L,输出私钥SKL,其中,SKL由属性来确定;
ABE.Decrypt(MPK,CT,SKL)->M:输入公共参数MPK、包含访问结构W的密文CT,以及私钥SKL,需要注意的是,这里的私钥由属性集合L生成,如果L能够满足W,则对CT进行解密并返回消息M。
为便于理解,举例来说,某人使用CP-ABE基于如图1所述的访问树W和公共参数MPK,调用Encrypt(MPK,M,W)加密消息M得到密文CT,将CT发给全公司所有人,张三拥有属性L={A公司,研发部门,2020.1.1日入职},则张三的属性基密钥SKL是可以解密CT得到消息M的,如果李四拥有属性K={A公司,销售部门,2020.1.1日入职},则李四的属性基密钥SKK无法解密CT得到消息M。
2、代理重加密方法
Blaze等人在1998年的欧洲密码学年会提出了代理重加密(PRE),结合上述使用场景进行介绍,代理重加密方案一般包含以下几个部分:
1)PRE.Setup(1k)->pram:初始设定函数,根据安全参数设置工作环境;
2)PRE.KeyGen(pram)->(pk,sk):密钥生成函数,为参与方产生自己的公私钥对;
3)PRE.ReKeyGen((pko,sko),pku)->rko->u:转换密钥生成函数,数据所有者利用自己的公私钥对(pko,sko)及数据使用者的公钥pku产生一个代理重加密的转换密钥rko->u;
4)PRE.Encrypt(pko,m)->co:加密函数,数据所有者使用自己的公钥pko对数据进行加密,所得到的密文称为原始密文co;
5)PRE.ReEnc(co,rko->u,pko)->cu:重加密函数,利用转换密钥rko->u和公钥pko对原始密文co进行再次加密,所得到的密文称为重加密密文cu,该密文实际上等同于用数据使用者的公钥pku加密的明文;
6)PRE.Decrypt(cu,sku)->m:解密函数,数据使用者使用自己的私钥sku对重加密密文cu进行解密,得到相应的明文m。
请参阅图2,图2为本申请实施例提供的一种数据共享方法的流程图。
本申请实施例提供的一种数据共享方法,应用于数据所有者,可以包括以下步骤:
步骤S101:获取待共享的目标消息。
实际应用中,数据所有者可以先获取带共享的目标消息m,目标消息的类型可以根据实际需要灵活确定,比如目标消息可以为文字、图像、黑名单等,本申请在此不做具体限定。
步骤S102:基于代理重加密方法、数据所有者的公钥对目标消息进行加密,得到第一密文。
实际应用中,数据使用者在获取待共享的目标消息之后,便可以于代理重加密方法、数据所有者的公钥对目标消息进行加密,得到第一密文co,比如可以调用代理重加密的加密方法PRE.Encrypt(pko,m)->co得到密文co,以借助代理重加密方法对目标消息进行安全保护。
实际应用中,数据所有者在基于代理重加密方法、数据所有者的公钥对目标消息进行加密,得到第一密文之前,还可以获取代理重加密方法的初始设定函数pram;基于代理重加密方法、初始设定函数生成数据所有者的公钥及数据所有者的私钥,比如调用PRE.KeyGen(pram)->(pk,sk)获得数据所有者的公钥pko及数据所有者的私钥sko。相应的,数据使用者也可以基于代理重加密方法、初始设定函数生成数据使用者的公钥及数据使用者的私钥,比如调用PRE.KeyGen(pram)->(pk,sk)获得数据使用者的公钥pku及数据使用者的私钥sku
步骤S103:基于属性加密方法对第一密文进行加密,得到第二密文,并将第二密文上传至区块链进行共享。
实际应用中,数据使用者在基于代理重加密方法、数据所有者的公钥对目标消息进行加密,得到第一密文之后,便可以基于属性加密方法对第一密文进行加密,得到第二密文,并将第二密文上传至区块链进行共享,以便后续数据使用者可以基于自身属性访问区块链中存在的目标消息。
步骤S104:接收数据使用者发送的第三密文、验证信息及数据使用者的公钥,第三密文、验证信息包括数据使用者基于属性加密方法对第二密文进行解密后得到的密文和信息。
步骤S105:基于验证信息验证第三密文与第一密文是否一致,若一致,则基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥。
实际应用中,数据所有者在基于属性加密方法对第一密文进行加密,得到第二密文,并将第二密文上传至区块链进行共享之后,数据使用者可以从区块链中获取第二密文,并基于属性加密方法对第二密文进行解密后得到第三密文和验证信息,之后数据使用者将第三密文和验证信息发送至数据所有者,以便数据所有者基于验证信息验证第三密文与第一密文是否一致,若一致,则基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥,比如调用转换密钥生成函数PRE.ReKeyGen((pko,sko),pku)->rko->u生成重加密密钥rko->u。
实际应用中,数据所有者在基于属性加密方法对第一密文进行加密,得到第二密文的过程中,可以确定目标消息的属性访问策略树W,并生成目标消息的第一验证序列z;基于属性加密方法、属性访问策略树及第一验证序列对第一密文进行加密,得到第二密文。且在具体应用场景中,数据所有者在基于属性加密方法、属性访问策略树及第一验证序列对第一密文进行加密,得到第二密文的过程中,可以对第一验证序列及第一密文进行拼接,得到拼接结果;基于属性加密方法、属性访问策略树对拼接结果进行加密,得到第二密文,比如可以调用ABE加密方法ABE.Encrypt(MPK,co||z,W)->CT对co||z进行属性加密得到第二密文CT。需要说明的是,可以由属性加密方法中的密钥授权中心预先调用ABE.Setup(1k)->(MPK,MSK)方法,生成公开***参数MPK、主密钥MSK,并公布MPK,也可以由密钥授权中心预先调用PRE初始设定函数PRE.Setup(1k)->pram,并公布pram,以便数据使用者和数据所有者在需要时应用MPK、pram进行相应操作。
具体应用场景中,数据所有者在接收数据使用者发送的第三密文、验证信息及数据使用者的公钥,第三密文、验证信息包括数据使用者基于属性加密方法对第二密文进行解密后得到的密文和信息的过程中,可以接收数据使用者发送的第三密文、第二验证序列及数据使用者的公钥,第三密文、第二验证序列包括数据使用者基于属性加密方法、数据使用者的属性私钥对第二密文进行解密后得到的密文和序列,数据使用者的属性私钥包括基于属性加密方法对数据使用者的属性进行处理后生成的私钥。也即数据使用者可以调用ABE.KeyGen(MSK,L)->SKL方法来基于自身属性生成数据使用者的属性私钥,并调用ABE.Decrypt(MPK,CT,SKL)->M进行解密,若属性L符合属性访问策略树W,则数据使用者可以顺利解密得到与第二密文co一致的第三密文及和第一验证序列z一致的第二验证序列,若属性L不符合属性访问策略树W,则数据使用者会解密失败,此时可以直接结束数据共享流程。
具体应用场景中,数据所有者在基于验证信息验证第三密文与第一密文是否一致的过程中,可以判断第二验证序列与第一验证序列是否一致;若第二验证序列与第一验证序列一致,则判定第三密文与第一密文一致;若第二验证序列与第一验证序列不一致,则判定第三密文与第一密文不一致。
步骤S106:传输重加密密钥至数据使用者,以使数据使用者基于代理重加密方法、重加密密钥、数据所有者的公钥对第三密文进行加密,得到第四密文,并使数据使用者基于代理重加密方法、数据使用者的私钥对第四密文进行解密,得到目标消息。
实际应用中,数据所有者在基于验证信息验证第三密文与第一密文是否一致,若一致,则基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥之后,便可以传输重加密密钥至数据使用者,相应的,数据使用者可以基于代理重加密方法、重加密密钥、数据所有者的公钥对第三密文进行加密,得到第四密文,比如可以调用PRE.ReEnc(co,rko->u,pko)->cu,获得第四密文cu,并且可以基于代理重加密方法、数据使用者的私钥对第四密文进行解密,得到目标消息,比如可以调用PRE解密方法PRE.Decrypt(cu,sku)->m来输入sku对cu进行解密得到明文m。
需要说的是,目标消息被执行了代理重加密和属性加密,使用目标消息同样需要执行两次解密,属性加密保证了数据使用者满足数据所有者设定的数据访问机制才能解密CT获得正确的co和z,只有拥有正确的z,向数据所有者证明满足属性访问策略,数据所有者才会返回重加密密钥rko->u,只有使用自己的私钥和与之相匹配的重加密密钥rko->u才能将co转换为cu,从而使用私钥sku进行解密拿到原始数据m,保证了目标消息的安全共享。此外,密文数据保存在区块链上,保证了数据的不可篡改性,属性加密解决了数据的细粒度访问问题,但遗留了ABE密钥授权中心权力过大的问题,使用代理重加密进行二次加密使数据所有者仍然保留数据的授权和验证能力,当数据所有者不希望向网络继续提供数据时,可随时退出流程销毁相关密钥。
对现有属性加密方法进行研究后可知,在CP-ABE体系中,存在密钥授权中心Authority,由密钥授权中心执行现有Setup(·)方法和KeyGen(MK,L)方法,该体系结构与区块链技术的去中心化思想背道而驰,密钥授权中心对加密后的数据有绝对的解密能力,直接使用属性加密解决区块链数据的细粒度访问控制可能会留下安全隐患。而本申请提供的一种数据共享方法,应用于数据所有者,获取待共享的目标消息;基于代理重加密方法、数据所有者的公钥对目标消息进行加密,得到第一密文;基于属性加密方法对第一密文进行加密,得到第二密文,并将第二密文上传至区块链进行共享;接收数据使用者发送的第三密文、验证信息及数据使用者的公钥,第三密文、验证信息包括数据使用者基于属性加密方法对第二密文进行解密后得到的密文和信息;基于验证信息验证第三密文与第一密文是否一致,若一致,则基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥;传输重加密密钥至数据使用者,以使数据使用者基于代理重加密方法、重加密密钥、数据所有者的公钥对第三密文进行加密,得到第四密文,并使数据使用者基于代理重加密方法、数据使用者的私钥对第四密文进行解密,得到目标消息。本申请中,数据所有者可以基于代理重加密方法及属性加密方法对目标消息进行处理,生成可以基于属性来决定是否能够共享目标消息的第二密文并上传至区块链中,且数据所有者自身可以在基于数据使用者的验证信息验证第三密文与第一密文一致的情况下,基于代理重加密方法生成重加密密钥,继而可以使得数据使用者自身可以基于重加密密钥解密得到目标消息,去除了属性加密方法中授权中心的中心性,使得属性加密方法与区块链可以更好的结合,适用性好。
本申请实施例提供的一种数据共享方法,应用于数据使用者,可以包括以下步骤:
在区块链中获取第二密文,第二密文包括数据所有者基于属性加密方法对第一密文进行加密得到的密文并由数据所有者上传至区块链,第一密文包括数据所有者基于代理重加密方法、数据所有者的公钥对目标消息进行加密后得到的密文;
基于属性加密方法对第二密文进行解密,得到第三密文和验证信息;
传输第三密文、验证信息及数据使用者的公钥至数据所有者,基于数据所有者基于验证信息验证第三密文与第二密文一致后,基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥;
接收数据所有者传输的重加密密钥;
基于代理重加密方法、重加密密钥、数据所有者的公钥对第三密文进行加密,得到第四密文;
基于代理重加密方法、数据使用者的私钥对第四密文进行解密,得到目标消息。
本申请实施例提供的应用于数据使用者的数据共享方法中的相应描述可以参阅上述实施例,本申请在此不再赘述。
为便于理解本申请提供的数据共享方法,现结合黑名单的共享过程来对本申请提供的数据共享方法进行描述,其可以包括以下步骤:
黑名单共享参与方参与联盟链的共建,区块链中的交互模块为各方提供数据使用者与数据使用者两种视角;
黑名单提供方通过交互模块提交待共享的黑名单数据,该黑名单数据可包含黑名单简介、黑名单字段名、黑名单内容等,其中黑名单内容是密文,密钥由提供方管理;
交互模块数据上传操作触发合约模块部署合约,并执行构造函数数据注册方法,该函数输入参数当前黑名单标签(唯一)、黑名单简介、黑名单字段、内容等;
联盟中其他各参与方可通过公告或者数据所有者发布黑名单数据,并通过调用合约数据查看方法,获取黑名单介绍信息;
数据使用者若需要访问该数据,通过交互模块提交访问申请操作,平台会同步触发调用合约模块,执行访问申请方法,该方法的输入参数为数据使用者的地址,请求黑名单标签,请求字段,数据解密密钥属性(如A公司、研发部门、2022年2月31日前)等;
数据使用者通过平台消息推送以及日志订阅,获知数据使用者请求通知;
数据所有者对请求进行访问授权管理,触发合约模块的访问授权方法,该方法仅合约部署方可调用,且输入参数为数据标签、请求者id,是否授权,授权字段等;
数据所有者调用密码模块的策略管理服务处理数据使用者属性,生成当前标签对应数据的访问策略树;
策略管理服务生成策略的规则为:策略能够涵盖访问者属性。如数据请求方A的访问属性为“A公司”、“研发部门”、“2022年2月31日前”,数据请求方B提供的访问属性为“B公司”、“财务部门”;数据请求方B提供的访问属性为“C公司”、“财务部门”,经过审批,不予B公司访问权限,则生成的策略为“A公司and研发部门and 2022年2月31日前or C公司and财务部门”;
数据所有者调用密码模块,用于基于代理重加密方法、数据所有者的公钥对黑名单数据进行加密,得到第一密文;基于属性加密方法对第一密文进行加密,得到第二密文,并将第二密文上传至区块链进行共享;
密码模块根据用户请求属性,生成数据使用者的属性私钥,如数据请求方A的访问属性为“A公司”、“研发部门”、“2022年2月31日前”,则根据“A公司”、“研发部门”、“<20220232”属性生成密钥,并通过安全通道分发;
数据使用者调用密码模块来基于属性加密方法对第二密文进行解密后得到的第三密文和验证信息,根据属性加密算法可知,只有具备满足密文策略的属性的密钥,方可解密数据,否则解密失败;
数据所有者基于验证信息验证第三密文与第一密文是否一致,若一致,则基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥;
数据所有者传输重加密密钥至数据使用者,以使数据使用者基于代理重加密方法、重加密密钥、数据所有者的公钥对第三密文进行加密,得到第四密文,并使数据使用者基于代理重加密方法、数据使用者的私钥对第四密文进行解密,得到黑名单数据;
需要说明的是,数据的上传、访问申请、授权、访问等操作日志都上链,保证不可篡改,可用于溯源。
请参阅图3,图3为本申请实施例提供的一种数据共享***的结构示意图。
本申请实施例提供的一种数据共享***,应用于数据所有者,可以包括:
第一获取模块101,用于获取待共享的目标消息;
第一加密模块102,用于基于代理重加密方法、数据所有者的公钥对目标消息进行加密,得到第一密文;
第二加密模块103,用于基于属性加密方法对第一密文进行加密,得到第二密文,并将第二密文上传至区块链进行共享;
第一接收模块104,用于接收数据使用者发送的第三密文、验证信息及数据使用者的公钥,第三密文、验证信息包括数据使用者基于属性加密方法对第二密文进行解密后得到的密文和信息;
第一验证模块105,用于基于验证信息验证第三密文与第一密文是否一致,若一致,则基于代理重加密方法、数据所有者的公钥、数据所有者的私钥及数据使用者的公钥,生成重加密密钥;
第一传输模块106,用于传输重加密密钥至数据使用者,以使数据使用者基于代理重加密方法、重加密密钥、数据所有者的公钥对第三密文进行加密,得到第四密文,并使数据使用者基于代理重加密方法、数据使用者的私钥对第四密文进行解密,得到目标消息。
本申请实施例提供的一种数据共享***中相应模块的描述可以参阅上述实施例,在此不再赘述。
本申请还提供了一种数据共享设备及计算机可读存储介质,其均具有本申请实施例提供的一种数据共享方法具有的对应效果。请参阅图4,图4为本申请实施例提供的一种数据共享设备的结构示意图。
本申请实施例提供的一种数据共享设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述数据共享方法的步骤。
请参阅图5,本申请实施例提供的另一种数据共享设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现数据共享设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述数据共享方法的步骤。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的数据共享***、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的数据共享方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据共享方法,其特征在于,应用于数据所有者,包括:
获取待共享的目标消息;
基于代理重加密方法、所述数据所有者的公钥对所述目标消息进行加密,得到第一密文;
基于属性加密方法对所述第一密文进行加密,得到第二密文,并将所述第二密文上传至区块链进行共享;
接收数据使用者发送的第三密文、验证信息及所述数据使用者的公钥,所述第三密文、所述验证信息包括所述数据使用者基于所述属性加密方法对所述第二密文进行解密后得到的密文和信息;
基于所述验证信息验证所述第三密文与所述第一密文是否一致,若一致,则基于所述代理重加密方法、所述数据所有者的公钥、所述数据所有者的私钥及所述数据使用者的公钥,生成重加密密钥;
传输所述重加密密钥至所述数据使用者,以使所述数据使用者基于所述代理重加密方法、所述重加密密钥、所述数据所有者的公钥对所述第三密文进行加密,得到第四密文,并使所述数据使用者基于所述代理重加密方法、所述数据使用者的私钥对所述第四密文进行解密,得到所述目标消息。
2.根据权利要求1所述的方法,其特征在于,所述基于代理重加密方法、所述数据所有者的公钥对所述目标消息进行加密,得到第一密文之前,还包括:
获取所述代理重加密方法的初始设定函数;
基于所述代理重加密方法、所述初始设定函数生成所述数据所有者的公钥及所述数据所有者的私钥。
3.根据权利要求2所述的方法,其特征在于,所述基于属性加密方法对所述第一密文进行加密,得到第二密文,包括:
确定所述目标消息的属性访问策略树,并生成所述目标消息的第一验证序列;
基于所述属性加密方法、所述属性访问策略树及所述第一验证序列对所述第一密文进行加密,得到所述第二密文。
4.根据权利要求3所述的方法,其特征在于,所述接收数据使用者发送的第三密文、验证信息及所述数据使用者的公钥,所述第三密文、所述验证信息包括所述数据使用者基于所述属性加密方法对所述第二密文进行解密后得到的密文和信息,包括:
接收所述数据使用者发送的第三密文、第二验证序列及所述数据使用者的公钥,所述第三密文、所述第二验证序列包括所述数据使用者基于所述属性加密方法、所述数据使用者的属性私钥对所述第二密文进行解密后得到的密文和序列,所述数据使用者的属性私钥包括基于所述属性加密方法对所述数据使用者的属性进行处理后生成的私钥。
5.根据权利要求4所述的方法,其特征在于,所述基于所述验证信息验证所述第三密文与所述第一密文是否一致,包括:
判断所述第二验证序列与所述第一验证序列是否一致;
若所述第二验证序列与所述第一验证序列一致,则判定所述第三密文与所述第一密文一致;
若所述第二验证序列与所述第一验证序列不一致,则判定所述第三密文与所述第一密文不一致。
6.根据权利要求3所述的方法,其特征在于,所述基于所述属性加密方法、所述属性访问策略树及所述第一验证序列对所述第一密文进行加密,得到所述第二密文,包括:
对所述第一验证序列及所述第一密文进行拼接,得到拼接结果;
基于所述属性加密方法、所述属性访问策略树对所述拼接结果进行加密,得到所述第二密文。
7.一种数据共享方法,其特征在于,应用于数据使用者,包括:
在区块链中获取第二密文,所述第二密文包括数据所有者基于属性加密方法对第一密文进行加密得到的密文并由所述数据所有者上传至所述区块链,所述第一密文包括所述数据所有者基于代理重加密方法、所述数据所有者的公钥对目标消息进行加密后得到的密文;
基于所述属性加密方法对所述第二密文进行解密,得到第三密文和验证信息;
传输所述第三密文、所述验证信息及所述数据使用者的公钥至所述数据所有者,基于所述数据所有者基于所述验证信息验证所述第三密文与所述第二密文一致后,基于所述代理重加密方法、所述数据所有者的公钥、所述数据所有者的私钥及所述数据使用者的公钥,生成重加密密钥;
接收所述数据所有者传输的所述重加密密钥;
基于所述代理重加密方法、所述重加密密钥、所述数据所有者的公钥对所述第三密文进行加密,得到第四密文;
基于所述代理重加密方法、所述数据使用者的私钥对所述第四密文进行解密,得到所述目标消息。
8.一种数据共享***,其特征在于,应用于数据所有者,包括:
第一获取模块,用于获取待共享的目标消息;
第一加密模块,用于基于代理重加密方法、所述数据所有者的公钥对所述目标消息进行加密,得到第一密文;
第二加密模块,用于基于属性加密方法对所述第一密文进行加密,得到第二密文,并将所述第二密文上传至区块链进行共享;
第一接收模块,用于接收数据使用者发送的第三密文、验证信息及所述数据使用者的公钥,所述第三密文、所述验证信息包括所述数据使用者基于所述属性加密方法对所述第二密文进行解密后得到的密文和信息;
第一验证模块,用于基于所述验证信息验证所述第三密文与所述第一密文是否一致,若一致,则基于所述代理重加密方法、所述数据所有者的公钥、所述数据所有者的私钥及所述数据使用者的公钥,生成重加密密钥;
第一传输模块,用于传输所述重加密密钥至所述数据使用者,以使所述数据使用者基于所述代理重加密方法、所述重加密密钥、所述数据所有者的公钥对所述第三密文进行加密,得到第四密文,并使所述数据使用者基于所述代理重加密方法、所述数据使用者的私钥对所述第四密文进行解密,得到所述目标消息。
9.一种数据共享设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据共享方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据共享方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211693833.1A CN116032475A (zh) | 2022-12-28 | 2022-12-28 | 一种数据共享方法、***、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211693833.1A CN116032475A (zh) | 2022-12-28 | 2022-12-28 | 一种数据共享方法、***、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116032475A true CN116032475A (zh) | 2023-04-28 |
Family
ID=86073550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211693833.1A Pending CN116032475A (zh) | 2022-12-28 | 2022-12-28 | 一种数据共享方法、***、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116032475A (zh) |
-
2022
- 2022-12-28 CN CN202211693833.1A patent/CN116032475A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109040045B (zh) | 一种基于密文策略属性基加密的云存储访问控制方法 | |
CN110855671B (zh) | 一种可信计算方法和*** | |
US20140325225A1 (en) | Self-authenticated method with timestamp | |
CN111371790B (zh) | 基于联盟链的数据加密发送方法、相关方法、装置和*** | |
US20140208117A1 (en) | Server apparatus and program | |
CN103973736A (zh) | 一种数据共享的方法及装置 | |
CN112532580B (zh) | 一种基于区块链及代理重加密的数据传输方法及*** | |
KR100981419B1 (ko) | 디지털 권한 관리를 위한 사용자 도메인 가입방법 및 그정보 교환 방법 | |
CN114513327B (zh) | 一种基于区块链的物联网隐私数据快速共享方法 | |
CN108809936B (zh) | 一种基于混合加密算法的智能移动终端身份验证方法及其实现*** | |
CN113225302B (zh) | 一种基于代理重加密的数据共享***及方法 | |
CN106411504A (zh) | 数据加密***、方法及装置 | |
CN113868684A (zh) | 一种签名方法、装置、服务端、介质以及签名*** | |
CN112597523A (zh) | 文件处理方法、文件转换加密机、终端、服务器及介质 | |
CN102055766A (zh) | 一种Webservice服务的管理方法和*** | |
CN113612608A (zh) | 一种双模对讲机基于公网实现集群加密的方法及*** | |
CN114154181A (zh) | 基于分布式存储的隐私计算方法 | |
CN110611679A (zh) | 一种数据传输方法、装置、设备及*** | |
CN113365264A (zh) | 一种区块链无线网络数据传输方法、装置及*** | |
CN112966280A (zh) | 数据处理方法、装置、服务器及数据管理*** | |
CN112149184A (zh) | 一种基于限时访问的区块链链外存储***及方法 | |
CN100561913C (zh) | 一种访问密码设备的方法 | |
CN111431880B (zh) | 一种信息处理方法及装置 | |
CN116032475A (zh) | 一种数据共享方法、***、设备及计算机可读存储介质 | |
CN114760053B (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 |