CN117827884A - 一种批量数据查询方法及装置 - Google Patents

一种批量数据查询方法及装置 Download PDF

Info

Publication number
CN117827884A
CN117827884A CN202311869821.4A CN202311869821A CN117827884A CN 117827884 A CN117827884 A CN 117827884A CN 202311869821 A CN202311869821 A CN 202311869821A CN 117827884 A CN117827884 A CN 117827884A
Authority
CN
China
Prior art keywords
preset
tag
length
equipment
data
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
Application number
CN202311869821.4A
Other languages
English (en)
Inventor
潘文伦
马东升
蒋红宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Haitai Fangyuan High Technology Co Ltd
Original Assignee
Beijing Haitai Fangyuan High Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Haitai Fangyuan High Technology Co Ltd filed Critical Beijing Haitai Fangyuan High Technology Co Ltd
Priority to CN202311869821.4A priority Critical patent/CN117827884A/zh
Publication of CN117827884A publication Critical patent/CN117827884A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种批量数据查询方法及装置,涉及信息安全技术领域。该方法包括:确定数据查询请求对应的用户查询标签集合;基于用户查询标签集合生成具有第一长度的布隆过滤器,并对第一长度布隆过滤器进行截断,生成具有第二长度的比特向量;发送第二长度的比特向量至第二设备;接收第二设备发送的密文,密文基于所述第二设备预设的标签集合、第二设备预设的每一标签对应的密钥以及第二长度的比特向量加密获得;基于第一设备中预设的每一标签对应的密钥,依次对第二设备发送的密文进行解密,获得数据查询请求对应的消息。采用该方法,在实现隐匿查询的基础上,降低第一设备与第二设备之间的数据通信量,提高数据查询效率。

Description

一种批量数据查询方法及装置
技术领域
本申请涉及信息安全技术领域,尤其涉及一种批量数据查询方法及装置。
背景技术
传统的数据查询方式通常是查询方将查询对象的关键词或信息提供给数据方,数据方为查询方提供相应的查询结果。然而,在传统的数据查询方式中,查询方会泄露查询对象的信息。为了在查询数据时隐藏查询对象的信息,人们提出了隐匿查询的方法。该方法可以隐藏被查询对象关键词或信息,数据方为查询方提供相应的查询结果时,无法获知查询方具体的查询对象,同时查询方除了获得所查询结果,无法获知数据方的其它数据信息,提升数据的安全性。
目前,隐匿查询(Private Information Retrieval,PIR),主要有以下技术:
1)单服务器PIR:用户向单个服务器发送加密的查询,服务器返回查询结果,但无法知晓查询的具体内容。该方案不足之处在于单服务器PIR通常依赖于复杂的加密技术,如同态加密,这可能导致计算效率低下。此外,它对服务器的信任度较高,如果服务器不诚实,用户的隐私可能会受到威胁。
2)多服务器PIR:数据被复制到多个服务器。用户向所有服务器发送查询请求,每个服务器返回一个响应,用户从这些响应中重构出所需信息。服务器单独无法确定用户查询的内容。该方案不足之处在于这种方法需要多个不相互通信的服务器,增加了实施的复杂性和成本。此外,如果多个服务器之间存在合谋,用户的隐私可能会被泄露。
3)硬件辅助PIR:使用安全硬件(如可信执行环境)来处理PIR查询,以提高安全性。该方案不足之处在于依赖特定的硬件基础设施,可能会增加成本和实施难度。此外,如果硬件存在漏洞,也可能会威胁到整个***的安全性。
总的来说,尽管PIR技术在保护用户查询隐私方面非常有效,但它们通常面临着计算效率低、通信开销大、对服务器信任度高或对硬件依赖等挑战。
发明内容
本申请实施例提供一种批量数据查询方法及装置,用以降低查询方与数据方之间的数据通信量,从而提高数据查询效率。
第一方面,本申请实施例提供了一种批量数据查询方法。以第一设备为执行主体为例。该方法包括:确定数据查询请求对应的用户查询标签集合;基于用户查询标签集合生成具有第一长度的布隆过滤器,并对第一长度布隆过滤器进行截断,生成具有第二长度的比特向量;第二长度用于控制第二设备发送给第一设备的密文数据量,第二设备用于响应数据查询请求而提供密文数据给第一设备;发送第二长度的比特向量至第二设备;接收第二设备发送的密文,密文基于所述第二设备预设的标签集合、第二设备预设的每一标签对应的密钥以及第二长度的比特向量加密获得;基于第一设备中预设的每一标签对应的密钥,依次对第二设备发送的密文进行解密,获得数据查询请求对应的消息;其中,第一设备中预设的每一标签对应的密钥由第一设备与第二设备通过预先设置的密钥生成规则进行密钥交换确定。
采用该方法,第一设备发送给第二设备的数据只有第二长度的比特向量,大幅降低了第一设备所需发送数据的规模;在实现隐匿查询的基础上,降低第一设备与第二设备之间的数据通信量,提高数据查询效率。
在一种可能的设计中,基于标签集合生成具有第一长度的布隆过滤器,包括:根据第一设备中预设数量的杂凑函数和用户查询标签集合中所有标签生成布隆过滤器;根据杂凑函数数量、用户查询标签集合中的标签数量,以及,预设概率值获取布隆过滤器的第一长度。
采用该方法,第一设备将用户查询标签集合中的所有标签编码到第一长度布隆过滤器上,对于一个新标签可根据该布隆过滤器判断其是否属于用户查询标签集合。通过该方法判断一个新标签是否属于用户查询标签集合更加方便高效。
在一种可能的设计中,对布隆过滤器的长度进行截断,生成具有第二长度的比特向量,进一步包括:根据第一长度,数据区分度和预设概率值确定第二长度;其中,数据区分度为第一设备与第二设备通过协议预先设定的传输数据总量;根据第二长度对第一长度布隆滤器进行截断,生成述第二长度的比特向量;舍弃非所述第二长度的比特向量部分。
采用该方法,第二长度的比特向量可用于判定一个新的标签是否属于用户查询标签集合,其中,预设概率值由数据区分度决定。第二长度比特向量控制第二设备返回给第一设备的密文数据量。通过将标签集合编码到布隆过滤器,并对布隆过滤器进行截断,使得第一设备发送给第二设备的数据量较低,降低了第一设备向第二设备发送数据的通信量。第二设备只发回约定数据区分度相关密文,双方可约定数据区分度的取值,使得效率与安全性平衡。
在一种可能的设计中,第一设备中预设的每一标签对应的密钥由第一设备与第二设备通过预先设置的密钥生成规则进行密钥交换确定进一步为:由第一设备与第二设备通过执行不经意伪随机函数OPRF协议,获取第一设备中预设的每一标签对应的密钥。
采用该方法,第一设备仅能获取第一设备所有标签对应的密钥,而无法获取其它标签的密钥,从而第一设备仅能解密第二设备返回给第一设备的密文中的第一设备标签集合所对应的密文,使得数据传输安全性更高。
在一种可能的设计中,所述密文由第二设备通过如下方式获取,包括:
根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据第二设备与第一设备执行不经意伪随机函数OPRF协议获取的秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取第二设备预设的标签集合中的每一标签对应的密文。
采用该方法,第二设备根据第二长度比特向量对标签进行了筛选,只有符合条件的标签对应的数据才被加密并发送给第一设备,所需发送的数据量由预设的区分度决定,使得数据查询更加精确。
第二方面,本申请实施例提供了一种批量数据查询方法。以第二设备为执行主体为例,该方法包括:与第一设备执行预先设置的密钥生成规则,获取随机秘密信息;接收第一设备发送的第二长度的比特向量;根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据随机秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取第二设备预设的标签集合中的每一标签对应的密文;将预设的标签集合中的每一标签对应的密文发给第一设备。
采用该方法,第二设备根据所述第二长度比特向量对标签进行了筛选,只有符合条件的标签对应的数据才被加密并发送给第一设备,所需发送的数据量由预设的区分度决定,使得数据查询更加精确。
第三方面,本申请实施例提供了一种批量数据查询装置,包括:
确定模块,用于确定数据查询请求对应的用户查询标签集合;第一生成模块,用于基于用户查询标签集合生成具有第一长度的布隆过滤器,并对第一长度的布隆过滤器进行截断,生成具有第二长度的比特向量;第二长度用于控制第二设备发送给第一设备的密文数据量,第二设备用于响应数据查询请求而提供密文数据给第一设备;第一发送模块,用于发送第二长度的比特向量至第二设备;第一接收模块,用于接收第二设备发送的密文,密文基于第二设备预设的标签集合、第二设备预设的每一标签对应的密钥以及第二长度的比特向量加密获得;解密模块,用于基于第一设备中预设的每一标签对应的密钥,依次对第二设备发送的密文进行解密,获得数据查询请求对应的消息;其中,第一设备中预设的每一标签对应的密钥由第一设备与述第二设备通过预先设置的密钥生成规则进行密钥交换确定。
在一种可能的设计中,第一生成模块进一步用于:根据第一设备中预设数量的杂凑函数和用户查询标签集合中所有标签生成布隆过滤器根据杂凑函数数量、用户查询标签集合中的标签数量,以及,预设概率值获取布隆过滤器的第一长度。
在一种可能的设计中,第一生成模块进一步用于:根据第一长度,数据区分度和预设概率值确定第二长度;其中,数据区分度为第一设备与第二设备通过协议预先设定的传输数据总量;根据第二长度对布隆过滤器进行截断,生成第二长度的比特向量;舍弃非第二长度的比特向量部分。
在一种可能的设计中,第一设备中预设的每一标签对应的密钥由第一设备与第二设备通过预先设置的密钥生成规则进行密钥交换确定进一步为:由第一设备与第二设备通过执行不经意伪随机函数OPRF协议,获取第一设备中预设的每一标签对应的密钥。
在一种可能的设计中,密文由第二设备通过如下方式获取,进一步包括:根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据第二设备与第一设备执行不经意伪随机函数OPRF协议获取的秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取第二设备预设的标签集合中的每一标签对应的密文。
第四方面,本申请实施例提供了一种批量数据查询装置,包括:
第二生成模块,用于与第一设备执行预先设置的密钥生成规则,获取随机秘密信息;第二接收模块,用于接收第一设备发送的第二长度的比特向量;获取模块,用于根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据随机秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取述第二设备预设的标签集合中的每一标签对应的密文;第二发送模块,用于将预设的标签集合中的每一标签对应的密文发给第一设备。
在一种可能的设计中,预先设置的密钥生成规则为不经意伪随机函数OPRF协议。
第五方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现如上述第一方面及其任一可能的设计的方法,或者,实现如上述第二方面及其任一可能的设计的方法。
第六方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现如上述第一方面及其任一可能的设计的方法,或者,实现如上述第二方面及其任一可能的设计的方法。
第二方面至第六方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的OPRF协议示意图
图2为本申请实施例提供的一种批量数据查询方法的流程示意图;
图3为本申请实施例提供的另一种批量数据查询方法的流程示意图;
图4为本申请实施例提供的一种批量数据查询装置的模块化结构示意图;
图5为本申请实施例提供的另一种批量数据查询装置的模块化结构示意图;
图6为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作可选的详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面对本发明的数据查询方法进行介绍。
传统的数据查询方式通常是查询方将查询对象的关键词或信息提供给数据方,数据方为查询方提供相应的查询结果。然而,在传统的数据查询方式中,查询方会泄露查询对象的信息。为了在查询数据时隐藏查询对象的信息,人们提出了隐匿查询的方法。该方法可以隐藏被查询对象关键词或信息,数据方为查询方提供相应的查询结果时,无法获知查询方具体的查询对象,同时查询方除了获得所查询结果,无法获知数据方的其它数据信息,提升数据的安全性。
隐匿查询,又称隐私信息检索(private information retrieval,pir)是为了保障查询方(用户)的查询对象的隐私信息的私密性而采用的策略。该策略可以隐藏查询对象的关键词或信息,从而数据方在提供相应的查询结果时,无法获知查询方具体的查询对象,同时数据方也不会泄露除查询对象以外的其它数据信息。目前,现有的隐匿查询方案,通常是采用OT协议的查询方法。该方法通常是数据方根据预设的不同的密钥对所有的数据进行加密,并向查询方发送所有的密文。查询方根据查询对象对应的密钥对密文进行解密,从而获得查询结果。然而,该方案中数据方需要将全部数据的密文发送给查询方,相应的查询方需要接收全部数据的密文,数据方与查询方之间的数据通信量较大,导致查询数据的效率较低。
为了解决上述技术缺陷,本申请提供一种批量数据查询方法及装置,用以降低数据方与查询方之间数据的通信量,从而提高查询数据的效率。该方法可以由第一设备和第二设备实施。其中,第一设备可以是查询数据的查询设备。第二设备可以是用于提供查询结果的数据提供设备。
这里先对本申请中用到的不经意伪随机函数OPRF和布隆过滤器进行简单介绍。
OPRF协议可记为函数y=F(k,x)可看作输入两个信息k,x,输出信息y,其中F为一个公开可计算的伪随机函数,k为消息发送方Sender拥有的秘密信息。发送方Sender可根据k对任意信息x计算出函数值y,而接收方Receiver可根据输入信息x,通过与发送方Sender执行OPRF协议而获得输出值y。OPRF协议示意图如图1所示。
注:在OPRF协议中,接收方Receiver输入信息x计算输出值y的过程,是通过与发送方Sender进行多次数据交互实现的。
设数据方拥有的数据集为((l1,M1),(l2,M2),…,(lT,MT)),其中,Label={l1,l2,…,lT}为标签集合,Message={M1,M2,…,MT}为数据集合,T为数据条目数。用户所需查询的标签集合记为其中,n为批量查询的数目。
布隆过滤器(BF,Bloom Filter)是一种空间效率极高的概率数据结构,可用于测试一个元素是否是集合中的成员。当BF判断一个元素在该集合中时,存在一定得误判率,而当BF判断一个元素不在该集合中,则该元素必定不在该集合中。布隆过滤器的应用场景:给定集合X={x1,x2,…,xn},其中n为该集合中元素的个数,对于一个新元素x′,判断x′是否在集合X中。BF工作原理如下:
1)选择杂凑函数h1,h2,…,hk并公开,杂凑函数的输出空间均为{0,1,…,n-1},将集合X中的元素编码到二元向量BF[n]上:
a)初始化向量n维二元向量BF[n]=0;
b)对元素xi∈X,依次计算yi,j=hj(xi),若BF[yi,j]=0,则令BF[yi,j]=0,其中i=1,2,…,n,j=1,2,…,k;
2)对于新元素x′,使用BF判定其是否在集合X中,过程如下:
a)依次计算yj=hj(x′),若BF[yj]=0,则
b)若对所有yj=hj(x′),j=1,2,…,k,均有BF[yj]=1,则x′∈X,其中,
误判的概率
图2为本申请实施例提供的一种批量数据查询方法的流程示意图。以第一设备为执行主体为例,该流程可以包括以下步骤:
S201:确定数据查询请求对应的用户查询标签集合。
具体的,用户查询的标签可以是用户查询数据的索引,或者用户查询的标签可以是根据用户查询数据的索引生成的。用户查询的标签也可以是用户查询数据中的部分数据(如,用户查询数据的关键词)。用户查询的标签可以是用户在查询数据时,通过输入设备(如,键盘、触摸屏等)输入的。
S202:基于用户查询标签集合生成具有第一长度的布隆过滤器,并对第一长度布隆过滤器进行截断,生成具有第二长度的比特向量;第二长度用于控制第二设备发送给第一设备的密文数据量,第二设备用于响应数据查询请求而提供密文数据给第一设备;发送第二长度的比特向量至第二设备。
具体实施时,根据第一设备中预设数量的杂凑函数和用户查询标签集合中所有标签生成布隆过滤器;根据杂凑函数数量、用户查询标签集合中的标签数量,以及,预设概率值获取布隆过滤器的第一长度。
例如:根据用户查询标签集合中n个标签由k个杂凑函数h1,h2,…,hk生成布隆过滤器BF,若预设概率值(布隆过滤器误判概率)为P,则BF的长度m=-kn/ln(1-P1 /k)。布隆过滤器BF为一个长度为m的比特向量,且BF[i]=1当且仅当存在u∈{1,2,…,n},v∈{1,2,…,k}满足/>
采用该方法,第一设备将用户查询标签集合中的所有标签编码到第一长度布隆过滤器上,对于一个新标签可根据该布隆过滤器判断其是否属于用户查询标签集合。通过该方法判断一个新标签是否属于用户查询标签集合更加方便高效。
具体实施时,对布隆过滤器的长度进行截断,生成具有第二长度的比特向量,进一步包括:根据第一长度,数据区分度和预设概率值确定第二长度;其中,数据区分度为第一设备与第二设备通过协议预先设定的传输数据总量;根据第二长度对所述第一过滤器进行截断,生成所述第二长度的比特向量;舍弃非所述第二长度的比特向量部分。
例如:并对布隆过滤器BF进行截断,取其前m′比特构成向量BF′。其中,m′为第二长度,m为布隆过滤器的长度,即为第一长度。V为数据区分度(区分度指对用户的任意一个标签,数据方无法判断该标签对应的数据是V个数据中的哪一个)。P为预设概率值,可为0-1之间。
采用该方法,第二长度的比特向量可用于判定一个新的标签是否属于用户查询标签集合,其中,预设概率值由数据区分度决定。第二长度比特向量控制第二设备返回给第一设备的密文数据量。通过将标签集合编码到布隆过滤器,并对布隆过滤器进行截断,使得第一设备发送给第二设备的数据量较低,降低了第一设备向第二设备发送数据的通信量。第二设备只发回约定数据区分度相关密文,双方可约定数据区分度的取值,使得效率与安全性平衡。
S103:发送第二长度的比特向量至第二设备。
具体实施时,所述第二设备即为提供数据方,可以为数据库服务器等设备。
S104:接收第二设备发送的密文,密文基于所述第二设备预设的标签集合、第二设备预设的每一标签对应的密钥以及第二长度的比特向量加密获得。
具体实施时,根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据第二设备与第一设备执行不经意伪随机函数OPRF协议获取的秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取第二设备预设的标签集合中的每一标签对应的密文。
例如:对j=1,…,T,依次计算yj,i=hi(lj),i=1,2……k,若对所有yj,i<m′,均有BF′[yj,i]=1,则计算
其中,为所述第二设备预设的标签集合中的每一标签对应密钥,ej为所述第二设备预设的标签集合中的每一标签对应的密文。
采用该方法,第二设备根据第二长度比特向量对标签进行了筛选,只有符合条件的标签对应的数据才被加密并发送给第一设备,所需发送的数据量由预设的区分度决定,使得数据查询更加精确。
S105:基于第一设备中预设的每一标签对应的密钥,依次对第二设备发送的密文进行解密,获得数据查询请求对应的消息;其中,第一设备中预设的每一标签对应的密钥由第一设备与第二设备通过预先设置的密钥生成规则进行密钥交换确定。
具体实施时,例如:用户依次使用每个解密消息/>并从中找到正确的消息/>
在一种可能的设计中,第一设备中预设的每一标签对应的密钥由第一设备与第二设备通过预先设置的密钥生成规则进行密钥交换确定进一步为:由第一设备与第二设备通过执行不经意伪随机函数OPRF协议,获取第一设备中预设的每一标签对应的密钥。
采用该方法,第一设备仅能获取第一设备所有标签对应的密钥,而无法获取其它标签的密钥,从而第一设备仅能解密第二设备返回给第一设备的密文中的第一设备标签集合所对应的密文,使得数据传输安全性更高。
采用上述S101-105的方法,第一设备发送给第二设备的数据只有第二长度的比特向量,大幅降低了第一设备所需发送数据的规模;第二设备发送给第一设备的密文数据量由预先设置的区分度控制,以满足不同场景的应用需求。在实现隐匿查询的基础上,降低第一设备与第二设备之间的数据通信量,提高数据查询效率。
图3为本申请实施例提供的另一种批量数据查询方法的流程示意图,以第二设备为执行主体为例,该流程可以包括以下步骤:
S301:与第一设备执行预先设置的密钥生成规则,获取随机秘密信息。
具体实施时,预先设置的密钥生成规则为不经意伪随机函数OPRF协议。
S302:接收第一设备发送的第二长度的比特向量。
S303:根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据随机秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取第二设备预设的标签集合中的每一标签对应的密文。
具体实施过程与S104步骤相同,这里不再赘述。
S304:将预设的标签集合中的每一标签对应的密文发给第一设备。
采用该方法,第二设备根据所述第二长度比特向量对标签进行了筛选,只有符合条件的标签对应的数据才被加密并发送给第一设备,所需发送的数据量由预设的区分度决定,使得数据查询更加精确。
以下为本申请实施例提供的一种批量数据查询方法的数据交互过程。
公共参数:椭圆曲线群为E(Fq),基点为G,群的阶为N,杂凑函数h1,h2,…,hk,且杂凑函数的输出空间均为{0,1,…,m-1},OPRF协议(公开可计算伪随机函数记为F),数据区分度V(区分度指对用户的任意一个标签,数据方无法判断该标签对应的数据是V个数据中的哪一个)。
方案具体过程如下:
数据方:用户:
输入:((l1,M1),(l2,M2),…,(lT,MT))输入:标签输出:空输出:
1.产生秘密信息k
1.与数据方执行OPRF协议,根据输
得/>
2.根据标签由杂凑函数
h1,h2,…,hk生成布隆过滤器BF,
其中BF的长度为m。
3.计算并对布隆过滤器
BF进行截断,取其前m′比特构成
向量BF′。
4.将BF′发送给数据方。
2.对j=1,…,T,依次计算yj,i=hi(lj),
i=1,2……k,若对所有
yj,i<m′,均有BF′[yj,i]=1
则计算
3.将发送给用户
5.用户依次使用每个解密消息/>并从中找到正确的消息
基于上述内容和相同构思,本申请提供一种批量数据查询装置。图4为本申请实施例提供的一种批量数据查询装置的模块化结构示意图。
该数据查询装置包括,确定模块401,用于确定数据查询请求对应的用户查询标签集合;第一生成模块402,用于基于用户查询标签集合生成具有第一长度的布隆过滤器,并对第一长度的布隆过滤器进行截断,生成具有第二长度的比特向量;第二长度用于控制第二设备发送给第一设备的密文数据量,第二设备用于响应数据查询请求而提供密文数据给第一设备;第一发送模块403,用于发送第二长度的比特向量至第二设备;第一接收模块404,用于接收第二设备发送的密文,密文基于第二设备预设的标签集合、第二设备预设的每一标签对应的密钥以及第二长度的比特向量加密获得;解密模块405,用于基于第一设备中预设的每一标签对应的密钥,依次对第二设备发送的密文进行解密,获得数据查询请求对应的消息;其中,第一设备中预设的每一标签对应的密钥由第一设备与述第二设备通过预先设置的密钥生成规则进行密钥交换确定。
在一种可能的设计中,第一生成模块402进一步用于:根据第一设备中预设数量的杂凑函数和用户查询标签集合中所有标签生成布隆过滤器根据杂凑函数数量、用户查询标签集合中的标签数量,以及,预设概率值获取布隆过滤器的第一长度。
在一种可能的设计中,第一生成模块402进一步用于:根据第一长度,数据区分度和预设概率值确定第二长度;其中,数据区分度为第一设备与第二设备通过协议预先设定的传输数据总量;根据第二长度对布隆过滤器进行截断,生成第二长度的比特向量;舍弃非第二长度的比特向量部分。
在一种可能的设计中,第一设备中预设的每一标签对应的密钥由第一设备与第二设备通过预先设置的密钥生成规则进行密钥交换确定进一步为:由第一设备与第二设备通过执行不经意伪随机函数OPRF协议,获取第一设备中预设的每一标签对应的密钥。
在一种可能的设计中,密文由第二设备通过如下方式获取,进一步包括:根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据第二设备与第一设备执行不经意伪随机函数OPRF协议获取的秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取第二设备预设的标签集合中的每一标签对应的密文。
基于上述内容和相同构思,本申请提供另一种批量数据查询装置。图5为本申请实施例提供的一种批量数据查询装置的模块化结构示意图。
第二生成模块501,用于与第一设备执行预先设置的密钥生成规则,获取随机秘密信息;第二接收模块502,用于接收第一设备发送的第二长度的比特向量;获取模块503,用于根据预设数量的杂凑函数和第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;所有杂凑值中的任一杂凑值若小于第二长度,且第二长度比特向量对应位置的比特值均为1,则根据随机秘密信息,以及,第二设备预设的标签集合中的每一标签获取第二设备预设的标签集合中的每一标签对应密钥;根据第二设备预设的标签集合中的每一标签对应密钥,对第二设备预设的标签集合中的每一标签的消息进行加密,获取述第二设备预设的标签集合中的每一标签对应的密文;第二发送模块504,用于将预设的标签集合中的每一标签对应的密文发给第一设备。
在一种可能的设计中,预先设置的密钥生成规则为不经意伪随机函数OPRF协议。
图6示出了本申请实施例提供的一种电子设备结构示意图。
本申请实施例中的电子设备可包括处理器601。处理器601是该装置的控制中心,可以利用各种接口和线路连接该装置的各个部分,通过运行或执行存储在存储器603内的指令以及调用存储在存储器603内的数据。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器603可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器603存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器603存储的指令,可以用于执行本申请实施例所公开的方法步骤。
存储器603作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器603可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器603是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器603还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中,该装置还可以包括通信接口602,电子设备可以通过该通信接口602传输数据。
基于相同的发明构思,本申请实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图6所示的存储器603。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种批量数据查询方法,其特征在于,应用于请求进行数据查询的第一设备,包括如下步骤:
确定数据查询请求对应的用户查询标签集合;
基于所述用户查询标签集合生成具有第一长度的布隆过滤器,并对所述第一长度的布隆过滤器进行截断,生成具有第二长度的比特向量;所述第二长度用于控制第二设备发送给所述第一设备的密文数据量,所述第二设备用于响应所述数据查询请求而提供密文数据给所述第一设备;
发送所述第二长度的比特向量至所述第二设备;
接收所述第二设备发送的密文,所述密文基于所述第二设备预设的标签集合、所述第二设备预设的每一标签对应的秘钥以及所述第二长度的比特向量加密获得;
基于所述第一设备中预设的每一标签对应的密钥,依次对所述第二设备发送的密文进行解密,获得所述数据查询请求对应的消息;
其中,所述第一设备中预设的每一标签对应的密钥由所述第一设备与所述第二设备通过预先设置的密钥生成规则进行密钥交换确定。
2.根据权利要求1所述的数据查询方法,其特征在于,所述基于所述标签集合生成具有第一长度的布隆过滤器,包括:
根据所述第一设备中预设数量的杂凑函数和所述用户查询标签集合中所有标签生成所述布隆过滤器;
根据所述杂凑函数数量、所述用户查询标签集合中的标签数量,以及,预设概率值获取所述过滤器的第一长度。
3.根据权利要求1或2所述的数据查询方法,其特征在于,所述对所述布隆过滤器的长度进行截断,生成具有第二长度的比特向量,进一步包括:
根据所述第一长度,数据区分度和所述预设概率值确定第二长度;其中,所述数据区分度为所述第一设备与所述第二设备通过协议预先设定的传输数据总量;
根据所述第二长度对所述第一过滤器进行截断,生成所述第二长度的比特向量;
舍弃非所述第二长度的比特向量部分。
4.根据权利要求3所述的数据查询方法,其特征在于,
所述第一设备中预设的每一标签对应的密钥由所述第一设备与所述第二设备通过预先设置的密钥生成规则进行密钥交换确定进一步为:
由所述第一设备与所述第二设备通过执行不经意伪随机函数OPRF协议,获取所述第一设备中预设的每一标签对应的密钥。
5.根据权利要求4所述的数据查询方法,其特征在于,所述密文由所述第二设备通过如下方式获取,包括:
根据所述预设数量的杂凑函数和所述第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;
所述所有杂凑值中的任一杂凑值若小于所述第二长度,且所述第二长度比特向量对应位置的比特值均为1,则
根据所述第二设备与所述第一设备执行不经意伪随机函数OPRF协议获取的秘密信息,以及,所述第二设备预设的标签集合中的每一标签获取所述第二设备预设的标签集合中的每一标签对应密钥;
根据所述第二设备预设的标签集合中的每一标签对应密钥,对所述第二设备预设的标签集合中的每一标签的消息进行加密,获取所述第二设备预设的标签集合中的每一标签对应的密文。
6.一种批量数据查询方法,其特征在于,应用于进行数据查询的第二设备,所述第二设备与如权利要求1至5中任一项所述的数据查询方法中的第一设备匹配,包括如下步骤:
与所述第一设备执行预先设置的密钥生成规则,获取随机秘密信息;
接收第一设备发送的第二长度的比特向量;
根据所述预设数量的杂凑函数和所述第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;
所述所有杂凑值中的任一杂凑值若小于所述第二长度,且所述第二长度比特向量对应位置的比特值均为1,则
根据所述随机秘密信息,以及,所述第二设备预设的标签集合中的每一标签获取所述第二设备预设的标签集合中的每一标签对应密钥;
根据所述第二设备预设的标签集合中的每一标签对应密钥,对所述第二设备预设的标签集合中的每一标签的消息进行加密,获取所述第二设备预设的标签集合中的每一标签对应的密文;
将所述预设的标签集合中的每一标签对应的密文发给所述第一设备。
7.一种批量数据查询装置,其特征在于:
确定模块,用于确定数据查询请求对应的用户查询标签集合;
第一生成模块,用于基于所述用户查询标签集合生成具有第一长度的布隆过滤器,并对所述第一长度的布隆过滤器进行截断,生成具有第二长度的比特向量;所述第二长度用于控制第二设备发送给所述第一设备的密文数据量,所述第二设备用于响应所述数据查询请求而提供密文数据给所述第一设备;
第一发送模块,用于发送所述第二长度的比特向量至所述第二设备;
第一接收模块,用于接收所述第二设备发送的密文,所述密文基于所述第二设备预设的标签集合、所述第二设备预设的每一标签对应的密钥以及所述第二长度的比特向量加密获得;
解密模块,用于基于所述第一设备中预设的每一标签对应的密钥,依次对所述第二设备发送的密文进行解密,获得所述数据查询请求对应的消息;
其中,所述第一设备中预设的每一标签对应的密钥由所述第一设备与所述第二设备通过预先设置的密钥生成规则进行密钥交换确定。
8.一种批量数据查询装置,其特征在于,应用于进行数据查询的第二设备,所述第二设备与如权利要求7中任一项所述的数据查询装置中的第一设备匹配,包括如下步骤:
第二生成模块,用于与所述第一设备执行预先设置的密钥生成规则,获取随机秘密信息;
第二接收模块,用于接收第一设备发送的第二长度的比特向量;
获取模块,用于根据所述预设数量的杂凑函数和所述第二设备预设的标签集合中每一标签获取该标签的所有杂凑值;
所述所有杂凑值中的任一杂凑值若小于所述第二长度,且所述第二长度比特向量对应位置的比特值均为1,则
根据所述随机秘密信息,以及,所述第二设备预设的标签集合中的每一标签获取所述第二设备预设的标签集合中的每一标签对应密钥;
根据所述第二设备预设的标签集合中的每一标签对应密钥,对所述第二设备预设的标签集合中的每一标签的消息进行加密,获取所述第二设备预设的标签集合中的每一标签对应的密文;
第二发送模块,用于将所述预设的标签集合中的每一标签对应的密文发给所述第一设备。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-6中任一所述数据查询方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述数据查询方法的步骤。
CN202311869821.4A 2023-12-31 2023-12-31 一种批量数据查询方法及装置 Pending CN117827884A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311869821.4A CN117827884A (zh) 2023-12-31 2023-12-31 一种批量数据查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311869821.4A CN117827884A (zh) 2023-12-31 2023-12-31 一种批量数据查询方法及装置

Publications (1)

Publication Number Publication Date
CN117827884A true CN117827884A (zh) 2024-04-05

Family

ID=90517060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311869821.4A Pending CN117827884A (zh) 2023-12-31 2023-12-31 一种批量数据查询方法及装置

Country Status (1)

Country Link
CN (1) CN117827884A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018148493A (ja) * 2017-03-08 2018-09-20 日本放送協会 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム
CN111628863A (zh) * 2020-05-29 2020-09-04 北京海泰方圆科技股份有限公司 一种数据签名的方法、装置、电子设备及存储介质
CN113255007A (zh) * 2021-06-25 2021-08-13 蓝象智联(杭州)科技有限公司 一种安全隐匿三要素查询方法
CN113364577A (zh) * 2021-08-06 2021-09-07 华控清交信息科技(北京)有限公司 一种oprf协议的实现方法、装置及电子设备
WO2022082893A1 (zh) * 2020-10-22 2022-04-28 香港中文大学(深圳) 一种基于隐私区块链的车联网保护方法和移动终端
CN114710258A (zh) * 2022-03-01 2022-07-05 北京航空航天大学 电力数据的隐私计算方法、***、电子设备及存储介质
CN116842574A (zh) * 2023-07-26 2023-10-03 中国联合网络通信集团有限公司 数据查询方法、装置、设备及存储介质
CN117150092A (zh) * 2023-08-29 2023-12-01 北京百度网讯科技有限公司 匿踪查询方法、装置、设备、介质及产品
CN117171202A (zh) * 2023-08-18 2023-12-05 北京海泰方圆科技股份有限公司 一种数据查询方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018148493A (ja) * 2017-03-08 2018-09-20 日本放送協会 鍵生成装置、中間暗号化装置、委託暗号化装置、データ検索装置、復号装置およびそれらのプログラム
CN111628863A (zh) * 2020-05-29 2020-09-04 北京海泰方圆科技股份有限公司 一种数据签名的方法、装置、电子设备及存储介质
WO2022082893A1 (zh) * 2020-10-22 2022-04-28 香港中文大学(深圳) 一种基于隐私区块链的车联网保护方法和移动终端
CN113255007A (zh) * 2021-06-25 2021-08-13 蓝象智联(杭州)科技有限公司 一种安全隐匿三要素查询方法
CN113364577A (zh) * 2021-08-06 2021-09-07 华控清交信息科技(北京)有限公司 一种oprf协议的实现方法、装置及电子设备
CN114710258A (zh) * 2022-03-01 2022-07-05 北京航空航天大学 电力数据的隐私计算方法、***、电子设备及存储介质
CN116842574A (zh) * 2023-07-26 2023-10-03 中国联合网络通信集团有限公司 数据查询方法、装置、设备及存储介质
CN117171202A (zh) * 2023-08-18 2023-12-05 北京海泰方圆科技股份有限公司 一种数据查询方法及装置
CN117150092A (zh) * 2023-08-29 2023-12-01 北京百度网讯科技有限公司 匿踪查询方法、装置、设备、介质及产品

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
QIN KAIHUA;HADASS HENRYK ET AL.: "Applying Private Information Retrieval to Lightweight Bitcoin Clients", 2019 CRYPTO VALLEY CONFERENCE ON BLOCKCHAIN TECHNOLOGY (CVCBT 2019), 19 December 2019 (2019-12-19), pages 60 - 72 *
任昊: "新型网络环境下的数据安全与隐私保护关键技术研究", 中国博士学位论文全文数据库 信息科技辑, 15 March 2021 (2021-03-15), pages 138 - 8 *
夏斌;姚瑶;高瑞;: "高强度隐私保护下的数据优化查询仿真", 计算机仿真, no. 12, 15 December 2014 (2014-12-15), pages 421 - 424 *
张恩;金刚刚;: "基于同态加密和Bloom过滤器的云外包多方隐私集合比较协议", 计算机应用, no. 08, 19 April 2018 (2018-04-19), pages 2256 - 2260 *

Similar Documents

Publication Publication Date Title
CN113254957B (zh) 基于隐私信息保护的数据查询方法、装置、设备及***
US11784801B2 (en) Key management method and related device
Liu et al. Toward highly secure yet efficient KNN classification scheme on outsourced cloud data
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
CN114036565B (zh) 隐私信息检索***及隐私信息检索方法
CN102687184B (zh) 代理计算***、方法及代理计算委托装置
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
CN109361644A (zh) 一种支持快速搜索和解密的模糊属性基加密方法
CN112073444B (zh) 数据集的处理方法、装置和服务器
EP4020265A1 (en) Method and device for storing encrypted data
CN114547078A (zh) 基于隐私计算的联邦跨特征查询方法、装置、介质及设备
CN112989027A (zh) 用于查询名单和用于提供名单查询服务的方法及相关产品
GB2498063A (en) Checking acceptance of a string by automaton
CN115795514A (zh) 一种隐私信息检索方法、装置及***
CN117828673B (zh) 基于区块链的数据流通与隐私保护方法及装置
CN117150557A (zh) 一种基于安全多方计算的支持压缩的隐私信息检索方法及***
CN113434906B (zh) 数据查询方法、装置、计算机设备及存储介质
CN117171202A (zh) 一种数据查询方法及装置
CN117371010A (zh) 数据匿踪查询方法、电子设备和可读存储介质
CN117371011A (zh) 数据隐匿查询方法、电子设备和可读存储介质
CN108141462B (zh) 数据库查询的方法和***
CN115599959A (zh) 数据共享方法、装置、设备及存储介质
CN115544572A (zh) 基于隐私保护的多方隐私数据和金融隐私数据的处理方法
CN117827884A (zh) 一种批量数据查询方法及装置
Hegde et al. Secure search scheme for encrypted data in the VANET cloud with random query trapdoor

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