CN116541886A - 一种用于隐私保护的多键值数据隐匿查询方法 - Google Patents
一种用于隐私保护的多键值数据隐匿查询方法 Download PDFInfo
- Publication number
- CN116541886A CN116541886A CN202310814889.6A CN202310814889A CN116541886A CN 116541886 A CN116541886 A CN 116541886A CN 202310814889 A CN202310814889 A CN 202310814889A CN 116541886 A CN116541886 A CN 116541886A
- Authority
- CN
- China
- Prior art keywords
- data
- party
- key
- query
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 241000544061 Cuculus canorus Species 0.000 claims abstract description 13
- 230000003993 interaction Effects 0.000 claims abstract description 7
- 239000004973 liquid crystal related substance Substances 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种用于隐私保护的多键值数据隐匿查询方法,涉及查询方与数据方之间的数据交互,包括:查询方与数据方预先商议确定的加密规则;基于加密规则,查询方将加密之后的查询F发送给数据方;数据方根据接收到的查询F及加密规则,进行相关运算得到密文集合F^以及加密集合T;数据方使用布谷鸟哈希对所述加密集合T中的元素映射到集合S中,对于S中空余的位置采用虚假数据进行填充;数据方将所述密文集合F^以及集合S发送给查询方;查询方采用加密规则与接收到的所述密文集合F^,进行解密完成查询。该方法其在保证数据隐私性的前提下,减少了搜索查询所需要的比较次数,节省了参与方的交互时间,大大提升了数据隐匿搜索的效率。
Description
技术领域
本发明涉及信息安全技术领域,更具体的说是涉及一种用于隐私保护的多键值数据隐匿查询方法。
背景技术
目前,数字经济规模保持快速增长,由于数据的特殊性,在数据的交易、流通、共享过程中可能会出现一系列的安全问题。人们对于数据的隐私保护变得越来越重视。如何使得进行数据流通的双方安全的进行数据处理活动成为了一个亟待解决的问题。
数据的隐匿搜索查询可以保护数据流通双方的隐私信息,使得数据在流通过程中不会暴露任何隐私信息。隐匿搜索查询是隐私计算领域中一个十分重要的技术,在联邦学习、安全多方计算等算法中都有着不可替代的作用。现有的数据隐匿查询方案大多数都是基于OT实现的,整个过程较为复杂。另外还有一些方案是基于椭圆曲线加密来实现的,然而这些方案在进行查询时往往需要大量的比较操作,这大大限制了查询的效率。
发明内容
有鉴于此,本发明提供了一种用于隐私保护的多键值数据隐匿查询方法,旨在解决现有的数据隐匿查询方案的复杂性、查询效率低的问题。
为了实现上述目的,本发明采用如下技术方案:
本发明提供一种用于隐私保护的多键值数据隐匿查询方法,涉及查询方与数据方之间的数据交互,其中,所述查询方提供所查询数据的id编号,所述数据方提供所有的数据id编号以及所述id编号所对应的具体数据内容;该查询方法具体包括以下步骤:
S1、所述查询方与数据方预先商议确定的加密规则;
S2、基于所述加密规则,查询方将加密之后的查询F发送给所述数据方;
S3、所述数据方根据接收到的查询F及所述加密规则,进行相关运算得到密文集合F^以及加密集合T;
S4、所述数据方使用布谷鸟哈希对所述加密集合T中的元素映射到集合S中,对于S中空余的位置采用虚假数据进行填充;
S5、所述数据方将所述密文集合F^以及集合S发送给所述查询方;
S6、所述查询方采用所述加密规则与接收到的所述密文集合F^,进行解密完成查询。
在一个实施例中,所述步骤S1包括:
S101.查询方与数据方预先商议确定所使用的椭圆曲线以及所需的哈希函数;
S102.查询方和数据方迭代使用哈希函数将自己的原始数据进行散列直到每个值都是椭圆曲线上某一点的x值,然后带入椭圆曲线得到一个点;
S103.查询方和数据方各自从椭圆曲线上随机选择一个点作为私钥,设查询方选择的私钥为p,数据方选择的私钥为q。
在一个实施例中,所述步骤S2包括:
查询方将自己所需查询的多个查询id与私钥p进行椭圆曲线的乘算法得到加密查询内容集合F,并发送给所述数据方;其中,F的计算过程如下:
(1)
其中,表示椭圆曲线的标量乘法。
在一个实施例中,所述步骤S3包括:
S301.数据方将接收到的加密查询内容F与自己的私钥q通过椭圆曲线乘法进行加密得到新的密文集合F^;
(2)
S302.所述数据方将自己的每个数据id与私钥q进行椭圆曲线乘法运算得到每个id所对应的密钥k;
(3)
S303.使用每个id对应的密钥k将每个id以及对应的具体数据内容t进行加密得到加密的数据对T:
(4)
其中,Enc (·)表示加密算法。
在一个实施例中,所述步骤S4包括:
所述数据方使用密钥k作为加密密钥对自身id以及对应的数据使用对称加密得到的加密集合T,并采用布谷鸟哈希对T中元素映射到集合S中,对于S中空余位置采用虚假数据进行填充。
在一个实施例中,所述步骤S6包括:
S601.所述查询方使用私钥p的逆元与所述密文集合F^做椭圆曲线乘法运算得到密钥集合D:
(5)
S602.通过使用密钥集合D中的密钥依次对查询id再次进行加密就得到最终加密之后的查询id,记作:
(6)
S603.当数据方中存在查询方所查找的id,则集合S中一定存在与相同的加密id,则所述查询方找到集合S中与/>相同的键,并用集合D中对应的密钥对与之相应的具体数据内容进行解密完成查询。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种用于隐私保护的多键值数据隐匿查询方法,其在保证数据隐私性的前提下,减少了搜索查询所需要的比较次数,节省了参与方的交互时间,大大提升了数据隐匿搜索的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明用于隐私保护的多键值数据隐匿查询方案的具体流程图。
图2为本发明的实施例中查询方与数据方的查询示意图。
图3为本发明的实施例中数据方使用布谷鸟哈希加密示意图;
图4为本发明的实施例中数据方使用数据填充示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种用于隐私保护的多键值数据隐匿查询方法,其在保证数据隐私性的前提下,减少了搜索查询所需要的比较次数,节省了参与方的交互时间,大大提升了数据隐匿搜索的效率。
如图1所示,本发明方法中主要包含两个实体:查询方以及数据提供方。其中查询方提供所查询数据的id编号,数据方提供所有的数据id编号以及此id所对应的具体数据内容;方法具体内容如下:
1.查询方与数据方预先商议确定所使用的椭圆曲线以及所需的哈希函数。
2.查询方和数据方迭代使用哈希函数将自己的原始数据进行散列直到每个值都是椭圆曲线上某一点的x值,然后带入椭圆曲线得到一个点。
3.查询方和数据方各自从椭圆曲线上随机选择一个点作为私钥,设查询方选择的私钥为p,数据方选择的私钥为q。
4.查询方将自己所需查询的多个查询id与密钥p进行椭圆曲线的乘算法得到加密查询内容集合F,F的计算过程如下:
(1)
其中,表示椭圆曲线的标量乘法;接下来查询方将加密之后的查询F发送给数据方。
5.数据方将接受到的加密查询内容F与自己的私钥q通过椭圆曲线乘法进行加密得到新的密文集合F^;
(2)
接下来数据方将自己的每个数据id与密钥q进行椭圆曲线乘法运算得到每个id所对应的密钥k;
(3)
使用每个id对应的密钥k将每个id以及对应的具体数据内容t进行加密得到加密的数据对T;
(4)
Enc()为加密函数,图1中的Dec()为解密函数。
6.数据方通过使用布谷鸟哈希(CuckooHash)对密钥k进行哈希排序,根据布谷鸟哈希的结果将加密数据对T放入集合S中,S包含1.2n+s个桶,(其中n为T中的键值对个数,s为一个常数)每个桶中仅存放一个键值对,其余空桶均填入符合原始数据分布规律的虚假加密数据。
7.数据方将密文集合F^以及集合S发送给查询方,查询方使用私钥p的逆元与密文集合F^做椭圆曲线乘法运算得到密钥集合D;
(5)
通过使用密钥集合D中的密钥依次对查询id再次进行加密就可得到最终加密之后的查询id,记作:
(6)
如果数据方中存在查询方所查找的id,那么集合S中一定存在与相同的加密id,因此查询方只需找到集合S中与/>相同的键,并用D中对应的密钥对与之相应的具体数据内容进行解密就可以完成查询。查询方可以通过对集合D中元素使用布谷鸟哈希进行哈希散列,来减少查找/>所需的比较次数。每个元素最多只需要比较3+s次(假设3为布谷鸟哈希中的哈希函数数量),其中s为存储桶中的元素个数为一个常数。如果经过3+s次比较后S中没有与之相同的加密id则说明所查找的内容在数据提供方中并不存在。
在本发明实施例中,数据方拥有大量的id以及id所对应的具体内容,查询方想要从数据方中批量查询一些id所对应的具体内容,整个查询过程中查询方不希望暴露自己所查询的具体id,数据方也不希望暴露给查询方除了查询id以外的其余数据。
本发明实施例中,双方通过椭圆曲线加密保证了数据的隐私性。查询方将查询id与私钥进行椭圆曲线乘法得到一个新的密钥F,并将密钥F发送给数据方,数据方使用自己所拥有的私钥q对F进行二次加密得到F^并将F^返回给查询方,查询方通过将F^与p的逆元进行椭圆曲线乘法即可得到,k为查询方需要查询的id对应的对称加密算法的密钥。
根据椭圆曲线的性质,查询方即使知道了密钥k和对应的id也无法求解得出数据方的私钥q,因此保证了数据方私钥的安全性。数据方通过椭圆曲线乘法为每个id都生成了一个自己唯一对应的加密密钥k,其中,然后数据方使用每个id所对应的唯一密钥对id以及id所对应的数据内容进行加密得到加密集合/>。同时借助于布谷鸟哈希对密钥k进行散列。布谷鸟哈希算法的过程如下:如果想将T中的n个元素放入b个桶中,首先需要选定三个哈希函数h1,h2,h3:{k}/>[b],以及b个空桶,记为B[1…b]。如果要确定一条数据t的位置,首先使用h1(t),h2(t),h3(t),然后查看B中此三个桶中是否存在空桶,若存在则将该条数据放入桶中,若不存在空桶则随机将其中一个桶中元素踢出,被踢出的元素递归重复上述操作寻找空桶。
若经过一定次数的递归仍有元素找不到对应的空桶则将该元素放入一个储存桶中,储存桶中最多只能放入s个元素。数据方根据散列结果将T中的元素放入集合S中指定的位置,S包含1.2n+s个桶,(其中n为T中的键值对个数,s为一个常数,s代表储藏桶中能够放入的元素个数的最大值)每个桶中仅存放一个键值对,其余空桶均填入符合原始数据分布规律的虚假加密数据。然后数据方将集合S发送给查询方。由于每条数据都有自己唯一的加密密钥k,而,因此查询方仅拥有自己所查询id所对应的密钥k,而对于其余数据方所拥有的数据无法得到其密钥,因此保证了数据方非查询数据的安全性。查询方可以借助于布谷鸟哈希对自己所拥有的密钥k进行哈希散列快速定位该条查询id所对应的密文,使得查询方不需要将每条查询数据与所有的数据方提供的所有密文进行对比,将查询方比较所需的时间复杂度从O(n)降低到了O(1)级别,大大提升了查询方的查询效率。
其中,查询方所使用的Enc (·)加密算法与数据方的加密算法Enc (·)一致,均使用对称加密算法支持国密SM4以及AES等多种对称加密算法。查询方与数据方所使用的布谷鸟哈希函数也是一致的。
举例来说,如图2所示,数据方中拥有6条数据(data_2、data_3、data_4、data_5、data_6、data_7),查询方想查询其中id为3和5的两条数据。
查询方选择的密钥p为:
0x39, 0x45, 0x20, 0x8f, 0x7b, 0x21, 0x44, 0xb1, 0x3f, 0x36, 0xe3,0x8a, 0xc6, 0xd3, 0x9f, 0x95;
0x88, 0x93, 0x93, 0x69, 0x28, 0x60, 0xb5, 0x1a, 0x42, 0xfb, 0x81,0xef, 0x4d, 0xf7, 0xc5, 0xb8。
使用密钥p对查询id进行加密以得到新的密钥,id3对应的密钥F为:
ad 28 e5 6d b9 ab 04 4b 34 6e 50 06 f7 43 9d 5a b3 f6 11 63 94 f7 f15c 9f 11 d0 ce 7e 10 28 7d ;
99 5b 90 b8 59 00 76 4c 6f c6 5a b0 ee 9d f9 1b d2 1b b9 3f 97 74 59e3 1e 3a 42 fd 09 e1 9d 81 Id。
id5 对应的密钥F为:
e3 7a 3c 20 ae 27 cf 34 26 47 a2 9b 6e 54 59 d6 cf 2c 0a c1 ed a4 28d0 a3 0b 50 b1 19 dc f3 86;
b7 e5 0d 5a a5 98 ab 74 16 14 6c 63 f7 02 d2 35 67 39 ae f8 cb d8 28d3 b1 b2 f7 f3 a2 f9 1d 2a。
查询方将加密之后的密钥F发送给数据方。
数据方选定一个随机的密钥q为:
0x59, 0x27, 0x6e, 0x27, 0xd5, 0x06, 0x86, 0x1a, 0x16, 0x68, 0x0f,0x3a, 0xd9, 0xc0, 0x2d, 0xcc;
0xef, 0x3c, 0xc1, 0xfa, 0x3c, 0xdb, 0xe4, 0xce, 0x6d, 0x54, 0xb8,0x0d, 0xea, 0xc1, 0xbc, 0x21。
数据方计算;
d9 67 c1 79 96 0d d7 d4 3b 51 ff e0 e2 a6 d6 51 ce 9e b7 66 97 86 93be 88 04 c4 e7 8c 21 0f 72;
6a 4f d7 42 d3 a2 9c 70 e7 5b 32 18 17 0f 2a 1b 5c bc a7 b8 04 d9 a39b ad b6 92 af 7c 3e bf 0f;
8f 0f 12 76 e1 34 dd 53 38 d7 10 18 fc 61 74 38 5a 0d e2 34 53 33 4d74 20 87 ef bd ff 18 17 9a;
d7 32 df 82 d4 0e 41 4e 90 a5 6c 57 95 d5 f2 c0 cf 81 de 1f 8f 18 0192 7f c3 5c af ff f8 2f f3。
数据方使用自己的私钥q与自己的id进行椭圆曲线乘法得到密钥k。
id2 对应的密钥k为:
c1 e3 bc 2f 5f 6b 37 21 f4 20 01 c9 b0 be 46 9c 57 5e 02 c5 d1 a1 6d5f 2f 16 34 0d 67 fd ce aa;
20 1a 65 3c 87 2b 61 da 41 c4 93 28 59 81 38 36 c7 90 ff ec 7e 83 ebf2 a4 2d 12 41 b8 ad c3 ba。
id3 对应的密钥k为:
7f 14 c4 6c be dc 16 df c4 37 94 36 8d d4 5a 06 97 1a 98 e9 7e 92 673a f5 a7 37 28 53 cf 52 49;
1e ec 44 34 c7 62 c7 bf 5b 93 5d e5 7a ba d1 80 5a ab 50 06 ca 71 4b9f 04 95 1b cd dc 9f e8 85。
id4 对应的密钥k为:
e7 5f e3 a8 15 04 d2 38 d3 cb 74 5d ba 81 d4 cc 56 73 88 56 4a e8 1668 48 b7 b5 50 01 2c 51 ac;
d6 98 e2 fa 09 eb bd 90 a7 3c 24 56 61 50 e8 4e a1 48 b6 c7 df 63 ca5a c6 fd da 4a d0 80 6f a1。
id5 对应的密钥k为:
61 95 2a c6 29 19 c3 6a e3 65 99 da a8 84 fa 7d 77 57 b1 87 98 7f 4100 6e 40 83 5b 83 61 18 88;
87 5e 87 5b 9b 2e 79 ad 80 cd 19 2f 3d 09 b1 25 73 a1 ae 65 17 cf 6138 b9 66 75 6d 13 d0 83 06。
id6 对应的密钥k为:
be 1f 29 82 81 0b ee 7c 9e a9 a3 b9 ba 02 71 4a 7b 6a 0f 56 22 5d add8 4a ba 1f b4 b3 5b 26 b1;
33 bf 13 68 bc 2b 38 55 4d 0e 5b 40 a4 66 73 f1 e1 69 a7 25 32 9b 3567 3c 72 37 c4 e1 aa 90 74。
id7 对应的密钥k为:
c0 43 e7 73 a2 fd cb d6 4b 03 cf 03 3b 21 b8 d6 e6 36 10 ee 55 bc a705 69 ea 82 fc 72 5e 91 5c;
7f bd 14 bd e0 aa a1 f0 0f 0e 69 fb 94 8e 38 da 86 76 ca ae 37 44 654d dc b2 d7 8a 4a 74 bf 90。
数据方使用生成的密钥k作为加密密钥对自身id以及对应的数据使用对称加密得到的加密集合T,并采用布谷鸟哈希对T中元素映射到集合S中,对于S中空余的位置采用虚假数据进行填充;过程如图3-图4所示。
数据方将集合S和密文F^发送给查询方。
查询方得到F^后使用自己的私钥p与F^做椭圆曲线乘法运算得到查询id对应的密钥k。
id3 对应的密钥k为:
7f 14 c4 6c be dc 16 df c4 37 94 36 8d d4 5a 06 97 1a 98 e9 7e 92 673a f5 a7 37 28 53 cf 52 49;
1e ec 44 34 c7 62 c7 bf 5b 93 5d e5 7a ba d1 80 5a ab 50 06 ca 71 4b9f 04 95 1b cd dc 9f e8 85。
id5 对应的密钥k为:
61 95 2a c6 29 19 c3 6a e3 65 99 da a8 84 fa 7d 77 57 b1 87 98 7f 4100 6e 40 83 5b 83 61 18 88;
87 5e 87 5b 9b 2e 79 ad 80 cd 19 2f 3d 09 b1 25 73 a1 ae 65 17 cf 6138 b9 66 75 6d 13 d0 83 06。
使用查询id对应的密钥对查询id进行加密得到加密后的查询id。
id 3对应的加密id为:U2FsdGVkX18INWz8Piu5qM3upE/wiOgYqJoV1jsFAoI=。
id5对应的加密id为:U2FsdGVkX182dlOAn3SaKsTZSzxbEqBgBF97aLv3aIs=。
数据方通过布谷鸟哈希对密钥k进行散列查找查询id对应的集合位置,根据对id3对应的k进行哈希发现 id3在集合S中对应的位置可能是 6 、3 、4如果这三个位置不存在那么则有可能在存储桶s中,本例中s的大小设置为了2,因此存储桶的位置为9 、10。
通过对比发现S中的第六条数据的加密id与查询id3的加密id一致,查询方只需要使用查询id3对应的密钥此条数据进行解密得到id3的明文以及其对应的具体明文数据内容data_3。
同理,根据对id5对应的k进行哈希发现id5在集合S中可能的位置为8、2、4 以及存储桶的位置9 、10 经过对比发现S中的第2条数据的加密id与查询id5的加密id一致, 查询方只需要使用查询id5对应的密钥此条数据进行解密得到id5的明文以及其对应的具体明文数据内容data_5。
其在保证数据隐私性的前提下,减少了搜索查询所需要的比较次数,节省了参与方的交互时间,大大提升了数据隐匿搜索的效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种用于隐私保护的多键值数据隐匿查询方法,其特征在于,涉及查询方与数据方之间的数据交互,其中,所述查询方提供所查询数据的id编号,所述数据方提供所有的数据id编号以及所述id编号所对应的具体数据内容;该查询方法具体包括以下步骤:
S1、所述查询方与数据方预先商议确定的加密规则;
S2、基于所述加密规则,查询方将加密之后的查询F发送给所述数据方;
S3、所述数据方根据接收到的查询F及所述加密规则,进行相关运算得到密文集合F^以及加密集合T;
S4、所述数据方使用布谷鸟哈希对所述加密集合T中的元素映射到集合S中,对于S中空余的位置采用虚假数据进行填充;
S5、所述数据方将所述密文集合F^以及集合S发送给所述查询方;
S6、所述查询方采用所述加密规则与接收到的所述密文集合F^,进行解密完成查询。
2.根据权利要求1所述的一种用于隐私保护的多键值数据隐匿查询方法,其特征在于,所述步骤S1包括:
S101.查询方与数据方预先商议确定所使用的椭圆曲线以及所需的哈希函数;
S102.查询方和数据方迭代使用哈希函数将自己的原始数据进行散列直到每个值都是椭圆曲线上某一点的x值,然后带入椭圆曲线得到一个点;
S103.查询方和数据方各自从椭圆曲线上随机选择一个点作为私钥,设查询方选择的私钥为p,数据方选择的私钥为q。
3.根据权利要求2所述的一种用于隐私保护的多键值数据隐匿查询方法,其特征在于,所述步骤S2包括:
查询方将自己所需查询的多个查询id与私钥p进行椭圆曲线的乘算法得到加密查询内容集合F,并发送给所述数据方;其中,F的计算过程如下:
(1)
其中,表示椭圆曲线的标量乘法。
4.根据权利要求3所述的一种用于隐私保护的多键值数据隐匿查询方法,其特征在于,所述步骤S3包括:
S301.数据方将接收到的加密查询内容F与自己的私钥q通过椭圆曲线乘法进行加密得到新的密文集合F^;
(2)
S302.所述数据方将自己的每个数据id与私钥q进行椭圆曲线乘法运算得到每个id所对应的密钥k;
(3)
S303.使用每个id对应的密钥k将每个id以及对应的具体数据内容t进行加密得到加密的数据对T:
(4)
其中,Enc (·)表示加密算法。
5.根据权利要求4所述的一种用于隐私保护的多键值数据隐匿查询方法,其特征在于,所述步骤S4包括:
所述数据方使用密钥k作为加密密钥对自身id以及对应的数据使用对称加密得到的加密集合T,并采用布谷鸟哈希对T中元素映射到集合S中,对于S中空余位置采用虚假数据进行填充。
6.根据权利要求5所述的一种用于隐私保护的多键值数据隐匿查询方法,其特征在于,所述步骤S6包括:
S601.所述查询方使用私钥p的逆元与所述密文集合F^做椭圆曲线乘法运算得到密钥集合D:
(5)
S602.通过使用密钥集合D中的密钥依次对查询id再次进行加密就得到最终加密之后的查询id,记作:
(6)
S603.当数据方中存在查询方所查找的id,则集合S中一定存在与相同的加密id,则所述查询方找到集合S中与/>相同的键,并用集合D中对应的密钥对与之相应的具体数据内容进行解密完成查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310814889.6A CN116541886A (zh) | 2023-07-05 | 2023-07-05 | 一种用于隐私保护的多键值数据隐匿查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310814889.6A CN116541886A (zh) | 2023-07-05 | 2023-07-05 | 一种用于隐私保护的多键值数据隐匿查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116541886A true CN116541886A (zh) | 2023-08-04 |
Family
ID=87449197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310814889.6A Pending CN116541886A (zh) | 2023-07-05 | 2023-07-05 | 一种用于隐私保护的多键值数据隐匿查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541886A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661680A (zh) * | 2022-05-25 | 2022-06-24 | 蓝象智联(杭州)科技有限公司 | 一种私有数据隐匿共享方法 |
CN115580402A (zh) * | 2022-12-09 | 2023-01-06 | 蓝象智联(杭州)科技有限公司 | 一种用于安全多方计算的数据隐匿查询方法 |
CN116204922A (zh) * | 2023-03-06 | 2023-06-02 | 蚂蚁区块链科技(上海)有限公司 | 用于隐私求交的方法及装置 |
-
2023
- 2023-07-05 CN CN202310814889.6A patent/CN116541886A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661680A (zh) * | 2022-05-25 | 2022-06-24 | 蓝象智联(杭州)科技有限公司 | 一种私有数据隐匿共享方法 |
CN115580402A (zh) * | 2022-12-09 | 2023-01-06 | 蓝象智联(杭州)科技有限公司 | 一种用于安全多方计算的数据隐匿查询方法 |
CN116204922A (zh) * | 2023-03-06 | 2023-06-02 | 蚂蚁区块链科技(上海)有限公司 | 用于隐私求交的方法及装置 |
Non-Patent Citations (1)
Title |
---|
廖鹏程;陈小军;申立艳;时金桥;: "基于OT协议的外包隐私集合交集计算协议", 信息技术与网络安全, no. 06 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850221B (zh) | 信息加密、解密方法及装置 | |
CN105610793B (zh) | 一种外包数据加密存储与密文查询系统及其应用方法 | |
Heron | Advanced encryption standard (AES) | |
US7340054B2 (en) | Information processing method, decrypting method, information processing apparatus, and computer program | |
CN109660555A (zh) | 基于代理重加密的内容安全分享方法和系统 | |
Chen et al. | A novel key management scheme for dynamic access control in a user hierarchy | |
Doröz et al. | Toward practical homomorphic evaluation of block ciphers using prince | |
CN102356597B (zh) | 用于在网络中安全通信的方法、及其通信设备、网络 | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
CN111930881A (zh) | 基于国密算法的连接关键词认证可搜索加密方法 | |
US20080192924A1 (en) | Data encryption without padding | |
US20200228315A1 (en) | NADO Cryptography with Key Generators | |
CN109450615A (zh) | 一种高效的opc ua客户端与服务器端数据传输加密方法 | |
Sengupta et al. | Designing of cryptography based security system for cloud computing | |
CN109257162A (zh) | 加密算法白盒化的方法和装置 | |
TWI379572B (en) | System and method for three-phase data encryption | |
CN110336661A (zh) | Aes-gcm数据处理方法、装置、电子设备及存储介质 | |
CN111556048A (zh) | 一种支持密文模式匹配的属性基安全通信方法及系统 | |
Stoianov | One approach of using key-dependent S-BOXes in AES | |
CN116541886A (zh) | 一种用于隐私保护的多键值数据隐匿查询方法 | |
Katagi et al. | The 128-bit blockcipher CLEFIA | |
Hsu et al. | Cryptanalyses and improvements of two cryptographic key assignment schemes for dynamic access control in a user hierarchy | |
US20240097886A1 (en) | End to end file-sharing schema using signed merkle tree randomly originated keys | |
Smyshlyaev | Re-keying mechanisms for symmetric keys | |
CN101938352A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230804 |