CN117729533A - 一种查询方法、电子设备及系统 - Google Patents
一种查询方法、电子设备及系统 Download PDFInfo
- Publication number
- CN117729533A CN117729533A CN202310559410.9A CN202310559410A CN117729533A CN 117729533 A CN117729533 A CN 117729533A CN 202310559410 A CN202310559410 A CN 202310559410A CN 117729533 A CN117729533 A CN 117729533A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- key
- hash
- compressed
- query
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000012545 processing Methods 0.000 claims abstract description 125
- 230000004044 response Effects 0.000 claims abstract description 37
- 238000007906 compression Methods 0.000 claims description 189
- 230000006835 compression Effects 0.000 claims description 188
- 238000004422 calculation algorithm Methods 0.000 claims description 168
- 238000004891 communication Methods 0.000 claims description 36
- 238000002474 experimental method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 10
- 230000002829 reductive effect Effects 0.000 abstract description 16
- 238000013461 design Methods 0.000 description 26
- 210000004027 cell Anatomy 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000036961 partial effect Effects 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 210000004899 c-terminal region Anatomy 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种查询方法、电子设备及系统,应用于信息安全技术领域。其中,方法包括:响应于接收到来电,第一设备向第二设备发送查询请求,查询请求中包括使用第一密钥加密来电的来电号码得到的第一密文。响应于查询请求,第二设备向第一设备发送查询响应,查询响应包括第二密文以及第一密文集,第二密文为使用第二密钥加密第一密文得到的密文,第一密文集包括使用第二密钥加密第一号码集中的第一号码后得到的第三密文,第一号码是存在安全风险的号码。响应于查询响应,第一设备使用第一密钥解密第二密文后得到第四密文,匹配第四密文以及第一密文集,得到来电号码是否存在安全风险的查询结果。这样,可以减少查询请求端的数据处理量,降低查询时延。
Description
技术领域
本申请实施例涉及信息安全技术领域,尤其涉及一种查询方法、电子设备及系统。
背景技术
在使用手机、平板等电子设备的过程中,经常会向云、服务器或者其他设备进行二值查询。即,通过查询得到是(YES)或否(NO)的结果。与此同时,在查询过程中,可能涉及到隐私信息的交互。
现有技术中,可以采用隐私集合求交(Private Set Intersection,PSI),在二值查询的过程中实现对隐私信息的保护。
然而,发明人在实施本申请实施例的过程中发现:现有的PSI,查询请求端(如手机、平板等电子设备)需要对大量的数据执行加密运算,导致耗时较多,查询时延较高。
发明内容
本申请提供一种查询方法、电子设备及系统,可以减少查询请求端的数据处理量,降低查询时延。
第一方面,本申请提供一种查询方法,应用于手机、平板、笔记本电脑等第一设备中,第一设备具有向其他设备(如第二设备)进行二值查询的需求,以获得是(YES)或否(NO)的查询结果。具体的,响应于接收到来电,第一设备向第二设备发送查询请求,查询请求中包括使用第一密钥加密来电的来电号码得到的第一密文。第一设备接收来自第二设备的查询响应,查询响应中包括第二密文以及第一密文集,第二密文为使用第二密钥加密第一密文得到的密文,第一密文集包括使用第二密钥加密第一号码集中的第一号码后得到的第三密文,第一号码是存在安全风险的号码。即,查询响应中包括来电号码的双重密文(先后依次使用第一密钥和第二密钥加密得到的密文),以及还包括用于与来电号码匹配的第一号码集中第一号码的密文(使用第二密钥加密得到的密文)。第一设备在接收到查询响应之后,并不是使用第一密钥加密第一密文集中的各个密文,而是使用第一密钥解密第二密文后得到第四密文,即第四密文是使用第二密钥对来电号码加密后得到的密文。然后,第二设备匹配第四密文以及第一密文集,即匹配使用第二密钥对来电号码加密后得到的密文与使用第二密钥对第一号码加密后得到的密文,得到来电号码是否存在安全风险的查询结果。
应理解,通常情况下,同一时刻,来电号码只有一个,相应的,第二密文仅有一个。然而,第一号码集中可能包括第二设备中记录的所有存在安全风险的号码。或者,第一号码集中可能包括第二设备中记录的所有存在安全风险的号码中、可能与来电号码相同(如哈希特征相同)的号码。很显然,第一号码集中的第一号码可能有多个,相应的,第一密文集中的第三密文可能有多个。那么,对第一密文集中的第三密文加密的运算量,自然高于对第二密文解密的工作量。
由此可见,采用本申请提供的查询方法,首先,第一设备和第二设备都是使用各自的密钥对数据加密后再发送至对方,可以在实现查询的同时,保证信息的安全性,避免隐私泄露。以及,第一设备在接收到查询响应之后,经过少量的解密运算,然后即可进行数据匹配,得到查询结果。这样,可以避免因第一设备的算力限制,而影响查询效率,提高查询的实时性。实际中,尤其当第一设备是消费者(Customer,C)端产品时,其算力的局限性往往很大,这种情况下,采用本申请,可以更明显的降低因第一设备的算力不足而导致的查询时延。
在一种可能的设计方式中,第一密文集为多个密文集中,哈希特征(如哈希值中部分比特位的信息)与来电号码的哈希特征相同的密文集。其中,每个密文集中包括使用第二密钥对哈希特征相同的号码分别加密后得到的密文。即,每个密文集中的密文对应的都是哈希特征相同的号码的密文。例如,第一密文集对应的第一号码集中都是相同的哈希特征的号码。每个密文集的哈希特征为该密文集对应的号码的哈希特征。例如,第一密文集的哈希特征为第一号码集中第一号码的哈希特征。
应理解,任一号码如果与来电号码相同,则其哈希值必然相同,哈希特征也自然相同。那么,通过哈希特征,可以找到与来电号码可能相同的号码。因此,第一密文集的哈希特征与来电号码的哈希特征相同,则相当于找到了与来电号码可能相同的第一号码的密文。
也就是说,采用本设计方式,第二设备仅将可能与来电号码相同的第一号码的密文构成的第一密文集下发至第一设备。这样,可以减少第二设备向第一设备传输的数据量,节省通信开销。
在另一种可能的设计方式中,来电号码的哈希值和第一号码的哈希值都包括多个比特位。来电号码的哈希特征包括来电号码的哈希值中第一比特位的信息,第一号码的哈希特征包括第一号码的哈希值中第一比特位的信息。例如,第一比特位为哈希值中从高至低的一个或多个比特位,如8个、12个、16个比特位等。其中,从高至低的一个或多个比特位也可以称为哈希前缀。
在另一种可能的设计方式中,查询请求中还包括来电号码的哈希特征。应理解,来电号码的哈希特征用于第二设备确定第一密文集。
在另一种可能的设计方式中,第二设备可以对先对第一号码使用第二密钥加密,进一步对加密得到的密文使用第一压缩算法得到压缩密文,即:第三密文为使用第一压缩算法压缩得到的压缩密文。这样,第一密文集中都是压缩密文,可以进一步减少第二设备向第一设备传输的数据量,节省通信开销。
相应的,第一设备可以使用第一密钥解密第二密文,再使用第一压缩算法压缩,得到第四密文。这样,第四密文与第一密文集中的第三密文才都是使用第二密钥加密、在使用第一压缩算法压缩的压缩密文,两者才具有可比性。
在另一种可能的设计方式中,第一密文集中的第三密文为使用第一压缩算法压缩得到的压缩密文,或者,第一密文集中的第三密文不是压缩密文。也就是说,第三密文可能是压缩密文,也可能不是压缩密文。示例性的,如果不能保证不同第一号码的密文压缩后得到的压缩密文不存在碰撞(即没有相同的压缩密文),则不会对第一号码的密文压缩。反之,如果可以保证不同第一号码的密文压缩后得到的压缩密文不存在碰撞,则可以对第一号码的密文压缩。这样,可以避免出现压缩碰撞,提高查询结果的准确性。
相应的,第一设备在接收到查询响应之后,如果确定第三密文的长度大于第一长度,则表明第三密文不是压缩密文,该情况下,第一设备使用第一密钥解密第二密文即可得到第四密文,而无需对解密后的结果进一步压缩。如果确定第三密文的长度小于或等于第一长度,则表明第三密文是压缩密文,该情况下,第一设备可以使用第一密钥解密第二密文,再使用第一压缩算法压缩,得到第四密文。这样,可以保证第四密文与第一密文集中的第三密文都是使用第二密钥加密的密文,或者第四密文与第一密文集中的第三密文都是使用第二密钥加密、再使用第一压缩算法压缩的压缩密文,使得第四密文和第一密文集中的第三密文具有可比性。
在另一种可能的设计方式中,第一密文集中的第三密文为使用第一压缩算法压缩得到的压缩密文,或者,第一密文集中的第三密文为使用第二压缩算法压缩得到的压缩密文。也就是说,第三密文可能是使用第一压缩算法压缩得到的压缩密文,也可能是使用第二压缩算法压缩得到的压缩密文。示例性的,第二设备采用第一压缩算法或者第二压缩算法,都是为了保证第一密文集中的第三密文不会存在碰撞。这样,可以避免出现压缩碰撞,提高查询结果的准确性。
相应的,第一设备在接收到查询响应之后,可以使用第一密钥解密第二密文,再使用与第三密文的长度相匹配的目标压缩算法压缩,得到第四密文。其中,第三密文的长度为第二长度,第二长度是第一压缩算法压缩得到的压缩密文的长度,该情况下,目标压缩算法则为第一压缩算法。第三密文的长度为第三长度,第三长度是第二压缩算法压缩得到的压缩密文的长度,该情况下,目标压缩算法则为第二压缩算法。这样,可以保证第四密文与第一密文集中的第三密文都是使用第二密钥加密、再使用第一压缩算法压缩得到的压缩密文,或者都是使用第二密钥加密、再使用第二压缩算法压缩得到的压缩密文,使得第四密文和第一密文集中的第三密文具有可比性。
在另一种可能的设计方式中,压缩前的密文包括多个比特位,压缩后的密文包括压缩前的密文中第二比特位的信息。或者,压缩前的密文的哈希值包括多个比特位压缩后的密文中包括压缩前的密文的哈希值中第二比特位的信息。其中,第二比特位是部分比特位。即,取压缩前的密文或者压缩前的密文的哈希值中部分比特位的信息作为压缩后的密文。
在另一种可能的设计方式中,基于第一号码yj和来电号码xi相同,则使用第二密钥加密yj后得到的第三密文自然与使用第二密钥加密xi后得到的第四密文相同的原理,匹配第四密文以及第一密文集,得到来电号码是否存在安全风险的查询结果,包括:如果第一密文集中包括第四密文,则表明第一号码集中存在与来电号码相同的号码,从而得到来电号码存在安全风险的查询结果。如果第一密文集中不包括第四密文,则表明第一号码集中不存在与来电号码相同的号码,从而得到来电号码不存在安全风险的查询结果。
在另一种可能的设计方式中,来电号码为第一设备的通讯录中不包括的陌生号码。通常情况下,通讯录中的号码都不是用于非法途径的号码,即不存在安全风险。例如,通讯录中存储的家人、朋友、同事的号码自然不是存在安全风险的号码。
基于此,在本设计方式中,仅在接收到陌生号码的来电后,才查询该陌生号码是否为存在安全风险的号码。这样,可以提高方案的针对性,避免频繁查询。
在另一种可能的设计方式中,使用第一密钥加解密和使用第二密钥加密的算法包括迪菲-赫尔曼DH算法;或者,使用第一密钥加解密和使用第二密钥加密的算法包括椭圆曲线迪菲-赫尔曼ECDH算法。
应理解,DH算法和ECDH算法是两种常见的可交换的加密算法。采用可交换的加密算法,可以使得在使用第一密钥对第二密文解密后得到的第四密文,可以与第一密文集的第三密文比对。
第二方面,本申请提供一种查询方法,应用于第一设备和第二设备。响应于接收到来电,第一设备向第二设备发送查询请求,查询请求中包括使用第一密钥加密来电的来电号码得到的第一密文。响应于查询请求,第二设备向第一设备发送查询响应,查询响应包括第二密文以及第一密文集,第二密文为使用第二密钥加密第一密文得到的密文,第一密文集包括使用第二密钥加密第一号码集中的第一号码后得到的第三密文,第一号码是存在安全风险的号码。响应于查询响应,第一设备使用第一密钥解密第二密文后得到第四密文,匹配第四密文以及第一密文集,得到来电号码是否存在安全风险的查询结果。关于该查询方法的原理及效果,可以参见第一方面的相关说明,此处不再赘述。
在一种可能的设计方式中,查询请求中还包括来电号码的哈希特征,第二设备中包括多个密文集及其哈希特征之间的对应关系。在第二设备向第一设备发送查询响应之前,第二设备从多个密文集中查询哈希特征与来电号码的哈希特征相同的第一密文集。其中,一个密文集对应一个号码集,一个号码集包括存在安全风险且哈希特征相同的号码,第一号码集为第一密文集对应的号码集,第一密文集的哈希特征为第一号码的哈希特征。关于该查询方法的原理及效果,可以参见第一方面的可能设计方式中的说明,此处不再赘述。
在另一种可能的设计方式中,在第二设备向第一设备发送查询响应之前,第二设备可以获取第一号码集对应的目标处理参数;目标处理参数包括第二密钥、压缩信息;压缩信息包括:用于指示是否压缩使用第二密钥加密的密文的指示信息、以及在指示压缩使用第二密钥加密的密文时所使用的压缩算法。也就是说,第二设备需要先获取目标处理参数,才能处理得到第三密文。应注意,目标处理参数需要达到如下效果:使用目标处理参数得到的第一密文集中不包括相同的压缩密文。即,通过目标处理参数,避免出现压缩碰撞,提高查询结果的准确性。
然后,第二设备基于目标处理参数,处理第一号码集中的第一号码后得到第一密文集。其中,第二密钥用于第二设备对第一号码集中的第一号码加密。指示信息用于第二设备确定是否需要在对第一号码使用第二密钥加密后,进一步进行压缩。例如,指示信息指示无需压缩使用第二密钥加密的密文,则第二设备只需要对第一号码使用第二密钥加密,即可得到第三密文;指示信息指示需要压缩使用第二密钥加密的密文,则第二设备需要对第一号码使用第二密钥加密后、再压缩得到第三密文。压缩算法用于第二设备确定对第一号码使用第二密钥加密后、进一步压缩时采用的压缩算法,如第一压缩算法或者第二压缩算法。例如,压缩算法为第一压缩算法,第二设备则使用第一压缩算法对使用第二密钥加密得到的密文压缩,得到第三密文。压缩算法为第二压缩算法,第二设备则使用第二压缩算法对使用第二密钥加密得到的密文压缩,得到第三密文。从而保证第一密文集中不存在相同的密文。
在另一种可能的设计方式中,可以通过对大量的实验号码进行实验,得到使每组实验号码集对应的实验密文集中都不包括相同的密文的第一处理参数,如得到不同的哈希特征对应的压缩信息,或者得到适用于所有的哈希特征的压缩信息。然后,第二设备可以从第一处理参数中获取到用于对第一号码集处理的目标处理参数。
具体的,实验过程如下所示:第二设备基于多个试验号码的哈希特征对多个试验号码分组,得到多个实验号码集。其中,实验号码可以是国内或者全球所有的电话号码。每个实验号码集中都包括哈希特征相同的实验号码。第二设备基于初始处理参数计算各个实验号码集对应的实验密文集,实验密文集包括:使用随机密钥加密实验号码集中的试验号码、再使用第一压缩算法压缩后得到的压缩密文;初始处理参数包括随机密钥以及第一压缩算法。第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数。
应理解,使用第一处理参数,可以保证每个实验密文集中都不包括相同的密文。而实际中,第一号码集是实验号码的子集,则使用第一处理参数中的目标处理参数,自然可以保证第一密文集中不保存在相同的密文。
进一步的,在实现方式一中,第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数,包括:
重复执行下述过程,直至各个实验密文集中都不包括相同的压缩密文则得到第一处理参数:检测各个实验密文集中是否包括相同的压缩密文,若存在至少一个实验密文集中包括相同的压缩密文,第二设备更新初始处理参数中的随机密钥,使用更新后的初始处理参数再次计算各个实验号码集对应的实验密文集。
换言之,任一密文集中存在相同的密文,则更新随机密钥,直至使用更新后的随机密钥以及第一压缩算法处理后,每个实验密文集中都不存在相同的密文,则得到第一处理参数包括更新后的随机密钥和第一压缩算法。从而得到使每组实验号码集对应的实验密文集中都不包括相同的密文的第一处理参数。
应理解,如果使用初始处理参数就能使各个实验密文集中都不包括相同的压缩密文,则第一处理参数就是初始处理参数,即初始的随机密钥和第一压缩算法。
在实现方式一,第一处理参数可以应用到所有号码的处理。即,所有号码都可以使用第一处理参数来处理。那么,第二设备从检测得到的第一处理参数中,获取第一号码集对应的目标处理参数,包括:第二设备将检测得到的第一处理参数,确定为第一号码集对应的目标处理参数。也就是说,目标处理参数中的第二密钥即为第一处理参数中的随机密钥,目标处理参数中的压缩算法即为第一处理参数中的第一压缩算法。
在实现方式二中,第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数,包括:多个实验密文集中第一实验密文集中包括相同的压缩密文,则第二设备更新初始处理参数中的压缩信息,得到第一哈希特征对应的第一处理参数,第一哈希特征是第一实验密文集对应的实验号码集的哈希特征,更新后的压缩信息中的指示信息指示不压缩使用第二密钥加密的密文。换言之,如果第一实验密文集中包括相同的密文,则得到第一哈希特征对应的第一处理参数中,指示信息指示不压缩使用第二密钥加密的密文,以及第二密钥为初始的随机密钥。
多个实验密文集中第二实验密文集中不包括相同的压缩密文,第二设备将初始处理参数作为第二哈希特征对应的第一处理参数,第二哈希特征是第二实验密文集对应的实验号码集的哈希特征。换言之,如果第二实验密文集中包括相同的密文,则得到第二哈希特征对应的第一处理参数为初始处理参数,即第二密钥为初始的随机密钥,压缩算法为第一压缩算法。
在实现方式三中,第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数,包括:多个实验密文集中第一实验密文集中包括相同的压缩密文,第二设备更新初始处理参数中的压缩算法,得到第一哈希特征对应的第一处理参数,第一哈希特征是第一实验密文集对应的实验号码集的哈希特征,更新后的压缩算法压缩得到的密文的长度大于更新前的压缩算法压缩得到的密文的长度。应理解,压缩算法压缩得到的密文更长,则可以降低出现碰撞的可能。换言之,如果第一实验密文集中包括相同的密文,则得到第一哈希特征对应的第一处理参数中,压缩算法为更新后的压缩算法(也可以称为第二压缩算法),以及第二密钥为初始的随机密钥。
多个实验密文集中第二实验密文集中不包括相同的压缩密文,第二设备将初始处理参数作为第二哈希特征对应的第一处理参数,第二哈希特征是第二实验密文集对应的实验号码集的哈希特征。换言之,如果第二实验密文集中包括相同的密文,则得到第二哈希特征对应的第一处理参数为初始处理参数,即第二密钥为初始的随机密钥,压缩算法为第一压缩算法。
在上述实现方式二和实现方式三中,第二设备从检测得到的第一处理参数中,获取第一号码集对应的目标处理参数,包括:第二设备从检测得到的第一处理参数中,获取与第一号码集的哈希特征(也可以理解为第一密文集的哈希特征)相同的哈希特征对应的第一处理参数作为第一号码集对应的目标处理参数。
示例性的,采用实现方式二,如果第一号码集的哈希特征与第一哈希特征相同,则目标处理参数中指示信息指示不压缩使用第二密钥加密的密文,第二密钥为初始的随机密钥。如果第一号码集的哈希特征与第二哈希特征相同,则目标处理参数中压缩算法为第一压缩算法,以及第二密钥为初始的随机密钥。从而保证使用目标处理参数处理得到的第一密文集中不存在相同的密文。
又示例性的,采用实现方式三,如果第一号码集的哈希特征与第一哈希特征相同,则目标处理参数中压缩算法为第二压缩算法,以及第二密钥为初始的随机密钥。如果第一号码集的哈希特征与第二哈希特征相同,则目标处理参数中压缩算法为第一压缩算法,以及第二密钥为初始的随机密钥。从而保证使用目标处理参数处理得到的第一密文集中不存在相同的密文。
第三方面,本申请还提供一种电子设备,所述电子设备包括存储器和一个或多个处理器。所述存储器和所述处理器耦合。所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令。其中,所述电子设备为第一设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如第一方面、第二方面及其任一种可能的设计方式中,所述第一设备执行的步骤;或者,所述电子设备为第二设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如第一方面、第二方面及其任一种可能的设计方式中,所述第二设备执行的步骤。
第四方面,本申请还提供一种通信系统,所述通信系统包括如第一方面、第二方面及其任一种可能的设计方式中的第一设备和第二设备。
第五方面,本申请实施例提供一种芯片系统,该芯片系统应用于包括显示屏和存储器的电子设备;所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令。其中,所述电子设备为第一设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如第一方面、第二方面及其任一种可能的设计方式中,所述第一设备执行的步骤。或者,所述电子设备为第二设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如第一方面、第二方面及其任一种可能的设计方式中,所述第二设备执行的步骤。
第六方面,本申请提供一种计算机存储介质,该计算机存储介质包括计算机指令。其中,当所述计算机指令在第一设备上运行时,使得所述第一设备执行如第一方面、第二方面及其任一种可能的设计方式中,所述第一设备执行的步骤。或者,当所述计算机指令在第二设备上运行时,使得所述第二设备执行如第一方面、第二方面及其任一种可能的设计方式中,所述第二设备执行的步骤。
第七方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述电子设备,通信系统,芯片系统,计算机存储介质,计算机程序产品所能达到的有益效果,可参考第一方面、第二方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种PSI的原理图;
图2为本申请实施例提供的一种通信系统的组成图;
图3为本申请实施例适用的场景1的示意图;
图4A为本申请实施例适用的场景2的示意图;
图4B为本申请实施例适用的场景3的示意图;
图5为一种查询方法的流程图;
图6为本申请实施例提供的查询方法的流程图之一;
图7为本申请实施例提供的一种电子设备的硬件结构图;
图8为本申请实施例提供的查询方法的阶段构成图之一;
图9为本申请实施例提供的查询方法中阶段1的流程图;
图10为本申请实施例提供的查询方法中阶段2的流程图;
图11为本申请实施例提供的查询方法中阶段3的流程图之一;
图12为本申请实施例提供的查询方法的原理图之一;
图13为本申请实施例提供的查询方法中阶段4的流程图之一;
图14为本申请实施例提供的查询方法中阶段3的流程图之二;
图15为本申请实施例提供的查询方法中阶段4的流程图之二;
图16为本申请实施例提供的查询方法的流程图之二;
图17为本申请实施例提供的查询方法的原理图之二;
图18为本申请实施例提供的查询方法的阶段构成图之二;
图19A为本申请实施例提供的查询方法中阶段0的流程图之一;
图19B为本申请实施例提供的查询方法中阶段0的流程图之二;
图19C为本申请实施例提供的查询方法中阶段0的流程图之三;
图20为本申请实施例提供的芯片系统的结构图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
在说明本申请实施例之前,先对本申请涉及的技术术语做简单介绍:
1、隐私集合求交(Private Set Intersection,PSI)。
PSI是一种安全多方计算(Secure Multi-Party Computation,SMPC)技术。采用PSI,可以在参与双方不泄露双方持有数据的交集之外的数据的情况下,得到该交集,实现隐私保护。
示例性的,参见图1,手机拥有隐私数据集A,云拥有隐私数据集B,手机需要查询隐私数据集A和隐私数据集B的交集A∩B。但是,手机不希望向云泄露其隐私数据集A,云也不希望向手机泄露其隐私数据集B中除A∩B之外的数据。针对这种场景,手机和云可以采用PSI,使得手机仅获得A∩B,而不会获得隐私数据集B中除A∩B之外的数据,以及云不会获得隐私数据集A。
在本申请实施例中,采用PSI,可以在二值查询(即,通过查询得到是(YES)或否(NO)的结果)的过程中,不泄露双方持有数据的交集之外的数据,实现隐私保护。
2、可交换的加密算法。
可交换的加密算法即为加解密的顺序可以调换的算法。常见的可交换的加密算法包括迪菲-赫尔曼(Diffie-Hellman,DH)算法、椭圆曲线迪菲-赫尔曼(Elliptic CurveDiffie-Hellman,ECDH/ECC)算法。
示例性的,采用可交换的加密算法,使用密钥a对数据x加密,得到密文xa,使用密钥b对密文xa进一步加密,得到密文xab。采用可交换的加密算法,使用密钥b对数据y加密,得到密文yb,使用密钥a对密文yb进一步加密,得到密文yba。如果数据x和数据y相等,则上述密文xab与密文xba也相等。即,对于相同的数据,使用可交换的加密算法,则交换加密顺序,也可以得到相同的密文(简称为原理一)。在现有技术的PSI中,使用该原理一来实现隐私保护,具体可参见下文图5所示的相关说明。
进一步的,对于上述密文xab,先使用密钥a可以解密得到密文xb,如果数据x和数据y相等,则密文xb等于对数据y使用密钥b加密得到的密文,即密文yb。那么,对于数据x,使用可交换的加密算法双重加密(即先使用密钥a加密,再使用密钥b加密)后,再使用密钥a解密,可以得到使用密钥b对数据x加密得到的密文xb,如果密文xb与使用密钥b对数据y加密得到的密文yb相等,则可以确定数据x和数据y相等(简称为原理二)。在本申请实施例提供的查询方法中,在PSI中使用该原理二来实现隐私保护,以降低查询时延,具体可参见下文图6所示的相关说明。
需要说明的是,本文中除有特别声明外,加密/解密都是使用可交换的加密算法来实现的,下文不再一一说明。
本申请实施例提供一种查询方法,该方法可以应用于本申请实施例提供的通信系统。参见图2,通信系统可以包括第一设备(如图2所示的手机210)和第二设备(如图2所示的云220)。其中,第一设备为具有查询需求的设备,第二设备为提供查询服务的设备。
第一设备和第二设备通信连接,用于传输查询过程中的数据交互。例如,用于第一设备向第二设备发送查询请求,以及用于第二设备向第一设备返回查询响应。示例性的,第一设备和第二设备之间可以使用通用串行总线(universal serial bus,USB)建立有线连接。或者,第一设备和第二设备之间可以通过全球移动通讯系统(global system formobile communications,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址接入(code division multiple access,CDMA)、宽带码分多址(widebandcode division multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA),长期演进(long term evolution,LTE)、蓝牙、无线保真(wireless fidelity,Wi-Fi)、NFC、基于互联网协议的语音通话(voice over Internetprotocol,VoIP)、支持网络切片架构的通信协议建立无线连接。
上述第一设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等具有查询需求的设备。上述第二设备可以是云、服务器、个人计算机(personal computer,PC)等可以提供查询服务的设备。本申请实施例对第一设备和第二设备的具体形态不作特殊限制。
示例性的,上述第一设备可以是企业对消费者(Business to Consumer,B2C)模式、消费者对消费者(Consumer to Consumer,C2C)模式或者企业对企业(Business toBusiness,B2B)模式中的任一端,上述第二设备可以是B2C模式、C2C模式或者B2B模式中的另一端。应理解,与B端设备相比:C端设备的算力是极其有限的,因此,如果第一设备是上述B2C模式、C2C模式或者B2B模式中的C端设备,采用本申请实施例提供的查询方法,可以更明显的降低因算力不足而导致的查询时延。
下文中,以第一设备是图2所示的手机210,第二设备是图2所示的云220为例来说明。
本申请实施例提供的查询方法,可以应用于手机210向云220进行二值查询,并且查询过程中涉及隐私信息的场景(简称为隐私查询场景)中,以实现隐私保护。下面列举几种典型的场景:
场景1,好友发现场景。即,发现通讯录中的联系人是否在社交应用中注册有账号。
手机210在安装并首次运行社交应用A时,可以显示图3所示的界面301。界面301中包括提示文本“是否允许发现通讯录好友”,以提示用户发现通讯录中的联系人是否在社交应用中注册有账号。以及,界面301中还包括“是”和“否”两个选项。响应于用户对界面301中“是”选项的选择操作,手机210可以向云220发送发现通讯录好友的查询请求,以查询通讯录中的各个联系人是否在社交应用A中注册有账号。在查询结束之后,手机210可以显示图3所示的界面302。界面302中包括在社交应用A中注册有账号的联系人,如汤姆、爱丽丝等。当然,界面302中还可以包括这些联系人在社交应用A中的账号(如我爱吃鱼、天天开心等)、头像等信息。
在非首次运行社交应用A的过程中,响应于发现通讯录好友的操作(如用户在社交应用A的设置中点击发现通讯录好友的按钮的操作),手机210也可以向云220发送发现通讯录好友的查询请求,并在获得查询结果后显示,此处不多赘述。
在上述场景1中,手机210向云220发送的查询请求中,通常需要携带通讯录中包括的联系人号码。这样,云220通过将联系人号码与云220中记录的注册用户的号码(简称为注册号码)比对,才能发现通讯录中的各个联系人是否在社交应用A中注册有账号。例如,通讯录中包括联系人号码“12345678910”,云220中记录的注册号码中也包括“12345678910”,云220则可以确定联系人号码“12345678910”在社交应用A中注册有账号。然而,手机210中通讯录包括的联系人号码属于隐私信息,手机210将其直接发送至云220,会存在隐私泄露的风险。
在场景1中,手机210中的隐私信息为联系人号码,云220中的隐私信息为注册号码。在场景1中,使用本申请实施例提供的查询方法,在实现发现好友的同时,可以避免联系人号码泄露给云220。另外,也可以避免云220中除联系人号码和注册号码的交集之外的注册号码泄露给手机210。
场景2,反诈云查场景。即,查询陌生来电是否为存在安全风险的电话(简称为风险号码)。
手机210在接收到陌生来电后,可以向云220发送风险号码的查询请求,以查询陌生来电是否为风险号码。其中,陌生来电是指来电号码是手机210中未存储的号码的来电。在查询到陌生来电为风险号码之后,手机210可以显示图4A所示正在通话的界面401。界面401中包括提示文本“存在安全风险”,以提示陌生来电为风险号码。
在上述场景2中,手机210向云220发送的查询请求中,通常需要携带陌生来电的来电号码。这样,云220通过将来电号码与云220的反诈号码库中记录的风险号码比对,才能发现陌生来电的来电号码是否为风险号码。例如,陌生来电的来电号码为“10987654321”,云220的反诈号码库中也记录有号码“10987654321”,云220则可以确定来电号码为风险号码。然而,手机210接收到的来电号码属于隐私信息,手机210将其直接发送至云220,会存在隐私泄露的风险。
在场景2中,手机210中的隐私信息为来电号码,云220中的隐私信息为反诈号码库中的风险号码。在场景2中,使用本申请实施例提供的查询方法,在实现反诈的同时,避免来电号码泄露给云220。另外,也可以避免云220中除来电号码和反诈号码库的交集之外的风险号码泄露给手机210。
场景3,泄露密码检查场景。即,查询密码是否泄漏。
手机210在检测到密码检查的事件后,可以向云220发送泄漏密码的查询请求,以查询手机210中的密码是否被泄露。示例性的,手机可以显示图4B所示的界面402。界面402为密码的设置界面,用于手机210中密码的管理。界面402中包括泄漏密码检查的设置项403。例如,设置项403中包括文本“检查已泄露的密码”,以指示设置项403用于泄漏密码的检查;以及,设置项403中还包括文本“可安全监控您的密码,并在密码出现泄露时提醒您”,以对泄露密码检查进行功能介绍。并且,设置项403中还包括按钮4031,按钮4031处于关闭状态。密码检查的事件可以是用户对按钮4031的点击操作。响应于用户对按钮4031的点击操作,则可以开启泄露密码检查的功能。在开启检查之后,手机210可以向云220发送泄露密码的查询请求。或者,在泄露密码检查的功能开启后,手机210可以定期向云220发送泄露密码的查询请求。在查询结束之后,手机210可以显示图4B所示的界面404,界面404中仍然包括设置项403,但此时设置项403中的按钮4031处于开启状态,指示泄露密码检查的功能已开启。并且,界面405中包括应用1的密码已泄露的提示信息,用于提示应用1的密码被泄露,存在安全隐患。
在场景3中,手机210中的隐私信息为应用或者解锁的密码,云220中的隐私信息为从各个渠道收集到的密码。在场景3中,使用本申请实施例提供的查询方法,在实现反诈的同时,避免手机210中的密码泄露给云220。另外,也可以避免云220中除交集之外的密码泄露给手机210。
下文中,主要结合上述场景1和场景2说明本申请实施例,在场景1和场景2中,隐私信息都是电话号码。并且,为了便于区分,将手机210中的隐私信息记为隐私信息x,隐私信息x包括x1、x2……xm,m为手机210中隐私信息的数量。以及,将云220中的隐私信息记为隐私信息y,隐私信息y包括y1、y2……yn,n为云220中隐私信息的数量。通常情况在,n远大于m。示例性的,云220中包括的注册号码云220中的风险号码或者注册号码可能有几十万,那么n可能是十万级别的;而手机210中当前的来电号码通常只有一个,即m=1,或者,手机210中的联系人号码通常也就几十或者几百,则m也就几十或者几百,很显然都远远小于n。
针对上述隐私查询的场景,可以采用在PSI中使用可交换的加密算法的方案来解决。具体的,参见图5,查询过程包括:
S501、云220采用密钥b(第二密钥)对n条隐私信息y加密,得到数据集Hn(y)b,n为正整数。
示例性的,n个风险号码(第一号码,n个风险号码构成第一号码集)分别为y1,y2,y3……yn,使用密钥b加密后,可以依次得到密文y1b,y2b,y3b……ynb(分别称为第三密文)。y1b,y2b,y3b……ynb构成上述数据集Hn(y)b(第一密文集)。
S502、响应于查询事件,手机210采用密钥a(第一密钥)对m条隐私信息x加密,得到数据集Hm(x)a,m为正整数。
示例性的,来电号码为x1,使用密钥a加密后,可以得到密文x1a(第一密文)。x1a构成上述数据集Hm(x)a。应理解,如果m更大,则数据集Hm(x)a中包括的密文会更多。
其中,查询事件用于触发手机210向云220进行二值查询。
例如,查询事件可以是用户对前述图3所示界面301中“是”选项的选择操作。
又例如,或者,查询事件可以是用户对图4B所示界面402中按钮4031的点击操作。
再例如,查询事件可以是手机210接收到陌生来电的事件。通常情况下,手机210的通讯录中保存的是不存在安全风险的号码。因此,当接收到陌生来电时,才需要查询来电号码是否存在安全风险。
但是,同一号码,先后是可以被不同用户拥有的。例如,A用户将号码a注销后,B用户可以继续拥有号码a的使用权。那么,同一号码,其是否存在安全风险,也可能是动态变化的。例如,A用户将号码a用于合法的途径,此时号码a则不存在安全风险;而B用户将号码a用户非法途径,此时号码a则存在安全风险。基于此,在一些实施例中,查询事件也可以是手机210接收到任意来电的事件。这样,可以保证查询到所有来电中的风险号码,避免遗漏。
S503、手机210向云220发送查询请求,查询请求中包括数据集Hm(x)a。
手机210并不会将隐私信息x的明文发送至云220,而只是会发送对隐私信息x一次加密后的密文,以避免隐私泄露。
示例性的,手机210向云220发送风险号码的查询请求,查询请求中携带来电号码的密文。
S504、响应于查询请求,云220使用密钥b对数据集Hm(x)a中的密文二次加密,得到数据集Hm(x)ab。
示例性的,云220对数据集Hm(x)a中的密文x1a使用密钥b二次加密,可以得到密文x1ab(第二密文)。x1ab构成上述数据集Hm(x)ab。
S505、云220向手机210发送数据集Hm(x)ab和数据集Hn(y)b。
也就是说,云220会对隐私信息x的密文进一步加密后返回给手机210,也不会获取到隐私信息x的明文。以及,云220并不会将隐私信息y的明文发送至手机210,而只是发送对隐私信息y一次加密的密文,避免隐私泄露。
至此,需要说明的是,上述S501与S502-S504之间并没有严格的先后执行顺序。实际中,只要在S505之前完成S501即可。
S506、手机210使用密钥a对数据集Hn(y)b中的密文分别二次加密,得到数据集Hn(y)ba。
示例性的,手机210对数据集Hn(y)b中的密文y1b,y2b,y3b……ynb分别使用密钥a二次加密,可以依次得到密文y1ba,y2ba,y3ba……ynba。y1ba,y2ba,y3ba……ynba构成上述数据集Hn(y)ba。
S507、手机210将数据集Hm(x)ab和数据集Hn(y)ba比对,得到比对结果。
应理解,前述加密(如使用密钥a加密和使用密钥b加密)都是使用的可交换的加密算法,如DH、ECDH。依据可交换的加密算法的原理一(具体可参见前文关于“可交换的加密算法”的术语介绍)可知,如果隐私信息xi和隐私信息yj相同,则数据集Hm(x)ab中xi对应的密文xiab,与数据集Hn(y)ba中yj对应的密文yjba相等。
那么,针对数据集Hm(x)ab中的密文xiab,如果数据集Hn(y)ba中包括相同的密文yjba,则表示隐私信息y中包括密文xiab对应的隐私信息xi;如果数据集Hn(y)ba中不包括相同的密文yjba,则表示隐私信息y中不包括密文xiab对应的隐私信息xi。
示例性的,如果比对得到数据集Hm(x)ab中的密文x1ab与数据集Hn(y)ba中的密文y3ba相同,则表示云220的风险号码库中包括来电号码x1。
需要说明的是,手机210经过比对,也只能确定云220中是否包括与隐私信息x相同的隐私信息,而无法获知云220中除隐私信息x之外的隐私信息。示例性的,手机210可以确定云220中的风险号码中是否包括来电号码x1,但是不能确定云220中是否包括除来电号码x1之外的号码。
S508、手机210提示比对结果中相同元素对应的隐私信息x的查询结果为是。
其中,相同元素是指数据集Hm(x)ab和数据集Hn(y)ba中相同的密文。例如,密文x1ab和密文y3ba。
示例性的,手机210可以显示图4A所示的界面401,以提示来电号码x1,如“10987654321”是风险号码。
由此可见,采用图5所示的方案,在实现查询的同时,一方面可以保证手机210中的隐私信息x不会泄露给云220,另一方面可以保证云220中除隐私信息x之外、剩余的隐私信息y不会泄露给手机210。
与此同时,采用上述图5所示的方案,在S506中,手机210需要对数据集Hn(y)b中包括的n个密文分别二次加密。而n非常大,即手机210需要对大量的密文二次加密,运算量较大,耗时较长,导致时延较高。
基于此,本申请实施例提供了一种查询方法,该方法应用于包括手机210和云220的通信系统。该方法同样采用在PSI中使用可交换的加密算法的方案来解决隐私查询的问题。参见图6,前文图5中的S506和S507可以替换为S601和S602。
其中,S601、手机210使用密钥a对数据集Hm(x)ab中的密文解密,得到数据集Hm(x)b。示例性的,手机210对数据集Hm(x)ab中的密文x1ab使用密钥a解密,得到密文x1b(第四密文)。x1b构成上述数据集Hm(x)b。在S601中,手机210仅需对数据集Hm(x)ab中的m个密文解密,m远小于n。因此,与对n个密文加密相比,对m个密文解密的运算量要更小,耗时更短,时延更低。
S602、手机210将数据集Hm(x)b和数据集Hn(y)b比对,得到比对结果。依据可交换的加密算法的原理二(具体可参见前文关于“可交换的加密算法”的术语介绍)可知,如果隐私信息xi和隐私信息yj相同,则对数据集Hm(x)ab中xiab解密得到的密文xib,与数据集Hn(y)b中yj对应的密文yjb相等。那么,针对数据集Hm(x)b中的密文xib,如果数据集Hn(y)b中包括相同的密文yjb,则表示隐私信息y中包括密文xib对应的隐私信息xi;如果数据集Hn(y)b中不包括相同的密文yjb,则表示隐私信息y中不包括密文xib对应的隐私信息xi。
采用本申请实施例提供的查询方法,手机210在获取到云220发送的数据集Hm(x)ab和数据集Hn(y)b之后,经过少量的解密运算,即可进行数据比对,得到比对结果。实际中,查询请求端为C端(如手机210)时,其算力的局限性往往很大。采用本申请实施例,可以明显的降低因查询请求端的算力不足而导致的查询时延。
下面将结合附图对本申请实施例的实施方式进行详细描述。图7为本申请实施例提供的一种电子设备(如第一设备、第二设备)的硬件结构图。以电子设备是手机210为例,如图7所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
充电管理模块140用于接收充电器的充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
电子设备可以通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备可以通过摄像模组193,ISP,视频编解码器,GPU,显示屏194以及应用处理器AP、神经网络处理器NPU等实现摄像功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。内部存储器121可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190可以包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备的接触和分离。
需要在此说明的是,上述图7所示电子设备的硬件结构仅为示例性的。实际中,电子设备可以具有比图7更多或者更少的结构。以电子设备是云220为例,则电子设备可能主要包括处理器和存储器。
本申请实施例提供的查询方法,可以在由具有上述硬件结构的第一设备和第二设备构成的通信系统中完成。下文仍以第一设备是手机210,第二设备是云220为例,来详细说明本申请实施例。
参见图8,本申请实施例提供的查询方法包括如下4个阶段:
阶段1,云220数据初始化阶段。在阶段1中,云220需要对n条隐私信息y的加密,得到数据集Hn(y)b。示例性的,云220需要执行前文中的S501。
在一些实施例中,云220可以离线完成数据初始化,以避免查询过程中的初始化运算,进一步降低查询时延。
阶段2,手机210请求阶段。在阶段2中,手机210响应于查询事件,需要完成对隐私信息x的加密并向云220发送查询请求。示例性的,在阶段2中,手机210可以完成前文S502-S503的步骤。
阶段3,云220查询响应阶段。在阶段3中,云220可以响应来自手机210的查询请求。示例性的,在阶段3中,云220需要完成前文S504-S505的步骤。
阶段4,手机210比对阶段。在阶段4中,手机210基于云220下发的数据来比对,从而得到查询结果。示例性的,在阶段4中,手机210可以完成前文S601-S602和S508。
实际中,隐私信息集合Hn(y)中包括的数据量很大,相应的,加密得到的数据集Hn(y)b中的密文数据量也很大。后续向手机210传输数据集Hn(y)b需要很大的通信开销,如需要很多的流量。通信开销增大到一定程度时,用户可能难以接受。针对该问题,云220还可以通过数据处理,减小向手机210传输的数据量,从而节省通信开销。具体地,云220可以通过对数据集Hn(y)b中的密文分桶和/或压缩数据集Hn(y)b中的密文的方式来减小向手机210传输的数据量。下面分别说明:
在一些实施例中,在阶段1中,云220可以将数据集Hn(y)b包括的大量密文划分到多个分桶(也可以理解为分组)中,后续在阶段3中,云220向手机210下发密文时,则可以仅发送有需要的分桶(可以称为目标分桶)中的密文,从而减小通信开销。
其中,云220可以依据隐私信息y的哈希特征对数据集Hn(y)b包括的大量密文划分分桶。哈希特征可以是哈希值中部分比特位(第一比特位)的信息。例如,部分比特位是哈希值中由高至低的前k个比特位,又称为哈希前缀。又例如,部分比特位是哈希值中由低至高的末尾k个比特位等。下文主要以哈希前缀为例来说明。划分到一个分桶中的密文可以称为一个密文集,一个密文集中包括哈希特征相同的隐私信息y对应的密文。
参见图9,在阶段1中,云220可以完成下述步骤:
S901、云220对n条隐私信息y分别计算哈希值,得到n个哈希值。
云220可以使用哈希算法(Hash Algorithm,HA)计算每条隐私信息y的哈希值。例如,哈希算法包括信息-摘要算法4(Message-Digest Algoorithm 4,MD4)、信息-摘要算法5(Message-Digest Algoorithm 5,MD5)、安全散列算法256(Secure Hash Algorithm 256,SHA-256)等。
以n条隐私信息y为风险号码y1、y2、y3……yn为例,手机210计算n个风险号码的哈希值,可以依次得到哈希值0002E11A0C0E…51A1518,000341AA6176…C300081,000C497DE639…4BB1298,……,0002DF235902…D6B71BD。
S902(即前文S501)、云220对n条隐私信息y使用密钥b加密,得到数据集Hn(y)b。
在一种具体的实现方式中,云220可以对n条隐私信息y本身加密,以实现对n条隐私信息y加密,图9中并未示出该实现方式。示例性的,云220可以对风险号码本身加密。需要说明的是,如果采用本实现方式,则S901和S902之间没有严格的先后顺序限制,而只需在S903之前完成S901和S902即可。
在另一种具体的实现方式中,云220可以对n条隐私信息y对应的n个哈希值加密,以实现对n条隐私信息y加密,图9示出的即为这种实现方式。示例性的,云220可以对风险号码的哈希值0002E11A0C0E…51A1518,000341AA6176…C300081,000C497DE639…4BB1298,……,0002DF235902…D6B71BD分别加密,依次得到密文y1b,y2b,y3b……ynb。
S903、云220将数据集Hn(y)b中的密文yjb划分到隐私信息yj的哈希值前缀对应的分桶中,1≤j≤n,j为整数。
在S903之前,云220可以按照哈希值前缀(即前k个比特位(bit))的可能取值来表示分桶。其中,k可以为8、12、16等。例如,k=16,即按照前16个比特位的可能取值来表示分桶,则可以得到分桶0x 0000、分桶0x 0001……分桶0x ffff。其中,0x表示16进制。应理解,为了简化,下文和图中都会省略掉0x。
针对任一隐私信息yj,经过前文S901,处理得到了隐私信息yj的哈希值,如记为S(yj);以及经过前文S902,处理得到了隐私信息yj的密文yjb。在S903中,云220可以将密文yjb划分到S(yj)的哈希值前缀对应的分桶中。
仍以k=16为例,风险号码y1的哈希值为0002E11A0C0E…51A1518,即哈希值前缀为0002,那么,可以将密文y1b划分到分桶0002;风险号码y2的哈希值为000341AA6176…C300081,即哈希值前缀为0003,那么,可以将密文y2b划分到分桶0003;风险号码y3的哈希值为000C497DE639…4BB1298,即哈希值前缀为000C,那么,可以将密文y3b划分到分桶000C……风险号码yn的哈希值为0002DF235902…D6B71BD,即哈希值前缀为0002,那么,可以将密文ynb划分到分桶0002。
经过S903,则分桶中会包括密文。示例性的,各个分桶包括的密文如下表1所示:
表1
其中,分桶0002中包括密文y1b、ynb……;分桶0003中包括密文y2b……;分桶000C中包括密文y3b……
至此,云220可以将n条隐私信息y的密文划分到多个分桶中,以便后续确定目标分桶。
在阶段2中,手机210还可以得到m条隐私信息x分别的哈希值前缀,以便于云220在阶段3中,可以确定出目标分桶。
参见图10,在阶段2中,手机210可以完成下述步骤:
S1001、响应于查询事件,手机210对m条隐私信息x分别计算哈希值,得到m个哈希值。
示例性的,对来电号码x1求哈希值,得到哈希值0002936ED794…8921B4B。
关于S1001的具体实现,可参见前文S901的相关说明,此处不再赘述。需要说明的是,为了使隐私信息y的哈希值和隐私信息x的哈希值之间具有可比性,在S1001中,手机210采用的哈希算法与前文S901中云220采用的哈希算法相同。进一步的,为了在接收到查询事件后,可以快速得到查询结果,云220和手机210都可以采用运算速度较快的哈希算法来计算哈希值,如MD5、SHA256等。
S1002(即前文S502)、手机210对m条隐私信息x使用密钥a加密,得到数据集Hm(x)a。
与前文S902中类似的:在一种具体的实现方式中,手机210可以对m条隐私信息x本身加密,以实现对m条隐私信息x加密,图10并未示出这种实现方式。示例性的,手机210可以对来电号码x1本身加密。需要说明的是,如果采用本实现方式,则S1001和S1002之间没有严格的先后顺序限制,而只需在S1003之前完成S1001和S1002即可。在另一种具体的实现方式中,手机210也可以对m条隐私信息x对应的m个哈希值加密,以实现对m条隐私信息加密,图10示出的即为这种实现方式。示例性的,手机210可以对来电号码x1的哈希值0002936ED794…8921B4B加密。
需要注意的是,为了保证云220中n条隐私信息y的密文和手机210中m条隐私信息x的密文具有可比较性,如果S902中采用对隐私信息y本身进行加密的方式,则S1002中也应采用对隐私信息x本身进行加密的方式。如果S902中采用对隐私信息y的哈希值进行加密的方式,则S1002中也应采用对隐私信息x的哈希值进行加密的方式。
S1003、手机210基于m个哈希值构建哈希值前缀和数据集Hm(x)a中各个密文的关系字典1。
针对任一隐私信息xi,经过前文S1001,处理得到了隐私信息xi的哈希值,如记为S(xi);以及经过前文S1002,处理得到了隐私信息xi的密文xia,如密文x1a。在S1003中,手机210可以建立S(xi)的哈希值前缀和密文xia的对应关系,得到关系字典1。示例性的,关系字典1中包括来电号码x1的哈希值0002936ED794…8921B4B的哈希值前缀0002和密文x1a的对应关系。
在手机210中,可以维护上述关系字典1。示例性的,关系字典1中的数据结构如下表2所示:
表2
哈希值前缀 | 密文 |
0002 | x1a |
S1004、手机210向云220发送查询请求,查询请求中包括关系字典1。
关系字典1中包括m条隐私信息x的密文,即数据集Hm(x)a。可见,本实施例中,手机210可以通过向云220发送关系字典1来实现向云220发送数据集Hm(x)a,即实现前文S503。
其中,手机210可以通过安全加密的方式,如https方式向云220发送查询请求,以保证信息安全。
以及,在阶段3中,云220可以根据关系字典1包括的哈希值前缀,确定出目标分桶,以减少返回给手机210的数据量,缩减通信开销。
参见图11,在阶段3中,云220可以完成下述步骤:
S1101、云220查询关系字典1中的哈希值前缀对应的目标分桶。
云220遍历关系字典1中的每一个哈希值前缀,查询该哈希值前缀对应的目标分桶。示例性的,关系字典1中的哈希值前缀包括0002。那么,云220可以查询到目标分桶为分桶0002。
S1102、云220使用密钥b对关系字典1中的密文二次加密,得到数据集Hm(x)ab。
应理解,关系字典1中的密文即前文所述的数据集Hm(x)a,则对数据集Hm(x)a中的每一个密文加密后可以得到数据集Hm(x)ab,从而实现前文S504的过程,此处不再赘述。
前文S1101和S1102之间并没有严格的先后顺序,实际中,可以先后依次执行S1101和S1102,也可以先后依次执行S1102和S1101,还可以同时执行S1101和S1102。本申请实施例对此不作具体限定。
S1103、云220将目标分桶中的密文(第一密文集)和数据集Hm(x)ab下发至手机210。
示例性的,云220也可以通过安全加密的方式,如https方式向手机210下发目标分桶中的密文和数据集Hm(x)ab,以保证信息安全。
与不分桶的实施例相比:本实施例中,云220不会将其所有隐私信息y的密文,如数据集Hn(x)b下发至手机210,而仅将目标分桶中的密文(如记为数据集Hn0(x)b)下发至手机210。其中,n0为目标分桶中包括的密文的数量,n0为小于n的正整数。即,前文S505会更新为S1103。这样,可以减少云220向手机210下发的数据量,缩减通信开销。
至此,需要说明的是:k的取值不同,则缩减通信开销的程度也不同。其中,k的取值越大,缩减通信开销的程度越大。下面将详细说明k的取值对通信开销的影响:
k的取值越大,则分桶越精细。那么,在阶段1中,将云220中的隐私信息y的密文划分到分桶中时,可以将密文分散到更多的分桶中,使得密文分桶更精细。
示例性的,云220中的隐私信息y及其哈希值和密文如下表3所示:
表3
以上表3中的数据为例,参见图12,下面比较k=8和k=16时,上述表3中4条隐私信息y所属的分桶:
k=8,则可以包括分桶00、01……ff,共256个分桶;而k=16,则可以得到分桶0000、0001……ffff,共65536个分桶。很显然,与k=8相比:k=16时,可以划分得到更多数量的分桶,分桶更精细。
上述表3中4个哈希值的前8个比特位都是00,则在阶段1中,如果采用k=8的分桶,上述表3中的4个密文y1b、密文y2b、密文y3b以及密文y4b都会被划分到分桶00中。即,分桶00中包括4个密文。上述表3中4个哈希值的前16个比特位依次是0002、0003、000C以及0002,则在阶段1中,如果采用k=16的分桶,上述表3中的4个密文y1b、密文y2b、密文y3b以及密文y4b会依次被划分到分桶0002、分桶0003、分桶000C和分桶0002中。即,4个密文分散划分到3个分桶中,其中分桶0002中包括2个密文,分桶0003中包括1个密文,分桶000C中包括1个密文。很显然,与k=8相比:k=16可以使得密文分桶更精细。
相应的,在阶段3中,云220确定出的目标分桶中包括的密文更少。仍然沿用图12的示例,并且手机210中的隐私信息x及其哈希值和密文如下表4所示:
表4
隐私信息x | 哈希值 | 密文 |
来电号码x1 | 0002936ED794…8921B4B | 密文x1a |
k=8,则上述表4中哈希值0002936ED794…8921B4B的哈希值前缀为00,那么,在阶段3中,云220可以确定目标分桶为分桶00,从而会将分桶00中的密文,如密文y1b、密文y2b、密文y3b以及密文y4b下发给手机210。k=16,则上表4中哈希值0002936ED794…8921B4B的哈希值前缀为0002,那么,在阶段3中,云220可以确定目标分桶为分桶0002,从而会将分桶002中的密文,密文y3b以及密文y4b下发给手机210。很显然,与k=8相比:k=16时,云220向手机210发送密文会更少,从而可以更大程度的减小通信开销。
因此,为了更大程度减小通信开销,可以设置k为更大的值。
然而,k的取值越大,则哈希值的更多比特位将用于标识分桶,即哈希值中更多的比特位将暴露。相应的,剩余未暴露的比特位的数量则更少,则隐私保护的程度越低。
以哈希值一共有128个比特位为例,如果k=16,那么隐私信息x的哈希值的前16位将作为关系字典1中的哈希值前缀发送给云220,即暴露给云220。剩余未暴露的哈希值位数则有128-16=112个比特位。如果k=64,那么隐私信息x的哈希值的前64位将作为关系字典1中的哈希值前缀发送给云220,即暴露给云220。剩余未暴露的哈希值位数则仅有128-64=64个比特位。很显然,与k=16相比:k=64时,未暴露的比特位更少,云220预测出隐私信息x的可能性更高,隐私保护的程度更低。
综上所述,在实际实施时,可以综合对通信开销的需求和对隐私保护程度的需求,来设置合适的k值。
由于,在阶段3中,云220下发的是目标分桶的密文,如数据集Hn0(x)b,那么,在阶段4中,手机210仅需要将数据集Hm(x)b和数据集Hn0(y)b比对。
参见图13,在阶段4中,手机210可以完成下述步骤:
S1301(即前文S601)、手机210使用密钥a对数据集Hm(x)ab中的密文一次解密,得到数据集Hm(x)b。
关于S1301的具体实现,可参见前文S601中的说明。
S1302、手机210将数据集Hm(x)b和数据集Hn0(y)b比对,得到比对结果。
示例性的,数据集Hm(x)b中包括来电号码x1的密文x1b,而目标分桶为分桶0002,分桶0002中包括密文y1b和密文ynb。因此,手机210可以比对密文x1b是否与密文y1b或者密文ynb相同,得到比对结果。其中,如果密文x1b与密文y1b或者密文ynb相同,则表明来电号码x1是风险号码;如果密文x1b与密文y1b和密文ynb都不相同,则表明来电号码x1不是风险号码。
本实施例中,云220仅下发目标分桶中的密文(即数据集Hn0(y)b)用于比对,因此,在S1302中,手机210比对的数据为数据集Hn0(y)b,而不是云220中所有隐私信息y的密文。即,前文S602更新为S1302。这样,可以减少手机210比对的数据量,提升比对效率。
S1303(即前文S508)、手机210提示比对结果中相同元素对应的隐私信息的查询结果为是。
关于S1303的具体实现,可参见前文S508中的说明。
前文关于阶段1-阶段4的说明中,更多的是以场景2(即反诈云查场景)为例在说明。在场景2中,手机210中的隐私信息x为当前接收到的来电号码x1,即隐私信息x仅有1条。那么,在阶段3中,云220确定的目标分桶也仅有1个。相应的,在阶段4中,手机210仅需将1个来电号码x1的密文与1个目标分桶中的密文比对即可。
然而,在其他场景(如场景1、场景3)中,手机210中的隐私信息x可能有多条,在阶段3中也可能确定出多个目标分桶,相应的,在阶段4中,手机210则需要将多条隐私信息x与多个目标分桶中的密文比对。示例性的,在场景1中,手机210中包括多个联系人号码,并且多个联系人号码的哈希值前缀涉及0002、0003和ffee,则目标分桶包括分桶0002、分桶0003和分桶ffee,那么,手机210需要将多个联系人号码的密文与分桶0002、分桶0003和分桶ffee中的密文比对。
针对这种情况,如果将每条隐私信息x(如联系人号码)都与分桶0002、分桶0003和分桶ffee中的密文比对,则比对的工作量会很大,影响查询效率。基于此,在一些实施例中,在阶段3中,手机210还可以建立数据集Hm(x)ab中的各个密文和目标分桶中的密文的关系字典2;然后,在阶段4中,针对数据集Hm(x)ab中的任一密文xiab解密得到密文xib,手机210仅需将密文xib与关系字典2中密文xiab对应的密文比对,从而减小比对的工作量,提高查询效率。
具体的,如图14所示,在阶段3中,云220可以完成下述步骤:
S1401、云220查询关系字典1中的哈希值前缀对应的目标分桶。具体可参见前文S1101的说明。
示例性的,关系字典1中包括的内容如下表5所示:
表5
那么,云220可以确定目标分桶包括分桶0002、分桶0003以及分桶ffee。
S1402、云220使用密钥b对关系字典1中的密文二次加密,得到数据集Hm(x)ab。具体可参见前文S1102的说明。
示例性的,云220对表5所示关系字典1中4个密文二次加密,依次得到密文x1ab、密文x2ab、密文x3ab和密文x4ab。即,数据集Hm(x)ab包括密文x1ab、密文x2ab、密文x3ab和密文x4ab。
S1403、云220建立数据集Hm(x)ab中各个密文和目标分桶中的密文的关系字典2。
针对数据集Hm(x)ab中的任一密文xi ab,可以建立密文xi ab与密文xi a目标分桶中第一分桶的密文的对应关系。其中,第一分桶为密文xi a的哈希值前缀对应的分桶。
示例性的,关系字典1如上表5所示,则云220可以建立数据集Hm(x)ab中密文x1ab和密文x3ab与分桶0002中的密文的对应关系,密文x4ab与分桶0003中的密文的对应关系,以及密文x2ab与分桶ffee中的密文的对应关系,从而得到关系字典2。例如,关系字典2中的数据结构如下表6所示:
表6
S1404、云220将关系字典2下发至手机210。
在关系字典2中,隐私信息y的密文即构成前文数据集Hn0(y)b,隐私信息x的密文即构成前文数据集Hm(x)ab。因此,将关系字典2下发至手机210,可以实现将目标分桶中的密文和数据集Hm(x)ab下发至手机210,即实现S1103。
本实施例中,如图15所示,在阶段4中,手机210可以完成下述步骤:
S1501、手机210使用密钥a对关系字典2中数据集Hm(x)ab中的密文一次解密,得到数据集Hm(x)b。可参见前文S601中的说明。
示例性的,手机210可以对上述表6中隐私信息x的密文解密。
S1502、手机210将数据集Hm(x)b中的密文xib和关系字典2中密文xiab对应的密文比对,得到比对结果。
示例性的,数据集Hm(x)b中包括密文x1b、密文x2b、密文x3b以及密文x4b,则手机210可以将密文x1b与关系字典2中密文x1ab对应的密文(如表6中分桶0002中的密文)比对,将密文x2b与关系字典2中密文x2ab对应的密文(如表6中分桶ffee中的密文)比对,将密文x3b与关系字典2中密文x3ab对应的密文(如表6中分桶0002中的密文)比对,以及将密文x4b与关系字典2中密文x4ab对应的密文(如表6中分桶0003中的密文)比对。
很显然,针对数据集Hm(x)b中的任一个密文xib,手机210无需将其与Hn0(y)b中的所有密文比对。从而减小比对的工作量,提高查询效率。
S1503、手机210提示比对结果中相同元素对应的隐私信息的查询结果为是。具体可参见前文S508中的说明。
在另一些实施例中,在阶段1中,云220还可以将数据集Hn(y)b中的每个密文进行压缩,得到压缩后的数据集Hn(y)b’。后续阶段3中,云220可以将压缩得到的数据集Hn(y)b’返回至手机210,以便手机210进行比对。应理解,与压缩前的数据集Hn(y)b相比:压缩后的数据集Hn(y)b’的数据量更小。即,可以减少云220向手机210传输的数据量,缩减通信开销。
参见图16,在阶段1中S501之后,还包括S1601:
S1601、云220对数据集Hn(y)b中的每个密文进行压缩,得到压缩后的数据集Hn(y)b’。
示例性的,云220对数据集Hn(y)b中的密文y1b、密文y2b、密文y3b……密文ynb分别压缩,依次得到压缩后的结果y1b’、压缩后的结果y2b’、压缩后的结果y3b’……压缩后的结果ynb’。
在一种具体的实现方式中,云220可以采用指纹压缩的方式实现对密文的压缩。其中,指纹压缩是指使用密文的“指纹”来表示密文,从而实现对密文的压缩。应理解,此处的“指纹”代表可以唯一表示密文的信息,而并不是常规意义上的指纹。
示例性的,指纹压缩的具体实现可以是:云220使用数据集Hn(y)b中各个密文的一部分比特位(第二比特位)作为密文压缩后的结果。参见图17所示的压缩方式一,数据集Hn(y)b中包括密文DC9CA4E4602…204B3、60E9A9315AB…E4F5E、294DE95CBCD…C1D91以及A61DF617262…79A1F,云220可以取这些密文的前32个比特位,依次得到压缩后的结果为DC9CA4E4、60E9A931、294DE95C以及A61DF617,则数据集Hn(y)b’中包括DC9CA4E4、60E9A931、294DE95C以及A61DF617。
又示例性的,指纹压缩的具体实现可以是:云220对数据集Hn(y)b中各个密文求哈希值,然后取哈希值的部分比特位(第二比特位)作为密文压缩后的结果。参见图17所示的压缩方式二,数据集Hn(y)b中包括密文DC9CA4E4602…204B3、60E9A9315AB…E4F5E、294DE95CBCD…C1D91以及A61DF617262…79A1F,云220可以对这些密文求哈希,依次得到哈希值51A15180…002E11A0C0E、C3000810…00341AA6176、4BB12980…00C497DE639和D6B71BD0…002DF235902。然后,云220取这些哈希值的前32个比特位,依次得到压缩后的结果51A15180、C3000810、4BB12980以及D6B71BD0,则数据集Hn(y)b’中包括51A15180、C3000810、4BB12980以及D6B71BD0。
以及,阶段3中的S505替换为S1602:
S1602、云220向手机210发送数据集Hm(x)ab和数据集Hn(y)b’。
本实施例中,由于云220下发的是对密文压缩后的结果,那么,在阶段4中,手机210在解密得到数据集Hm(x)b后,即S601之后,还包括S1603,以使数据具有可比性:
S1603、手机210对数据集Hm(x)b中的各个密文压缩,得到数据集Hm(x)b'。
示例性的,手机210对数据集Hm(x)b中的密文x1b压缩,得到压缩后的结果x1b’。
应理解,S1403中采用的压缩算法与S1401中采用的压缩算法相同。
以及,阶段4中的S602替换为S1604:
S1604、手机210将数据集Hm(x)b’和数据集Hn(y)b’比对,得到比对结果。
由于手机210仅将数据集Hm(x)b’和数据集Hn(y)b’比对,而并不需要还原出数据集Hm(x)b’和数据集Hn(y)b’中压缩后的结果对应的密文。因此,云220或者手机210在压缩时,可以采用不可逆的压缩算法,以更大的减小数据量。
至此,需要说明的是,上述对密文分桶的实施例和对密文压缩的实施例是可以结合的。示例性的,在阶段1中,云220可以将密文划分到各个分桶中;以及,云220将每个分桶中的密文进行压缩。在阶段3中,云220接收到查询请求后,可以将目标分桶中压缩后的结果发送至手机210。在阶段4中,手机210在解密得到数据集Hm(x)b后,可以将数据集Hm(x)b中的每个密文压缩后,再与目标分桶中压缩后的结果比对。这样,可以通过分桶和压缩更大程度的减少传输的数据量,缩减通信开销。
实际中,不同密文压缩后,得到的压缩结果可能相同,即出现碰撞。以图17所示的压缩方式一为例,取密文的前32个比特位作为压缩后的结果,虽然两个密文不同,但是两个密文的前32个比特位可能是相同的。并且,通常情况下,压缩率越低(即压缩程度越大),导致出现压缩碰撞的可能性就越大。以取密文的前32个比特位和前16个比特位为例,取前16个比特位,则需要保留密文的16个比特位,而取前32个比特位,则需要保留密文的32个比特位。很显然,取前16个比特位的压缩率更低。但是,16个比特位可能的取值包括0000-ffff,共有164种可能,32个比特位可能的取值包括00000000-ffffffff,共有168种可能。应理解,可能的取值越少,则发生碰撞的可能性越大。那么,取密文的前32个比特位,发生碰撞的可能性更大。
在出现碰撞后,则可能导致查询出错。示例性的,云220中的风险号码包括号码1、号码2、号码3、号码5、号码6和号码10,手机210中来电号码为号码4。也就是说,云220中的风险号码中不包括号码4,即号码4不是风险号码。然而,如果号码1、号码2、号码3、号码5、号码6和号码10中任一个的压缩结果,与号码4的压缩结果相同,手机210经过比对则可能将号码4确定风险号码。这显然与实际情况(即号码4不是风险号码)是不符的,查询出错了。
通常而言,只要出错的概率不高,影响不会很大。但是,有些场景是不允许出现这种查询错误的。例如,将未注册社交应用A的联系人识别为社交应用A的注册用户,这显然是不允许的。因此,在对密文压缩的实施例中,还需要进一步避免出现碰撞的问题。
在一些实施例中,参见图18,在云220执行前文阶段1之前,还包括阶段0,云220确定处理参数(第一处理参数)。其中,处理参数包括密钥b,用于指示是否压缩使用密钥b加密的密文的指示信息,以及在指示压缩使用密钥b加密的密文时所使用的压缩算法中的一项或多项。后续(如阶段1-阶段4中),云220和手机210可以基于这些处理参数处理,以避免出现碰撞,提高查询的准确率。例如,在阶段1中,云220可以基于这些处理参数来得到各个分桶中的密文,以使得各个分桶中都不存在碰撞。
下面以对密文分桶和对密文压缩结合的方式为例,并主要在场景1中,来示例性的说明阶段0的具体实现。参加图19A、图19B和图19C,在阶段0中,云220可以执行下述步骤:
S1901、云220获取所有可能的Q条隐私信息,得到隐私信息的全量数据集H(Q),1≤Q,Q为整数。
示例性的,全量数据集H(Q)中包括所有的手机号码(实验号码),如手机号码q1、手机号码q2……手机号码qQ,约为20亿左右。
S1902、云220采用哈希算法1对Q条隐私信息分别计算哈希值,得到Q个哈希值。
关于S1902的具体实现,可以参见前文S901的说明,此处不再赘述。
S1903、云220按照Q个哈希值的哈希值前缀(即前k0个比特位的值),划分分桶。
其中,一个哈希值前缀划分为一个分桶。以k=16为例,可以划分得到分桶0000、0001……ffff,共65536个分桶。
S1904、云220随机生成密钥b0,使用密钥b0对Q条隐私信息加密,得到Q条密文。
云220可以使用密钥b0对Q个哈希值加密,得到密文q1b0、密文q2 b0、……、密文qQb0,从而实现对Q条隐私信息加密(图19A、图19B和图19C示出的就是这种实现方式);或者,云220可以使用密钥b0对Q条隐私信息本身加密,从而实现对Q条隐私信息加密。
关于S1904的具体实现,可以参见前文S902的说明,此处不再赘述。
S1905、云220将Q条密文分桶。
针对任一密文qzb0(1≤z≤Q,z为整数),云220将其划分到隐私信息qz的哈希值前缀对应的分桶。
示例性的,手机号码q1的哈希值前缀为0001,则可以将手机号码q1的密文q1b0划分到分桶0001;手机号码q2的哈希值前缀为ffff,则可以将手机号码q2的密文q2b0划分到分桶ffff……手机号码qQ的哈希值前缀为0000,则可以将手机号码qQ的密文qQb0划分到分桶0000。
关于S1905的具体实现,可以参见前文S903的说明,此处不再赘述。
S1906、云220采用压缩算法1(第一压缩算法)对各个分桶中的密文进行压缩。
以分桶0000中的密文包括密文q5 b0、密文q80 b0、密文q900 b0以及密文qQ b0为例,可以对这些密文取一部分比特位,或者对这些密文求哈希后取一部分比特位,从而得到个个密文压缩后的结果,如依次得到压缩后的结果DC9CA4、60E9A9、294DE9和DC9CA4。其中,在阶段0中,经过使用随机密钥加密、压缩得到的每个分桶中的密文称为一个实验密文集。
经过S1906,在进行压缩之后,则可以得到各个密文压缩后的结果。后续,云220可以基于压缩结果完成碰撞检测与规避,使得各个分桶中都不存在碰撞的问题。下面以三种具体的实现方式来说明。
实现方式一,云220可以通过重新生成随机密钥的方式来避免碰撞,并将最终使得不存在碰撞的随机密钥确定为第二密钥。具体的,如图19A所示,在S1906之后,还包括:
S1907a、云220检测是否包括存在碰撞的至少一个分桶。若是,则重复执行S1904及其后续步骤;若否,则执行S1908a。
针对任一分桶,云220可以检测该分桶中是否包括相同的压缩后的结果,如果包括相同的压缩后的结果,则表明该分桶中存在碰撞。示例性的,分桶0000中包括两个DC9CA4,则表明分桶0000中存在碰撞。反之,如果不包括相同的压缩后的结果,则表明该分桶中不存在碰撞。
如果包括存在碰撞的至少一个分桶,则重复执行S1904及其后续步骤,以重新生成密钥来加密。经验表明,在存在碰撞的情况下,如果更换密钥加密而后压缩,则再次出现碰撞的可能性将极大降低。因此,通过重复执行S1904及其后续步骤,则可能降低存在碰撞的可能性。
如果不包括存在碰撞的至少一个分桶,即所有分桶中都不存在碰撞的问题,则执行下述S1908a,以保存处理参数。
S1908a、云220保存哈希算法1、k0、b0以及压缩算法1。
即,处理参数包括分桶、哈希算法1、k0、b0以及压缩算法1。云220保存处理参数,可用于后续阶段中的处理。
其中,哈希算法1用于阶段1和阶段2中求哈希。示例性的,在S901和S1001中求哈希。
k0用于阶段1和阶段2中取哈希值前缀。示例性的,k0可用作k,在S903和S1003中取哈希值前缀。
b0是指最后一轮执行S1904的过程中,随机生成的密钥。b0用于阶段1和阶段3中的加密处理。示例性的,b0可用作b,在S902和S1102中加密。
压缩算法1用于阶段1和阶段4中对密文压缩。示例性的,在S1601和S1603中对密文压缩。
也就是说,在实现方式一中,云220可以检测各个分桶中是否包括相同的压缩密文,若存在至少一个分桶中包括相同的压缩密文,云220则可以更新随机密钥,使用更新后的书记密钥和原来的压缩算法1来重新得到各个分桶中的压缩密文,直至所有分桶中都不存在相同的压缩密文,则得到最终的处理参数。例如,处理参数包括最终更新的随机密钥和压缩算法1。其中,最终更新的随机密钥作为前文中密钥b使用。
应理解,在阶段0中,是对全量数据集(如20亿手机号码)进行的碰撞检测,并且达到了每个分桶中都不存在碰撞的效果。那么,在阶段1-阶段4中采用这些处理参数,对上述全量数据集的子集(如前文Hm(x)和Hn(y))处理,也可以保证哈希值前缀相同的密文(即在阶段0中划分到一个分桶中的密文)压缩后的结果不会存在碰撞。那么,在阶段4中,手机210采用图15所示的方式比对,不会出现查询出错的可能。从而可以提高查询结果的准确性。下文中的实现方式二和实现方式三也同理。
实现方式二,云220可以标记存在碰撞的分桶,如记录存在碰撞的分桶的哈希前缀(第一哈希特征),后续在压缩处理时,如果隐私信息y的哈希特征与记录的哈希特征相同,则在该隐私信息y使用密钥b压缩后,不再进一步压缩,以避免发生碰撞。具体的,如图19B所示,在S1906之后,还包括:
S1907b、云220遍历分桶,检测当前分桶中压缩后的结果是否存在碰撞。若是,则执行S1908b;若否,则继续检测下一个分桶。
关于检测是否存在碰撞的具体实现,可以参加前文S1907a中的说明,此处不再赘述。
S1908b、云220标记当前分桶。
针对当前分桶,如果检测到存在碰撞,则对当前分桶标记。例如,记录该存在碰撞的分桶的哈希前缀。这样,后续在阶段1中对各个分桶中的密文压缩时,则不会对有标记的分桶中的密文压缩。
S1909b、云220保存哈希算法1、k0、b0以及压缩算法1。
关于哈希算法1、k0以及b0,可参见前文S1908a中的相关说明,此处不再赘述。
需要说明的是,在本实现方式中,压缩算法1用于阶段1中对没有标记的分桶中的密文压缩,而对于有标记的分桶,则无需使用压缩算法1来压缩。即,如果隐私信息y的哈希前缀与标记的分桶的哈希特征相同,则无需在对隐私信息y使用密钥b加密后,进一步压缩。反之,如果隐私信息y的哈希前缀与标记的分桶的哈希特征不相同,则在对隐私信息y使用密钥b加密后,需要进一步压缩。以及,在阶段4中,在使用密钥a解密得到密文xib后,可能需要对密文xib压缩,也可能不需要对密文xib压缩。具体地,手机210可以根据密文xib的待比对数据,如关系字典2中密文xiab对应的数据的长度确定是否需要对密文xib压缩。其中,如果待比对数据的长度小于或等于长度1(第一长度),则表明待比对数据是压缩后的结果,因此需要对密文xib压缩。如果待比对数据的长度大于长度1,则表明待比对数据不是压缩后的结果,因此不需要对密文xib压缩。这样,可以在避免碰撞的前提下,使得两个比对的数据之间具有可比性。
当然,在阶段1中,云220可以标识压缩后的结果或者未压缩的密文。这样,在阶段4中,如果查询到密文xib的待对比对数据具有压缩后的结果的标识(或者不具有未压缩的密文的标识),手机210可以将密文xib压缩后再与待比对数据比对;如果查询到密文xib的待对比对数据不具有压缩后的结果的标识(或者具有未压缩的密文的标识),手机210可以将密文xib不经压缩则与待比对数据比对。
实现方式三,云220可以针对存在碰撞的分桶,使用更长的压缩位数,以避免发生碰撞。具体的,如图19C所示,还包括:
S1907c、云220遍历分桶,检测各个分桶中压缩后的结果是否存在碰撞。若是,则执行S1908c;若否,则继续检测下一个分桶。
关于检测是否存在碰撞的具体实现,可以参加前文S1907a中的说明,此处不再赘述。
S1908c、云220采用压缩算法2(第二压缩算法)对当前分桶中的密文重新压缩,压缩算法2的压缩位数多于压缩算法1的压缩位数。
针对任一分桶,如果检测到当前分桶中存在碰撞,则牺牲压缩率,而使用压缩为数更长的压缩算法2来对当前分桶中密文的压缩,以避免出现碰撞。
示例性的,分桶0000中的密文包括密文q5 b0、密文q80 b0、密文q900 b0以及密文qQb0,如果取24个比特位,可以依次得到压缩后的结果DC9CA4、60E9A9、294DE9和DC9CA4,其中,DC9CA4有重复,存在碰撞。那么,可以取28个比特位。例如,取28个比特位,可以依次得到压缩后的结果DC9CA41、60E9A92、294DE93和DC9CA44。
S1909c、云220检测当前分桶中压缩后的结果是否存在碰撞。若是,则重复执行S1908c及S1909c。若否,则执行S1910c。
如果采用更长的压缩位数压缩后,依然存在碰撞,则针对当前分桶,重复执行S1908c及其后续步骤,再次增加压缩位数来压缩。
如果采用更长的压缩位数压缩后,不存在碰撞了,则可以执行下述S1910c,以便后续针对该当前分桶采用更长的压缩位数,从而避免碰撞。
S1910c、云220将压缩算法2与当前分桶关联保存。
这样,后续在阶段1中对各个分桶中的密文压缩时,则会对该当前分桶中的密文使用压缩算法2来压缩。
S1911c、云220保存哈希算法1、k0、b0以及压缩算法1。
关于哈希算法1、k0以及b0,可参见前文S1908a中的相关说明,此处不再赘述。
需要说明的是,在本实现方式中,压缩算法1用于阶段1中对没有关联压缩算法2的分桶中的密文压缩,而对于关联有压缩算法2的分桶,则使用压缩算法2来压缩。以及,在阶段4中,在使用密钥a解密得到密文xib后,可能需要使用压缩算法1来压缩,也可能需要使用压缩算法2来压缩。具体地,手机210可以根据密文xib的待比对数据,如关系字典2中密文xiab对应的数据的位数(也可以理解为长度),选择压缩算法1或者压缩算法2对密文xib压缩。其中,如果待比对数据的位数是位数1(等于压缩算法1的位数,如记为第二长度),因此对密文xib采用压缩算法1来压缩。如果待比对数据的位数是位数2(等于压缩算法2的位数,如记为第三长度),因此对密文xib采用压缩算法2来压缩。这样,可以在避免碰撞的前提下,使得两个比对的数据之间具有可比性。
当然,在阶段1中,云220对各个密文压缩后,可以标识压缩后的结果采用的压缩算法。这样,在阶段4中,如果查询到密文xib的待对比对数据具有压缩算法1的标识,手机210可以采用压缩算法1对密文xib压缩;如果查询到密文xib的待对比对数据具有压缩算法2的标识,手机210可以采用压缩算法2对密文xib压缩。
在前文三种实现方式中,有变化的处理参数仅有b0和压缩算法。例如,在实现方式一中,可能会重新生成b0;在实现方式三中,有些分桶采用的压缩算法是压缩算法2。除此之外,哈希算法1和k0都未发生变化。因此,手机210和云220也可以预设哈希算法为哈希算法1以及预设哈希值前缀的位数为k0,然后在阶段0-阶段4中都使用哈希算法1和k0。从而无需在阶段0中保存哈希算法1和k0。即,S1908a、S1909b和S1911c中都无需保存哈希算法1和k0。
上述关于避免碰撞的实施例中,以对密文分桶和对密文压缩结合的方式为例在说明。而实际实时时,可能仅采用对密文压缩的方式来节省通信开销,而不使用密文分桶的方式来节省通信开销。这种情况下,则可以省略上述S1901和S1902,并且也无需保存分桶相关的参数,如哈希算法1和k0。这样,也可以避免碰撞。
本申请实施例还提供了一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种芯片系统,如图20所示,该芯片系统2000包括至少一个处理器2001和至少一个接口电路2002。处理器2001和接口电路2002可通过线路互联。例如,接口电路2002可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路2002可用于向其它装置(例如处理器2001)发送信号。示例性的,接口电路2002可读取存储器中存储的指令,并将该指令发送给处理器2001。当所述指令被处理器2001执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中手机执行的各个功能或者步骤。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述方法实施例中手机执行的各个功能或者步骤。
其中,本实施例提供的电子设备、通信系统、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (24)
1.一种查询方法,其特征在于,所述方法包括:
响应于接收到来电,第一设备向第二设备发送查询请求,所述查询请求中包括使用第一密钥加密所述来电的来电号码得到的第一密文;
所述第一设备接收来自所述第二设备的查询响应,所述查询响应中包括第二密文以及第一密文集,所述第二密文为使用第二密钥加密所述第一密文得到的密文,所述第一密文集包括使用所述第二密钥加密第一号码集中的第一号码后得到的第三密文,所述第一号码是存在安全风险的号码;
所述第一设备使用所述第一密钥解密所述第二密文后得到第四密文,匹配所述第四密文以及所述第一密文集,得到所述来电号码是否存在安全风险的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述第一密文集为多个密文集中,哈希特征与所述来电号码的哈希特征相同的密文集;
其中,一个密文集对应一个号码集,一个号码集包括存在安全风险且哈希特征相同的号码,所述第一号码集为所述第一密文集对应的号码集,所述第一密文集的哈希特征为所述第一号码的哈希特征。
3.根据权利要求2所述的方法,其特征在于,所述来电号码的哈希特征包括所述来电号码的哈希值中第一比特位的信息,第一号码的哈希特征包括所述第一号码的哈希值中所述第一比特位的信息,其中,所述来电号码的哈希值和所述第一号码的哈希值都包括多个比特位。
4.根据权利要求2或3所述的方法,其特征在于,所述查询请求中还包括所述来电号码的哈希特征。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一密文集中的第三密文为使用第一压缩算法压缩得到的压缩密文;
所述第一设备使用所述第一密钥解密所述第二密文后得到第四密文,包括:
所述第一设备使用所述第一密钥解密所述第二密文,再使用所述第一压缩算法压缩,得到所述第四密文。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一密文集中的第三密文为使用第一压缩算法压缩得到的压缩密文,或者,所述第一密文集中的第三密文不是压缩密文;
所述第一设备使用所述第一密钥解密所述第二密文后得到第四密文,包括:
如果所述第三密文的长度大于第一长度,所述第一设备使用所述第一密钥解密所述第二密文,得到所述第四密文;
如果所述第三密文的长度小于或等于所述第一长度,所述第一设备使用所述第一密钥解密所述第二密文,再使用第一压缩算法压缩,得到所述第四密文。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一密文集中的第三密文为使用第一压缩算法压缩得到的压缩密文,或者,所述第一密文集中的第三密文为使用第二压缩算法压缩得到的压缩密文;
所述第一设备使用所述第一密钥解密所述第二密文后得到第四密文,包括:
所述第一设备使用所述第一密钥解密所述第二密文,再使用与所述第三密文的长度相匹配的目标压缩算法压缩,得到所述第四密文;
其中,所述第三密文的长度为第二长度,则目标压缩算法为第一压缩算法,所述第三密文的长度为第三长度,则目标压缩算法为第二压缩算法。
8.根据权利要求5-7中任一项所述的方法,其特征在于,压缩后的密文包括压缩前的密文中第二比特位的信息,其中,压缩前的密文包括多个比特位;或者,
压缩后的密文中包括压缩前的密文的哈希值中第二比特位的信息,其中,压缩前的密文的哈希值包括多个比特位。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述匹配所述第四密文以及所述第一密文集,得到所述来电号码是否存在安全风险的查询结果,包括:
如果所述第一密文集中包括所述第四密文,则得到所述来电号码存在安全风险的查询结果;
如果所述第一密文集中不包括所述第四密文,则得到所述来电号码不存在安全风险的查询结果。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述来电号码为所述第一设备的通讯录中不包括的陌生号码。
11.根据权利要求1-10中任一项所述的方法,其特征在于,使用所述第一密钥加解密和使用所述第二密钥加密的算法包括迪菲-赫尔曼DH算法;或者,
使用所述第一密钥加解密和使用所述第二密钥加密的算法包括椭圆曲线迪菲-赫尔曼ECDH算法。
12.一种查询方法,其特征在于,所述方法包括:
响应于接收到来电,第一设备向第二设备发送查询请求,所述查询请求中包括使用第一密钥加密所述来电的来电号码得到的第一密文;
响应于所述查询请求,所述第二设备向所述第一设备发送查询响应,所述查询响应包括第二密文以及第一密文集,所述第二密文为使用第二密钥加密所述第一密文得到的密文,所述第一密文集包括使用所述第二密钥加密第一号码集中的第一号码后得到的第三密文,所述第一号码是存在安全风险的号码;
响应于所述查询响应,所述第一设备使用所述第一密钥解密所述第二密文后得到第四密文,匹配所述第四密文以及所述第一密文集,得到所述来电号码是否存在安全风险的查询结果。
13.根据权利要求12所述的方法,其特征在于,所述查询请求中还包括所述来电号码的哈希特征,所述第二设备中包括多个密文集及其哈希特征之间的对应关系;
在所述第二设备向所述第一设备发送查询响应之前,所述方法还包括:
所述第二设备从所述多个密文集中查询哈希特征与所述来电号码的哈希特征相同的所述第一密文集;
其中,一个密文集对应一个号码集,一个号码集包括存在安全风险且哈希特征相同的号码,所述第一号码集为所述第一密文集对应的号码集,所述第一密文集的哈希特征为所述第一号码的哈希特征。
14.根据权利要求12或13所述的方法,其特征在于,所述方法包括:
所述第二设备获取所述第一号码集对应的目标处理参数;所述目标处理参数包括所述第二密钥、压缩信息;所述压缩信息包括:用于指示是否压缩使用所述第二密钥加密的密文的指示信息、以及在指示压缩使用所述第二密钥加密的密文时所使用的压缩算法;
所述第二设备基于所述目标处理参数,处理所述第一号码集中的第一号码后得到所述第一密文集;其中,基于所述目标处理参数得到的所述第一密文集中不包括相同的压缩密文。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
所述第二设备基于多个试验号码的哈希特征对所述多个试验号码分组,得到多个实验号码集;
所述第二设备基于初始处理参数计算各个实验号码集对应的实验密文集,所述实验密文集包括:使用随机密钥加密所述实验号码集中的试验号码、再使用第一压缩算法压缩后得到的压缩密文;所述初始处理参数包括随机密钥以及所述第一压缩算法;
所述第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数;
所述第二设备获取所述第一号码集对应的目标处理参数,包括:
所述第二设备从检测得到的所述第一处理参数中,获取所述第一号码集对应的目标处理参数。
16.根据权利要求15所述的方法,其特征在于,所述第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数,包括:
重复执行下述过程,直至各个实验密文集中都不包括相同的压缩密文则得到所述第一处理参数:检测各个实验密文集中是否包括相同的压缩密文,若存在至少一个实验密文集中包括相同的压缩密文,所述第二设备更新所述初始处理参数中的随机密钥,使用更新后的所述初始处理参数再次计算各个实验号码集对应的实验密文集。
17.根据权利要求16所述的方法,其特征在于,检测得到的所述第一处理参数应用到所有号码的处理;
所述第二设备从检测得到的所述第一处理参数中,获取所述第一号码集对应的目标处理参数,包括:
所述第二设备将检测得到的所述第一处理参数,确定为所述第一号码集对应的目标处理参数。
18.根据权利要求15所述的方法,其特征在于,所述第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数,包括:
所述多个实验密文集中第一实验密文集中包括相同的压缩密文,则所述第二设备更新所述初始处理参数中的压缩信息,得到第一哈希特征对应的第一处理参数,所述第一哈希特征是所述第一实验密文集对应的实验号码集的哈希特征,更新后的压缩信息中的指示信息指示不压缩使用所述第二密钥加密的密文;
所述多个实验密文集中第二实验密文集中不包括相同的压缩密文,所述第二设备将所述初始处理参数作为第二哈希特征对应的第一处理参数,所述第二哈希特征是所述第二实验密文集对应的实验号码集的哈希特征。
19.根据权利要求15所述的方法,其特征在于,所述第二设备检测各个实验密文集中是否包括相同的压缩密文,基于检测结果得到第一处理参数,包括:
所述多个实验密文集中第一实验密文集中包括相同的压缩密文,所述第二设备更新所述初始处理参数中的压缩算法,得到第一哈希特征对应的第一处理参数,所述第一哈希特征是所述第一实验密文集对应的实验号码集的哈希特征,更新后的压缩算法压缩得到的密文的长度大于更新前的压缩算法压缩得到的密文的长度;
所述多个实验密文集中第二实验密文集中不包括相同的压缩密文,所述第二设备将所述初始处理参数作为第二哈希特征对应的第一处理参数,所述第二哈希特征是所述第二实验密文集对应的实验号码集的哈希特征。
20.根据权利要求18或19所述的方法,其特征在于,所述第二设备从检测得到的所述第一处理参数中,获取所述第一号码集对应的目标处理参数,包括:
所述第二设备从检测得到的所述第一处理参数中,获取与所述第一号码集的哈希特征相同的哈希特征对应的第一处理参数作为所述第一号码集对应的目标处理参数。
21.一种电子设备,其特征在于,所述设备包括存储器和处理器,所述存储器和处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令;
其中,所述电子设备为第一设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-20中任一项所述的方法中,所述第一设备执行的步骤;
或者,所述电子设备为第二设备,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-20中任一项所述的方法中,所述第二设备执行的步骤。
22.一种通信系统,其特征在于,所述通信系统包括权利要求1-20中任一项所述的第一设备和第二设备。
23.一种计算机可读存储介质,其特征在于,包括计算机指令;
其中,当所述计算机指令在第一设备上运行时,使得所述第一设备执行如权利要求1-20中任一项所述的方法中,所述第一设备执行的步骤;
或者,当所述计算机指令在第二设备上运行时,使得所述第二设备执行如权利要求1-20中任一项所述的方法中,所述第二设备执行的步骤。
24.一种芯片系统,其特征在于,所述芯片系统应用于包括处理器和存储器的电子设备,所述芯片系统包括一个或多个接口电路和一个或多个处理器,所述接口电路和所述处理器通过线路互联,所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;
其中,所述电子设备为第一设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-20中任一项所述的方法中,所述第一设备执行的步骤;
或者,所述电子设备为第二设备,当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-20中任一项所述的方法中,所述第二设备执行的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559410.9A CN117729533B (zh) | 2023-05-17 | 2023-05-17 | 一种查询方法、电子设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310559410.9A CN117729533B (zh) | 2023-05-17 | 2023-05-17 | 一种查询方法、电子设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117729533A true CN117729533A (zh) | 2024-03-19 |
CN117729533B CN117729533B (zh) | 2024-08-06 |
Family
ID=90203998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310559410.9A Active CN117729533B (zh) | 2023-05-17 | 2023-05-17 | 一种查询方法、电子设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117729533B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491250A (zh) * | 2015-12-10 | 2016-04-13 | 小米科技有限责任公司 | 来电号码真伪的识别方法、装置及设备 |
CN106603504A (zh) * | 2016-11-23 | 2017-04-26 | 深圳市金立通信设备有限公司 | 一种加密、监控网络电话的方法及装置 |
WO2021104448A1 (zh) * | 2019-11-30 | 2021-06-03 | 华为技术有限公司 | 一种密钥信息的同步方法、系统及设备 |
CN114338915A (zh) * | 2021-12-24 | 2022-04-12 | 中国联合网络通信集团有限公司 | 来电号码风险识别方法、装置、设备及存储介质 |
CN115048406A (zh) * | 2022-08-16 | 2022-09-13 | 北京虹鳟在线科技有限公司 | 一种基于多方可信图计算技术的关联人数据信息查询方法 |
WO2023077596A1 (zh) * | 2021-11-03 | 2023-05-11 | 深圳前海微众银行股份有限公司 | 一种双向隐匿数据查询方法及装置 |
-
2023
- 2023-05-17 CN CN202310559410.9A patent/CN117729533B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491250A (zh) * | 2015-12-10 | 2016-04-13 | 小米科技有限责任公司 | 来电号码真伪的识别方法、装置及设备 |
CN106603504A (zh) * | 2016-11-23 | 2017-04-26 | 深圳市金立通信设备有限公司 | 一种加密、监控网络电话的方法及装置 |
WO2021104448A1 (zh) * | 2019-11-30 | 2021-06-03 | 华为技术有限公司 | 一种密钥信息的同步方法、系统及设备 |
WO2023077596A1 (zh) * | 2021-11-03 | 2023-05-11 | 深圳前海微众银行股份有限公司 | 一种双向隐匿数据查询方法及装置 |
CN114338915A (zh) * | 2021-12-24 | 2022-04-12 | 中国联合网络通信集团有限公司 | 来电号码风险识别方法、装置、设备及存储介质 |
CN115048406A (zh) * | 2022-08-16 | 2022-09-13 | 北京虹鳟在线科技有限公司 | 一种基于多方可信图计算技术的关联人数据信息查询方法 |
Non-Patent Citations (1)
Title |
---|
郭燕飞;冯运波;刘利军;李祥军;: "一种基于区块链技术实现电信诈骗号码标记库共享的方法", 电信网技术, no. 06, 15 June 2017 (2017-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117729533B (zh) | 2024-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200382274A1 (en) | Secure Analytics Using an Encrypted Analytics Matrix | |
CN106686008B (zh) | 信息存储方法及装置 | |
CN110545190B (zh) | 一种签名处理的方法、相关装置以及设备 | |
CN109040076B (zh) | 一种数据处理方法、系统、装置、设备及介质 | |
CN106664308B (zh) | 注册之前的设备验证 | |
US10791124B2 (en) | Method and terminal device for encrypting message | |
CN114840867B (zh) | 基于可交换加密数据混淆的数据查询方法、装置和系统 | |
CN115146285A (zh) | 一种文件加密、解密方法及装置 | |
CN113836559A (zh) | 一种联邦学习中的样本对齐方法、装置、设备及存储介质 | |
WO2023051337A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114840866B (zh) | 基于盲签名数据混淆的数据查询方法、装置和系统 | |
CN117729535A (zh) | 一种查询方法、电子设备及系统 | |
CN111414628A (zh) | 一种数据存储方法、装置和计算设备 | |
CN112464257B (zh) | 一种数据检测方法、装置和用于数据检测的装置 | |
CN117729533B (zh) | 一种查询方法、电子设备及系统 | |
CN104967992A (zh) | 一种加密解密方法及装置 | |
CN115589281A (zh) | 解密方法、相关装置及存储介质 | |
CN117729534A (zh) | 一种查询方法、电子设备及系统 | |
CN112836239A (zh) | 保护隐私的双方协同确定目标对象数据的方法及装置 | |
CN117728965A (zh) | 一种获取信息安全程度的方法及服务器 | |
Al-juaifari | Secure SMS Mobile Transaction with Peer to Peer Authentication Design for Mobile Government | |
CN113452654B (zh) | 一种数据解密的方法 | |
CN116595562B (zh) | 数据处理方法和电子设备 | |
CN114978658B (zh) | 数据处理方法及装置 | |
WO2014117355A1 (en) | Delivery of a media item |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |