一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据分享的方法、系统及存储介质与流程

2022-07-23 07:24:36 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其涉及一种数据分享的方法,一种数据分享的系统,一种计算机可读存储介质和一种计算机程序产品。


背景技术:

2.数据分享常常是各企业之间或者企业内部各部门之间的需求,但数据分享往往面临数据安全问题。如何保障数据分享时的数据安全,保护隐私不外泄成为业内的一个难点。


技术实现要素:

3.针对上述现有技术,本发明实施例公开一种的数据分享的方法,可以在分享数据的同时,保护数据的安全性和隐私性的目的。
4.一种数据分享的方法,该方法包括:
5.数据提供方将原始共享数据进行二次哈希运算,将所述原始共享数据的二次哈希运算的结果作为加密共享数据发送给数据检索方,所述二次哈希运算包括第一哈希函数、第二哈希函数以及所述数据提供方的第一私钥;
6.所述数据检索方确定需要检索的原始数据,并对所述需要检索的原始数据利用第一哈希函数和第二私钥进行一次哈希运算,将所述需要检索的原始数据的一次哈希运算结果作为第一结果发送给所述数据提供方;
7.所述数据提供方将所述第一私钥加载于所述第一结果中,作为第二结果返回给所述数据检索方;
8.所述数据检索方利用所述第二哈希函数对所述第二结果再进行一次哈希运算,且从所述第二结果剔除所述第二私钥,获得所述需要检索的原始数据的二次哈希运算结果,将所述需要检索的原始数据的二次哈希运算结果作为加密检索数据;
9.所述数据检索方从所述加密共享数据中匹配所述加密检索数据,如果匹配成功,则确定所述需要检索的原始数据属于所述数据提供方提供的所述原始共享数据,并直接将所述需要检索的原始数据作为所述数据提供方分享的数据;如果匹配不成功,则确定所述需要检索的原始数据不属于所述数据提供方提供的所述原始共享数据,并确定所述数据提供方未分享所述需要检索的原始数据。
10.进一步地,
11.所述数据提供方将原始共享数据进行二次哈希运算的步骤和所述将原始共享数据的二次哈希运算的结果作为加密共享数据发送给数据检索方的步骤之间,该方法进一步包括:
12.所述数据提供方利用索引方式来标记所述加密共享数据对应的位置信息,且将所述原始共享数据的位置信息发送给所述数据检索方。
13.该方法进一步包括:
14.所述数据提供方的原始共享数据发生变更,所述数据提供方将变更的原始共享数
据进行二次哈希运算,作为变更的加密共享数据,将变更的加密共享数据以及对应的位置信息发送给所述数据检索方;
15.所述数据检索方根据所述变更的加密共享数据以及对应的位置信息进行同步变更。
16.进一步地,
17.所述数据检索方从所述加密共享数据中匹配所述加密检索数据的步骤之后,该方法进一步包括:
18.所述数据检索方为所述加密共享数据的位置信息进行标识,对于所述加密检索数据对应的位置信息标识为1,对于其余位置信息标识为0,所有的标识构成位置标识集合;
19.所述数据检索方对所述位置标识集合中的每一个元素进行随机加密运算,得到加密位置标识集合,并将所述加密位置标识集合发送给所述数据提供方;
20.所述数据提供方对所述原始共享数据对应的原始附加信息进行随机加密运算,得到加密附加信息;
21.所述数据提供方利用所述加密位置标识集合对所述加密附加信息进行过滤,过滤出所述加密检索数据对应的加密附加信息,并将所述加密检索数据对应的加密附加信息发送给所述数据检索方;
22.所述数据检索方对所述加密检索数据对应的加密附加信息进行随机解密运算,得到所述加密检索数据对应的原始附加信息。
23.进一步地,
24.所述数据提供方利用所述加密位置标识集合对所述加密附加信息进行过滤的步骤包括:
25.所述数据提供方按照设置的最大长度将每一个所述原始共享数据对应的原始附加信息划分为j个信息数据块,对所述j个信息数据块进行随机加密运算,得到j个加密信息数据块;一个所述原始共享数据对应一个所述加密共享数据,一个所述加密共享数据对应j个加密信息数据块;所述数据提供方有i个所述加密共享数据,所述加密位置标识集合中包括i个元素;i和j为大于或等于1的正整数;
26.设置i和j的初始值为1,i∈[1,i],j∈[1,j];
[0027]
将第i个加密共享数据作为待处理共享数据,将第j个加密信息数据块作为待处理加密信息数据块,设置第j个加密过滤结果rj的初始值为0,
[0028]
所述数据提供方将所述第i个加密共享数据的第j个加密信息数据块与所述加密位置标识集合中的第i个元素进行加密乘法运算,作为单项加密过滤结果;
[0029]
将所述第j个加密过滤结果rj与所述单项加密过滤结果的总和作为新的第j个加密过滤结果rj;
[0030]
令i=i 1,并返回到所述数据提供方将所述第i个加密共享数据的第j个加密信息数据块与所述加密位置标识集合中的第i个元素进行加密乘法运算的步骤,直到计算完所有加密共享数据的第j个加密信息数据块与所述加密位置标识集合中所有元素的加密乘法运算;
[0031]
令i=1,j=j 1,并返回到所述将第i个加密共享数据作为待处理共享数据的步骤,直到计算完所有加密共享数据的第j个加密信息数据块与所述加密位置标识集合中所
有元素的加密乘法运算;
[0032]
将j个所述加密过滤结果rj拼接为r,作为过滤出的所述加密检索数据对应的加密附加信息。
[0033]
针对上述现有技术,本发明实施例公开一种的数据分享的系统,可以在分享数据的同时,保护数据的安全性和隐私性的目的。
[0034]
一种数据分享的系统,该系统包括数据提供方和数据检索方,其中:
[0035]
所述数据提供方,用于将原始共享数据进行二次哈希运算,将所述原始共享数据的二次哈希运算的结果作为加密共享数据发送给所述数据检索方,所述二次哈希运算包括第一哈希函数、第二哈希函数以及所述数据提供方的第一私钥;将所述第一私钥加载于所述第一结果中,作为第二结果返回给所述数据检索方;
[0036]
所述数据检索方,用于确定需要检索的原始数据,并对所述需要检索的原始数据利用第一哈希函数和第二私钥进行一次哈希运算,将所述需要检索的原始数据的一次哈希运算结果作为第一结果发送给所述数据提供方;利用所述第二哈希函数对所述第二结果再进行一次哈希运算,且从所述第二结果剔除所述第二私钥,获得所述需要检索的原始数据的二次哈希运算结果,将所述需要检索的原始数据的二次哈希运算结果作为加密检索数据;从所述加密共享数据中匹配所述加密检索数据,如果匹配成功,则确定所述需要检索的原始数据属于所述数据提供方提供的所述原始共享数据,并直接将所述需要检索的原始数据作为所述数据提供方分享的数据;如果匹配不成功,则确定所述需要检索的原始数据不属于所述数据提供方提供的所述原始共享数据,并确定所述数据提供方未分享所述需要检索的原始数据。
[0037]
所述数据提供方进一步用于,利用索引方式来标记所述加密共享数据对应的位置信息,且将所述原始共享数据的位置信息发送给所述数据检索方。
[0038]
所述数据提供方进一步用于,所述原始共享数据发生变更,将变更的原始共享数据进行二次哈希运算,作为变更的加密共享数据,将变更的加密共享数据以及对应的位置信息发送给所述数据检索方;
[0039]
所述数据检索方进一步用于,根据所述变更的加密共享数据以及对应的位置信息进行同步变更。
[0040]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现上述的数据分享的方法。
[0041]
本技术实施例还提供一种计算机程序产品,包括计算机指令,所述计算机指令在被处理器执行时实施如上述的数据分享的方法。
[0042]
综上所述,由于数据提供方和数据检索方发送给对方的数据都经过哈希运算加密,可以保证数据传输过程中无法被第三方截取获取明文。数据检索方只能检索对方提供的加密共享数据,无法获取原始共享数据的明文,能保证数据提供方一侧数据的安全性。同样,数据提供方无法获取需要检索的原始数据的明文,从而保证数据检索方一侧数据的隐私性。本技术实施例方案既能够达到数据共享的目的,又能保证数据的安全性和隐私性。
附图说明
[0043]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0044]
图1是本技术实现数据分享的方法实施例一的流程图。
[0045]
图2是本技术实现数据分享的方法实施例二的流程图。
[0046]
图3是数据提供方利用加密位置标识集合对加密附加信息进行过滤的方法流程图。
[0047]
图4是本技术实现数据分享的系统实施例一的结构示意图。
具体实施方式
[0048]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0049]
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0050]
下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0051]
本技术实施例的数据提供方通过二次哈希运算的加密方式向数据检索方提供共享数据,数据检索方无法直接获得共享数据的明文,从而保护共享数据的安全。数据检索方通过对要检索的数据先后进行两次哈希运算获得同样加密的检索数据,数据提供方无法直接获取需要检索的数据的明文,不但使得数据检索方从加密的共享数据中进行检索,也保护了数据检索方的隐私。
[0052]
本技术实施例中,假设数据提供方提供可以共享的原始数据,数据检索方希望从共享数据中查询自身需要检索的原始数据。为了数据的安全,数据提供方不提供原始共享数据的明文,数据检索方也不希望数据提供方获知其检索的数据。为了保护双方的数据以及隐私需求,双方先协商共有的两个哈希函数,即第一哈希函数和第二哈希函数。数据提供方拥有第一私钥,数据检索方拥有第二私钥,双方无法获取对方的私钥,在通信中保证数据的安全。
[0053]
图1是本技术实现数据分享的方法实施例一的流程图。如图1所示,该方法包括:
[0054]
步骤101:数据提供方将原始共享数据进行二次哈希运算,将原始共享数据的二次哈希运算的结果作为加密共享数据发送给数据检索方,二次哈希运算包括第一哈希函数、第二哈希函数以及数据提供方的第一私钥。
[0055]
本步骤中,数据提供方将原始共享数据进行二次哈希运算之后再提供给数据检索
方。由于原始共享数据经过二次哈希运算,成为加密的数据,数据传输过程中处于安全保护的状态,任何第三方无法获知原始共享数据的明文。另外,本步骤中的二次哈希运算不但包括两个哈希函数,还包括数据提供方的第一私钥。由于数据检索方经过协商仅获知两个哈希函数,未获得第一私钥,因此无法直接解密出原始共享数据的明文,保证数据提供方的原始共享数据的安全性。
[0056]
步骤102:数据检索方确定需要检索的原始数据,并对需要检索的原始数据利用第一哈希函数和第二私钥进行一次哈希运算,将需要检索的原始数据的一次哈希运算结果作为第一结果发送给数据提供方。
[0057]
本步骤中,数据检索方将需要检索的原始数据进行一次哈希运算,成为加密的数据,在数据传输过程中处于安全保护的状态,任何第三方无法获知需要检索的原始数据的明文。另外,本步骤中的一次哈希运算不但包括哈希函数,还包括数据检索方的第二私钥。由于数据提供方经过协商仅获知该哈希函数,未获得第二私钥,因此无法直接解密出需要检索的原始数据的明文,从而保证数据检索方的隐私。
[0058]
步骤103:数据提供方将第一私钥加载于第一结果中,作为第二结果返回给数据检索方。
[0059]
步骤104:数据检索方利用第二哈希函数对第二结果再进行一次哈希运算,且从第二结果剔除第二私钥,获得需要检索的原始数据的二次哈希运算结果,将需要检索的原始数据的二次哈希运算结果作为加密检索数据。
[0060]
经过上述步骤103和步骤104,数据检索方可以获得需要检索的原始数据的二次哈希运算结果。该二次哈希运算中包括第一哈希函数、第二哈希函数和数据提供方的第一私钥。且本步骤中已经剔除了第二私钥,因此对于需要检索的原始数据来说,数据检索方得到的二次哈希运算结果与数据提供方计算出的二次哈希运算结果是一样的。
[0061]
步骤105:数据检索方从加密共享数据中匹配加密检索数据,如果匹配成功,则确定需要检索的原始数据属于数据提供方提供的原始共享数据,并直接将所述需要检索的原始数据作为所述数据提供方分享的数据;如果匹配不成功,则确定需要检索的原始数据不属于数据提供方提供的原始共享数据,并确定所述数据提供方未分享所述需要检索的原始数据。
[0062]
本步骤中,由于原始共享数据是经过二次哈希运算计算出来的加密共享数据,需要检索的原始数据是经过二次哈希运算计算出来的加密检索数据,因此可以从加密共享数据中匹配加密检索数据。如果匹配成功,可以判断出数据检索方需要检索的原始数据属于数据提供方提供的原始共享数据,如果匹配不成功,则判断出数据检索方需要检索的原始数据不属于数据提供方提供的原始共享数据。
[0063]
应用本技术实施例方案,由于数据提供方和数据检索方发送给对方的数据都经过哈希运算加密,可以保证数据传输过程中无法被第三方截取获取明文,保证数据的安全性。数据检索方只能检索对方提供的加密共享数据,无法获取原始共享数据的明文,能保证数据提供方一侧数据的安全性。同样,数据提供方只能获知对方提供的需要检索的原始数据一次哈希运算的第一结果。第一结果是加密数据,数据提供方无法获取需要检索的原始数据的明文,从而保证数据检索方一侧数据的隐私性。因此,本技术实施例方案既能够达到数据共享的目的,又能保证数据的安全性和隐私性。
[0064]
为了更好地描述本技术实施例方案,下面用其他实施例进行详细描述。
[0065]
在方法实施例二中,假设数据提供方提供共享的原始数据,数据检索方希望从共享数据中查询自身需要检索的原始数据。为了数据的安全和隐私,双方协商共有两个哈希函数,即第一哈希函数和第二哈希函数。另外,数据提供方拥有第一私钥,数据检索方拥有第二私钥,双方无法获取对方的私钥。
[0066]
图2是本技术实现数据分享的方法实施例二的流程图。如图2所示,该方法包括:
[0067]
步骤201:数据提供方将原始共享数据进行二次哈希运算,将二次哈希运算的结果作为加密共享数据,二次哈希运算包括第一哈希函数、第二哈希函数以及数据提供方的第一私钥。
[0068]
步骤202:数据提供方利用索引方式来标记加密共享数据对应的位置信息。
[0069]
步骤203:数据提供方将加密共享数据以及加密共享数据的位置信息发送给数据检索方。
[0070]
上述步骤201~步骤203与方法实施例一的步骤101相似,数据提供方将原始共享数据的二次哈希运算的结果作为加密共享数据发送给数据检索方。不同的是,本实施例中的数据提供方还将利用索引方式来标记加密共享数据对应的位置信息,且将加密共享数据的位置信息也一并发送给数据检索方,以便于数据检索方后续更加方便快速地进行检索。
[0071]
假设第一哈希函数为h1,第二哈希函数为h2,第一私钥为k,任意一个原始共享数据为xi,那么数据提供方将原始共享数据进行二次哈希运算可以表示为:
[0072]
pi=h2(xi,h1(xi)k), xi∈xs={xi|i=1,2...n}
ꢀꢀꢀꢀꢀ
公式1
[0073]
其中,xs表示所有的n个原始共享数据,n为自然数,pi表示原始共享数据xi对应的二次哈希运算结果,ps={pi|i=1,2...n}表示所有的加密共享数据。
[0074]
本领域技术人员知道,数据通常采用一定形式的数据结构进行保存,比如数组、链表、b树、b 树等数据结构。为了便于检索,数据提供方利用索引来标记原始共享数据对应的位置信息,且将位置信息一并分享给数据检索方。假设本实施例采用b 树保存共享数据,数据提供方可以采用索引方式来标记加密共享数据对应的位置信息,这里利用idps表示其索引。
[0075]
实际应用中,如果数据提供方的原始共享数据发生了变更,可以将变更的原始共享数据进行二次哈希运算,作为变更的加密共享数据,将变更的加密共享数据以及对应的位置信息发送给所述数据检索方。数据检索方根据变更的加密共享数据以及对应的位置信息进行同步变更。这里所述变更可以是增加、删除或修改。另外,数据提供方还可以周期性地更新第一私钥k的值,以便更好地保护数据的安全性。
[0076]
步骤204:数据检索方确定需要检索的原始数据,并对需要检索的原始数据利用第一哈希函数和第二私钥进行一次哈希运算,将需要检索的原始数据的一次哈希运算结果作为第一结果发送给数据提供方。
[0077]
本步骤与方法实施例一的步骤102相同。数据检索方将需要检索的原始数据进行一次哈希运算,成为加密的数据,数据传输过程中任何第三方无法获知原始共享数据的明文。另外,由于数据提供方无法获知第二私钥,因此无法直接解密出需要检索的原始数据的明文,保护数据检索方的隐私。
[0078]
假设第一哈希函数为h1,第二私钥为r,需要检索的原始数据为x',那么对需要检
索的原始数据利用第一哈希函数和第二私钥进行一次哈希运算可以表示为:
[0079]
b=h1(x

)rꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式2
[0080]
其中,b表示第一结果。
[0081]
步骤205:数据提供方将第一私钥加载于第一结果中,作为第二结果返回给数据检索方。
[0082]
本步骤与方法实施例一中的步骤103相同。本步骤将第一私钥加载于第一结果可以表示为:
[0083]
c=bk=h1(x

)
rk
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式3
[0084]
其中,h1为第一哈希函数,k为第一私钥,r为第二私钥,需要检索的原始数据为x',c表示第二结果。
[0085]
步骤206:数据检索方利用第二哈希函数对第二结果再进行一次哈希运算,且从第二结果剔除第二私钥,获得需要检索的原始数据的二次哈希运算结果,将需要检索的原始数据的二次哈希运算结果作为加密检索数据。
[0086]
本步骤与方法实施例一中的步骤104相同。本技术实施例中,数据检索方将事先加载的第二私钥从第二结果中剔除,且再次进行哈希运算。至此,需要检索的原始数据进行了二次哈希运算,在二次哈希运算中包括了第一哈希函数、第二哈希函数和第一私钥。也就是说,需要检索的原始数据与原始共享数据进行了相同的运算。
[0087]
本步骤利用第二哈希函数对第二结果再进行一次哈希运算可以表示为:
[0088]
p

=h2(x

,c-r
)=h2(x

,h1(x

)k)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式4
[0089]
其中,h1为第一哈希函数,h2为第二哈希函数,k为第一私钥,r为第二私钥,需要检索的原始数据为x',c表示第二结果,p

表示加密检索数据。从中可以看出,c-r
的逆运算相当于从第二结果中剔除了第二私钥r。
[0090]
步骤207:数据检索方从加密共享数据中匹配加密检索数据,如果匹配成功,则执行步骤208;如果匹配不成功,则执行步骤209。
[0091]
步骤208:数据检索方确定需要检索的原始数据属于数据提供方提供的原始共享数据,并直接将所述需要检索的原始数据作为所述数据提供方分享的数据;再跳转到步骤210。
[0092]
步骤209:数据检索方确定需要检索的原始数据不属于数据提供方提供的原始共享数据,并确定所述数据提供方未分享所述需要检索的原始数据,再跳转到步骤210。
[0093]
上述步骤207~步骤209是数据检索方从加密共享数据中匹配加密检索数据的过程,方法实施例一的步骤105相同。本技术实施例中,由于原始共享数据是经过二次哈希运算的加密数据,需要检索的原始数据也是经过二次哈希运算的加密数据,如果原始共享数据中包括需要检索的原始数据,就可以从加密共享数据中匹配到相同的加密检索数据。
[0094]
如果数据检索方只需要确定数据提供方是否可以分享需要检索的原始数据,那么在执行步骤201~步骤209时,就可以退出本流程。如果数据检索方还需要进一步获取需要检索的原始数据对应的附加信息,则可以继续执行后续步骤。
[0095]
实际应用中,数据提供方还可以为提供数据的附加信息。比如:数据提供方分享的数据为用户手机号码,用户手机号码为原始共享数据。数据提供方还可以进一步分享相应的用户姓名、用户所在城市等原始附加信息。如果数据检索方需要进一步获取原始附加信
息,则可以进一步执行以下步骤。
[0096]
实际应用中,为了保护数据检索方的隐私,不管是否匹配成功,本技术实施例都将执行步骤210以下的步骤。也就是说,步骤207中,即使数据检索方从加密共享数据中匹配加密检索数据时未匹配成功,但为了避免将匹配不成功这一信息透露给数据提供方,保护数据检索方的隐私,也可以继续执行210以下的步骤。
[0097]
步骤210:数据检索方为加密共享数据的位置信息进行标识,对于加密检索数据对应的位置信息标识为1,对于其余位置信息标识为0,所有的标识构成位置标识集合。
[0098]
步骤211:数据检索方对位置标识集合中的每一个元素进行随机加密运算,得到加密位置标识集合,并将加密位置标识集合发送给数据提供方。
[0099]
上述步骤210~步骤211是生成位置标识集合并将加密位置标识集合发送给数据提供方的过程。本技术实施例中,数据检索方在步骤203获知加密共享数据的位置信息。例如:加密共享数据采用b 树数据结构保存,通过步骤203可以获知每一个加密共享数据在b 树中的位置信息,即位于b 树中的索引标记。
[0100]
如果数据检索方已经成功匹配到加密检索数据,那么也可以同时确定加密检索数据在b 树中的位置信息。本技术实施例还进一步为位置信息进行标识,将加密检索数据对应的位置信息标识为1,其余位置信息标识为0,这些标识构成位置标识集合。需要注意的是,位置信息和位置信息的标识不相同。其中,位置信息是指某个加密共享数据在数据结构中的位置,而位置信息的标识是指数据结构中某个位置处的加密共享数据是否为需要检索的数据的标识。为了避免泄露数据检索方的检索意图,本步骤还对位置标识集合中的每一个元素进行随机加密运算。比如:b 树中保存100个加密共享数据,且b 树利用1~100索引标识对应每一个位置信息,假设其中第55个位置处为加密检索数据。那么,数据检索方将生成一个包括0和1元素的位置标识集合,且第55位元素为1,其余元素均为0。另外,为了保护数据检索方隐私,如果步骤207匹配不成功,可以任意设置加密检索数据的位置信息,但需要继续执行后续步骤,以避免数据提供方获知数据检索方未匹配成功的这一信息。
[0101]
本技术实施例中,通过位置标识集合可以获知哪个位置是匹配成功的加密检索数据。但为了保密此位置信息,数据检索方将位置标识集合中的100个元素进行随机加密运算,使数据提供方无法获知匹配成功的加密检索数据所处的位置。
[0102]
实际应用中,假设加密检索数据p

对应的位置信息为l

,那么将位置信息l

对应标识为1,其余位置信息对应标识为0,构成的位置标识集合可以表示为:
[0103]
m={mi|mi=1若i=l

,否则mi=0,i=1,2...n}
ꢀꢀꢀꢀꢀꢀꢀꢀ
公式5
[0104]
其中,mi表示位于第i位的元素。
[0105]
此后,数据检索方再进一步对位置标识集合m中的每一个元素mi进行随机加密运算,可以表示为:
[0106]
q={qi|qi=enc(mi),i=1,2...n}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式6
[0107]
其中,q表示加密位置标识集合,qi表示加密位置标识集合中的每一个元素,enc(mi)表示对元素mi进行随机加密运算。
[0108]
步骤212:数据提供方对原始共享数据对应的原始附加信息进行随机加密运算,得到加密附加信息。
[0109]
由于位置标识集合中的元素进行了随机加密运算,为了便于参与后续计算,数据
提供方将原始共享数据对应的原始附加信息也进行了随机加密运算,获得加密附加信息。此时,数据提供方一侧的位置标识集合和原始附加信息都进行了随机加密运算。
[0110]
步骤213:数据提供方利用加密位置标识集合对加密附加信息进行过滤,过滤出加密检索数据对应的加密附加信息,并将加密检索数据对应的加密附加信息发送给数据检索方。
[0111]
由于加密检索数据对应的位置信息标识为1,其余位置信息标识为0,因此数据提供方可以利用位置标识集合进行过滤,过滤后仅保留位置信息标识为1的加密检索数据对应的加密附加信息。当然,由于这里的附加信息是加密的,因此采用同样是加密后的位置标识集合,即加密位置标识集合。
[0112]
步骤214:数据检索方对加密检索数据对应的加密附加信息进行随机解密运算,得到加密检索数据对应的原始附加信息。
[0113]
由于数据检索方得到过滤出的加密附加信息在步骤212采用了随机加密运算,比如基于公钥完全同态加密算法,因此本步骤214可以进行逆运算,采用随机解密运算获得原始附加信息。此时,数据检索方既确定了需要检索的原始数据,也获得了对应的原始附加信息。以数据提供方提供用户手机号码(135***0000)、用户姓名(张三)、用户所在城市(上海)为例:假设数据检索方从加密共享数据中检索出“135***0000”这一手机号码,还将根据本技术实施例获得了“张三”以及“上海”这些原始附加信息。但另一方面,数据检索方无法获取其他共享数据,从而保证数据提供方一侧数据的安全性。数据提供方无法获知数据检索方获得“135***0000”、“张三”以及“上海”这些信息,从而保证数据检索方的隐私。
[0114]
应用本技术实施例方案,由于数据提供方和数据检索方发送给对方的数据都是经过哈希运算加密的,可以保证数据传输过程中无法被第三方截取获取明文,保证数据的安全性。数据检索方只能检索对方提供的加密共享数据,数据提供方只能获知加密第一结果,无法获取需要检索的原始数据的明文,可以保证数据提供方一侧的数据安全性,也可以保证数据检索方一侧数据的隐私性。另外,本技术实施例还可以在不被数据提供方感知的情况下,获得需要检索数据对应的附加信息,可以更好地满足数据检索方一侧的实际需求。
[0115]
如上所述,方法实施例二中的步骤213采用过滤方式过滤出加密检索数据对应的加密附加信息。实际应用中,数据提供方通常会提供大量的原始共享数据,原始共享数据的数量与加密位置标识集合中元素个数相同。另外,假设加密乘法运算受最大长度限制。图3是数据提供方利用加密位置标识集合对加密附加信息进行过滤的方法流程图。如图3所示,该方法包括:
[0116]
步骤301:数据提供方按照设置的最大长度将每一个原始共享数据对应的原始附加信息划分为j个信息数据块,对j个信息数据块进行随机加密运算,得到j个加密信息数据块;一个原始共享数据对应一个加密共享数据,一个加密共享数据对应j个加密信息数据块;数据提供方有i个加密共享数据,加密位置标识集合中包括i个元素;i和j为大于或等于1的正整数。
[0117]
由于后续的加密乘法运算受最大长度限制,因此需要按照最大长度将原始共享数据对应的附加信息划分为数据块,这里称为信息数据块。比如:附加信息为1000比特位,而加密乘法运算最大长度限制为100比特位,因此需要将附加信息划分为10个长度为100比特位的信息数据块。
[0118]
实际应用中,假设最大长度为lb,d表示原始共享数据对应的原始附加信息,dj表示信息数据块,一个原始附加信息划分为j个信息数据块,那么获得加密信息数据块可以表示为:
[0119]
oj=enc(dj) j=1,2...l
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式7
[0120]
其中,enc(dj)表示对信息数据块dj进行随机加密运算,oj表示加密信息数据块。
[0121]
步骤302:设置i和j的初始值为1,i∈[1,i],j∈[1,j]。
[0122]
步骤303:将第i个加密共享数据作为待处理共享数据,将第j个加密信息数据块作为待处理加密信息数据块,设置第j个加密过滤结果rj的初始值为0。
[0123]
步骤304:数据提供方将第i个加密共享数据的第j个加密信息数据块与加密位置标识集合中的第i个元素进行加密乘法运算,作为单项加密过滤结果。
[0124]
步骤305:将第j个加密过滤结果rj与单项加密过滤结果的总和作为新的第j个加密过滤结果rj。
[0125]
步骤306:令i=i 1,并返回到步骤304,直到计算完所有加密共享数据的第j个加密信息数据块与加密位置标识集合中所有元素的加密乘法运算。
[0126]
上述步骤303~步骤306的内循环过程是将各加密共享数据的第j个加密信息数据块分别与加密位置标记集合中的各元素进行加密乘法运算,将其总和作为第j个加密过滤结果rj。如上所述,由于加密位置标识集合中只有加密检索数据对应的位置信息标识为1,其余位置信息标识为0,因此可以过滤出加密检索数据对应的第j个加密信息数据块。上述步骤303~步骤306可以表示为:
[0127][0128]
其中,o
i,j
表示第i个加密共享数据对应的第j个加密信息数据块,qi表示加密位置标识集合q中第i个元素,absorb(o
i,j
,qi)表示加密信息数据块o
i,j
和第i个元素qi之间的加密乘法运算,表示各加密乘法运算结果之和。实际应用中,absorb可以为0/1乘法。以absorb(m,i)为例,假设输入m和i的密文,输出m*i的密文,那么,当i=0时,结果中m将被覆盖,当i=1,结果中i将被吸收。也就是说,在absorb(m,i)中,将会过滤出i=1时对应的m。在本技术实施例中,absorb(o
i,j
,qi)表示过滤出qi=1时对应的o
i,j
。如上所述,加密位置标识集合q中只有加密检索数据对应的位置信息标识qi为1,对于其余位置信息标识为0,因此可以过滤出加密检索数据对应的第j个加密信息数据块。
[0129]
步骤307:令i=1,j=j 1,并返回到步骤303,直到计算完所有加密共享数据的第j个加密信息数据块与加密位置标识集合中所有元素的加密乘法运算。
[0130]
经过上述步骤303~步骤307的外循环过程,将处理完到各加密共享数据对应的所有的加密信息数据块。比如第一次循环结束之后,获得到各加密共享数据对应的第1个加密信息数据块的加密过滤结果。第二次循环时,获得各加密共享数据对应的第2个加密附加信息数据块的加密过滤结果,并以此类推。假设原始附加信息划分为j个附加信息数据块,经过上述步骤303~步骤307的j次循环,可以获得r1、r2……rj
共j个加密信息数据块的加密过滤结果。
[0131]
步骤308:将j个加密过滤结果rj拼接为r,作为过滤出的加密检索数据对应的加密附加信息。
[0132]
由于r1、r2……rj
是分离的数据块,需要将其进行拼接,拼接之后为加密检索数据对应的加密附加信息。另外需要说明的是,上述步骤211、步骤301和步骤304等处涉及到的加密运算可以为基于公钥的完全同态加密算法。在基于公钥的完全同态加密算法中,数据提供方和数据检索方事先协商获得了不同秘钥。一方对数据加密后无法自行解密,由另一方进行解密。以步骤301为例,数据提供方对附加信息数据块进行随机加密运算,得到加密信息数据块。当数据提供方利用步骤213过滤出加密检索数据对应的加密附加信息后,无法对加密检索数据对应的加密附加信息进行解密,但数据检索方可以在步骤214对其进行解密。
[0133]
应用本技术实施例方案,由于数据提供方利用加密位置标识集合对加密附加信息进行了过滤,从中可以过滤出加密检索数据对应的加密附加信息。因此,本技术实施例的数据提供方不仅可以分享需要检索的原始数据,还可以进一步分享对应的原始附加信息,并同时保证数据提供方和数据检索方双方的隐私。
[0134]
本技术实施例还提供一种数据分享的系统。图4是本技术实现数据分享的系统实施例一的结构示意图。如图4所示,该系统包括数据提供方401和数据检索方402。其中:
[0135]
数据提供方401,用于将原始共享数据进行二次哈希运算,将原始共享数据的二次哈希运算的结果作为加密共享数据发送给数据检索方402,二次哈希运算包括第一哈希函数、第二哈希函数以及数据提供方401的第一私钥;将第一私钥加载于第一结果中,作为第二结果返回给数据检索方402。
[0136]
数据检索方402,用于确定需要检索的原始数据,并对需要检索的原始数据利用第一哈希函数和第二私钥进行一次哈希运算,将需要检索的原始数据的一次哈希运算结果作为第一结果发送给数据提供方401;利用第二哈希函数对第二结果再进行一次哈希运算,且从第二结果剔除第二私钥,获得需要检索的原始数据的二次哈希运算结果,将需要检索的原始数据的二次哈希运算结果作为加密检索数据;从加密共享数据中匹配加密检索数据,如果匹配成功,则确定需要检索的原始数据属于数据提供方401提供的原始共享数据,并直接将所述需要检索的原始数据作为所述数据提供方分享的数据;如果匹配不成功,则确定需要检索的原始数据不属于数据提供方401提供的原始共享数据,并确定所述数据提供方未分享所述需要检索的原始数据。
[0137]
在另一实施例中,数据提供方401可以进一步用于,利用索引方式来标记加密共享数据对应的位置信息,且将原始共享数据的位置信息发送给数据检索方402。
[0138]
在另一实施例中,数据提供方401可以进一步用于,原始共享数据发生变更,将变更的原始共享数据进行二次哈希运算,作为变更的加密共享数据,将变更的加密共享数据以及对应的位置信息发送给数据检索方402。相应地,数据检索方402进一步用于,根据变更的加密共享数据以及对应的位置信息进行同步变更。
[0139]
在另一实施例中,数据提供方401和数据检索方还可以根据上述方法实施例二和方法实施例三的流程实现数据分享,此处不再赘述。
[0140]
本技术实施例还提供一种计算机可读介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时可执行如上所述的数据分享的方法。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当
上述一个或多个程序被执行时,可以实现上述各实施例描述的数据分享的方法。根据本技术公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本技术保护的范围。在本技术公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0141]
本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令在被处理器执行时实施如上述任一实施例所述的方法。
[0142]
本技术附图中的流程图和框图,示出了按照本技术公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标准的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0143]
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本技术中。特别地,在不脱离本技术精神和教导的情况下,本技术的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本技术公开的范围。
[0144]
本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思路,并不用于限制本技术。对于本领域的技术人员来说,可以依据本发明的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献