CN116108496B - 匿踪查询方法、装置、设备及存储介质 - Google Patents

匿踪查询方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116108496B
CN116108496B CN202310396704.4A CN202310396704A CN116108496B CN 116108496 B CN116108496 B CN 116108496B CN 202310396704 A CN202310396704 A CN 202310396704A CN 116108496 B CN116108496 B CN 116108496B
Authority
CN
China
Prior art keywords
data
key
holder
queriable
public key
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.)
Active
Application number
CN202310396704.4A
Other languages
English (en)
Other versions
CN116108496A (zh
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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202310396704.4A priority Critical patent/CN116108496B/zh
Publication of CN116108496A publication Critical patent/CN116108496A/zh
Application granted granted Critical
Publication of CN116108496B publication Critical patent/CN116108496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种匿踪查询方法、装置、设备及存储介质,涉及数据查询技术领域,尤其涉及智能搜索和区块链技术,可用于云存储和云服务。具体实现方案为:数据查询方基于预设衍生算法,根据持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥;向数据持有方发送基础密钥,以使数据持有方基于预设衍生算法的逆运算,确定不同可查询数据的数据序号的还原密钥,进而确定不同可查询数据的数据加密密钥,并采用各数据加密密钥分别对相应可查询数据加密,得到各可查询数据密文;获取数据持有方反馈的各可查询数据密文;根据持有方公钥和查询方私钥,确定数据解密密钥;根据数据解密密钥对各可查询数据密文进行解密,得到待查询数据明文。

Description

匿踪查询方法、装置、设备及存储介质
技术领域
本公开涉及数据查询技术领域,尤其涉及智能搜索和区块链技术,可用于云存储和云服务。
背景技术
随着信息技术的高速发展,数据的云端化存储成为了必然趋势。然而,数据云端化存储给人们带来便利的同时,在数据检索的过程中,同样带来一系列安全问题。
发明内容
本公开提供了一种匿踪查询方法、装置、设备及存储介质。
根据本公开的一方面,提供了一种匿踪查询方法,应用于数据查询方,包括:
基于预设衍生算法,根据数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥;
向数据持有方发送基础密钥,以使数据持有方根据持有方私钥,以及基于预设衍生算法的逆运算、基础密钥、持有方公钥和不同可查询数据的数据序号所确定的各还原密钥,确定出不同可查询数据的数据加密密钥,并采用各数据加密密钥分别对相应可查询数据加密,得到各可查询数据密文;其中,可查询数据包括待查询数据;
获取数据持有方反馈的各可查询数据密文;
根据持有方公钥和查询方私钥,确定待查询数据的数据解密密钥;
根据数据解密密钥对各可查询数据密文进行解密,得到待查询数据明文。
根据本公开的另一方面,还提供了一种匿踪查询方法,应用于数据持有方,包括:
获取数据查询方基于预设衍生算法、数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号所生成的基础密钥;
基于预设衍生算法的逆运算,根据基础密钥、持有方公钥和不同可查询数据的数据序号,确定相应可查询数据的还原密钥;
根据持有方私钥,以及各可查询数据的还原密钥,确定相应可查询数据的数据加密密钥;其中,可查询数据包括待查询数据;
根据不同数据加密密钥,分别对相应可查询数据进行加密,得到各可查询数据密文;
向数据查询方发送各可查询数据密文,以使数据查询方根据持有方公钥和查询方私钥所确定的数据解密密钥,对各可查询数据密文进行解密,得到待查询数据明文。
根据本公开的另一方面,还提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所提供的任意一种匿踪查询方法。
根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所提供的任意一种匿踪查询方法。
根据本公开的技术,提高了数据查询的隐匿性和所查询数据的安全性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种匿踪查询方法的流程图;
图2是本公开实施例提供的另一种匿踪查询方法的流程图;
图3是本公开实施例提供的另一种匿踪查询方法的流程图;
图4是本公开实施例提供的一种匿踪查询装置的结构图;
图5是本公开实施例提供的另一种匿踪查询装置的结构图;
图6是用来实现本公开实施例的匿踪查询方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开实施例提供的匿踪查询方法和匿踪查询装置,适用于在数据查询方从数据持有方中进行数据查询的应用场景中。本公开实施例所提供的各匿踪查询方法,可以由匿踪查询装置执行,该装置可以采用软件和/或硬件实现,并具体配置于电子设备中。
为了便于理解,首先对匿踪查询方法进行详细说明。
参见图1所示的匿踪查询方法,应用于数据查询方,包括:
S101、基于预设衍生算法,根据数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥。
其中,数据持有方中存储有数据查询方的至少一条可查询数据,供数据查询方查询使用。为了避免在单次数据查询过程中,数据持有方获知本次查询的具体可查询数据,可以基于本公开所提供的匿踪查询方法,采用加密传输以及数据隐藏的方式,隐藏数据查询方的真实查询意图,保证了数据查询方本次查询的待查询数据的隐私性,从而提高了待查询数据的安全性。
需要说明的是,数据持有方对应的持有方公钥和持有方私钥,以及数据查询方对应的查询方公钥和查询方私钥,基于相同的椭圆曲线生成。也即,数据持有方的持有方公钥和持有方私钥所形成的持有方点,以及数据查询方的查询方公钥和查询方私钥所形成的查询方点,位于相同的椭圆曲线上。
其中,预设衍生算法专用于进行基础密钥生成。其中,预设衍生算法可以由技术人员根据实际需要或经验值进行设置,或通过大量试验调整确定,本公开对预设衍生算法的具体算法内容不作任何限定,仅需保证预设衍生算法可逆即可。
其中,基础密钥用于作为对可查询数据明文进行加密所使用的数据加密密钥的生成基础,为不同可查询数据的加密传输提供了数据支撑。
其中,持有方公钥可以预先存储在数据查询方,或者在进行匿踪查询之前,数据查询方从数据持有方中获取数据持有方的持有方公钥。
可选的,数据持有方的持有方公钥可以按照预设周期进行更新,并向数据查询方发送更新后的持有方公钥,以供数据查询方使用,提高了密钥使用过程的安全性和随机性。
或者可选的,数据持有方中设置有至少一个公私钥对,任一公私钥对包括持有方公钥和持有方私钥。数据查询方在进行匿踪查询之前,可以从数据持有方中,获取本次匿踪查询所采用的公私钥对中的持有方公钥,保证了密钥使用过程的随机性,同时避免了单一公私钥对泄露带来的安全隐患。
其中,待查询数据的数据序号,用于作为待查询数据在可查询数据中的数据标识。数据序号可以采用数字顺序编号的形式加以呈现,便于进行基础密钥生成时的运算。
值得注意的是,这里的可查询数据可以是数据持有方中存储的,可供数据持有方查询的全量可查询数据;或者还可以是本次数据查询预先指定的全量可查询数据中的至少部分。
在一个可选实施例中,可以向数据持有方发送不同可查询数据的数据区间。这样做的好处在于,可以通过数据区间,约束本次查询的待查询数据对应可查询数据的数据范围,减少了本次数据查询所处理的可查询数据的数量,从而减少了后续所生成以及传输的可查询数据密文的数据量,进而减小了数据传输带宽。
S102、向数据持有方发送基础密钥,以使数据持有方根据持有方私钥,以及基于预设衍生算法的逆运算、基础密钥、持有方公钥和不同可查询数据的数据序号所确定的各还原密钥,确定出不同可查询数据的数据加密密钥,并采用各数据加密密钥分别对相应可查询数据加密,得到各可查询数据密文;其中,可查询数据包括待查询数据。
S103、获取数据持有方反馈的各可查询数据密文。
数据查询方向数据持有方发送基础密钥;数据持有方基于预设衍生算法的逆运算、基础密钥、持有方公钥和不同可查询数据的数据序号,尝试还原出不同可查询数据对应的查询方公钥,并将还原结果作为还原密钥。由于基础密钥生成过程中采用的是待查询数据的数据序号,因此,仅待查询数据的数据序号,能够还原出真实的查询方公钥,也即待查询数据对应的还原密钥实质为真实的查询方公钥。
相应的,数据持有方根据不同可查询数据对应的还原密钥,以及持有方私钥,确定各可查询数据的数据加密密钥;根据不同数据加密密钥,对相应可查询数据加密,得到可查询数据密文;将各可查询数据密文反馈至数据查询方。数据查询方接收数据持有方反馈的各可查询数据密文,进行后续解密。
S104、根据持有方公钥和查询方私钥,确定待查询数据的数据解密密钥。
S105、根据数据解密密钥对各可查询数据密文进行解密,得到待查询数据明文。
由于仅待查询数据的还原密钥与真实的查询方公钥相同,因此,基于待查询数据对应的还原密钥和持有方私钥所生成的数据加密密钥,与基于持有方公钥和查询方私钥所生成的数据解密密钥,分别属于同一公私钥对的公钥和私钥。因此,基于数据解密密钥,能够解密出且仅能够解密出可查询数据密文中待查询数据密文对应的待查询数据明文。
本公开实施例通过引入预设衍生算法以及预设衍生算法的逆运算,配合进行不同可查询数据的数据加密密钥的生成,使得所生成的数据加密密钥中,仅待查询数据对应的数据加密密钥,是经持有方私钥和查询方公钥生成的;相应的,基于持有方公钥和查询方私钥所生成数据解密密钥,能够对应解密出待查询数据密文对应的待查询数据明文。由于整个数据查询过程中,数据持有方并不知晓数据查询方的真实查询意图,因此提高了待查询数据自身的安全性和隐私性。
在一个可选实施例中,其中,可查询数据的数据加密密钥是由数据持有方根据预设散列函数,对基于预设衍生算法的逆运算、基础密钥和相应可查询数据的数据序号所得的还原密钥,结合持有方私钥确定出的中间数据进行编码,并采用编码结果点乘椭圆曲线的基点得到的。
相应的,根据持有方公钥和查询方私钥,确定待查询数据的数据解密密钥,可以包括:将持有方公钥和查询方私钥的点乘结果作为密钥点乘结果,并基于预设散列函数,对密钥点乘结果进行编码,得到待查询数据的数据解密密钥。
示例性的,针对任一可查询数据,数据持有方基于预设衍生算法的逆运算、基础密钥和该可查询数据的数据序号,确定该可查询数据的还原密钥;根据还原密钥和持有方私钥,确定该可查询数据的中间数据;根据预设散列函数对中间数据进行编码,并采用编码结果点乘椭圆曲线的基点,得到该可查询数据的数据加密密钥。
在一个具体实现方式中,数据持有方可以采用以下公式,确定可查询数据的数据加密密钥:
Figure SMS_1
其中,
Figure SMS_3
为第/>
Figure SMS_6
个可查询数据的数据加密密钥;/>
Figure SMS_9
为预设散列函数;/>
Figure SMS_4
为预设衍生算法的逆运算;/>
Figure SMS_7
为基础密钥;/>
Figure SMS_11
为持有方公钥;/>
Figure SMS_12
为持有方私钥;/>
Figure SMS_2
为椭圆曲线的基点;/>
Figure SMS_5
为点乘运算符;其中,/>
Figure SMS_8
;/>
Figure SMS_10
为可查询数据的最大数据序号。
相应的,数据查询方可以采用以下公式,确定待查询数据的数据解密密钥:
Figure SMS_13
其中,
Figure SMS_14
为第/>
Figure SMS_15
个待查询数据的数据解密密钥;/>
Figure SMS_16
为预设散列函数;/>
Figure SMS_17
为持有方公钥;/>
Figure SMS_18
为查询方私钥;/>
Figure SMS_19
为点乘运算符。
可以理解的是,基于预设衍生算法的逆运算,能够确定出不同可查询数据对应的还原密钥。当可查询数据的数据序号与待查询数据的数据序号相同时,还原密钥与查询方公钥相同。
由于通过预设散列函数的散列值点乘椭圆曲线基点的方式,能够将原来位于椭圆曲线上的点,散列到椭圆曲线上的另一个点,因此,数据加密密钥
Figure SMS_20
与相应的数据解密密钥/>
Figure SMS_21
构成的点/>
Figure SMS_22
,同样位于椭圆曲线上。由于数据查询方仅能构造出待查询数据的数据解密密钥/>
Figure SMS_23
,因此,数据查询方可以通过数据解密密钥/>
Figure SMS_24
,还原经数据加密密钥/>
Figure SMS_25
加密的待查询数据密文,得到待查询数据明文。
上述可选实施例通过将数据加密密钥和数据解密密钥的生成过程进行细化,保证了相同数据序号对应可查询数据的数据加密密钥和数据解密密钥对应的数据点,能够位于椭圆曲线上,保证了可查询数据的安全传输,同时,为待查询数据的有效还原提供了保障。
在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该可选实施例中,对基础密钥的生成过程进行了细化。
示例性的,可以将持有方公钥与待查询数据的数据序号的点乘结果作为第一点乘结果;根据第一点乘结果与查询方公钥的和值,确定基础密钥。相应的,可查询数据的还原密钥可以是由数据持有方根据基础密钥,与持有方公钥和相应可查询数据的数据序号的点乘结果之间的差值生成的。
具体的,数据查询方可以采用以下公式,确定基础密钥:
Figure SMS_26
其中,
Figure SMS_27
为基础密钥;/>
Figure SMS_28
为持有方公钥;/>
Figure SMS_29
为查询方公钥;/>
Figure SMS_30
为任一可查询数据的数据序号;/>
Figure SMS_31
为待查询数据的数据序号;/>
Figure SMS_32
为预设衍生算法;/>
Figure SMS_33
为点乘运算符。
相应的,数据持有方可以采用以下公式,确定还原密钥:
Figure SMS_34
其中,
Figure SMS_35
为第/>
Figure SMS_38
个可查询数据的还原密钥;/>
Figure SMS_40
为持有方公钥;/>
Figure SMS_37
为查询方公钥;/>
Figure SMS_39
为任一可查询数据的数据序号;/>
Figure SMS_41
为基础密钥;/>
Figure SMS_42
为预设衍生算法的逆运算;/>
Figure SMS_36
为点乘运算符。
可以理解的是,上述方案对预设衍生算法进行了细化:通过点乘的方式,按照不同的数据序号进行持有方公钥和查询方公钥的组合,生成不同数据序号对应的基础密钥,提高了基础密钥生成过程的便捷性,数据运算量小,有助于提高匿踪查询效率。同时,对预设衍生算法的逆运算进行了细化:通过点乘的方式,按照不同的数据序号,基于持有方公钥对基础密钥进行不同程度的拆分,从而得到不同数据序号对应的还原密钥,保证了仅待查询数据的数据序号能够还原出真实的查询方公钥,为后续数据解密密钥的生成提供了保障。同时,预设衍生算法的逆运算过程,数据运算量小、操作便捷性好,有助于提高匿踪查询效率。
以上,以数据查询方为执行主体,对匿踪查询方法进行了详细说明,以下,将以数据持有方为执行主体,对匿踪查询过程进行详述。
参见图2所示的匿踪查询方法,应用于数据持有方,包括:
S201、获取数据查询方基于预设衍生算法、数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号所生成的基础密钥。
其中,数据持有方中存储有数据查询方的至少一条可查询数据,供数据查询方查询使用。为了避免在单次数据查询过程中,数据持有方获知本次查询的具体可查询数据,可以基于本公开所提供的匿踪查询方法,采用加密传输以及数据隐藏的方式,隐藏数据查询方的真实查询意图,保证了数据查询方本次查询的待查询数据的隐私性,从而提高了待查询数据的安全性。
需要说明的是,数据持有方对应的持有方公钥和持有方私钥,以及数据查询方对应的查询方公钥和查询方私钥,基于相同的椭圆曲线生成。也即,数据持有方的持有方公钥和持有方私钥所形成的持有方点,以及数据查询方的查询方公钥和查询方私钥所形成的查询方点,位于相同的椭圆曲线上。
其中,预设衍生算法专用于进行基础密钥生成。其中,预设衍生算法可以由技术人员根据实际需要或经验值进行设置,或通过大量试验调整确定,本公开对预设衍生算法的具体算法内容不作任何限定,仅需保证预设衍生算法可逆即可。
其中,基础密钥用于作为对可查询数据明文进行加密所使用的数据加密密钥的生成基础,为不同可查询数据的加密传输提供了数据支撑。
示例性的,数据查询方可以基于预设衍生算法、数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥;将基础密钥发送至数据查询方;数据查询方获取该基础密钥,以供后续处理。
其中,持有方公钥可以预先存储在数据查询方,或者在进行匿踪查询之前,数据查询方从数据持有方中获取数据持有方的持有方公钥。
可选的,数据持有方可以按照预设周期更新自身的持有方公钥,并向数据查询方发送更新后的持有方公钥,以供数据查询方使用,提高了密钥使用过程的安全性和随机性。
或者可选的,数据持有方预先设置有至少一个公私钥对,任一公私钥对包括持有方公钥和持有方私钥。数据查询方在进行匿踪查询之前,可以向数据持有方发送公钥获取请求;相应的,数据持有方响应于该公钥获取请求,向数据查询方发送本次匿踪查询所采用的公私钥对中的持有方公钥,保证了密钥使用过程的随机性,同时避免了单一公私钥对泄露带来的安全隐患。
其中,待查询数据的数据序号,用于作为待查询数据在可查询数据中的数据标识。数据序号可以采用数字顺序编号的形式加以呈现,便于进行基础密钥生成时的运算。
值得注意的是,这里的可查询数据可以是数据持有方中存储的,可供数据持有方查询的全量可查询数据;或者还可以是本次数据查询预先指定的全量可查询数据中的至少部分。
在一个可选实施例中,数据查询方向数据持有方发送不同可查询数据的数据区间;相应的,数据持有方接收数据查询方所发送的不同可查询数据的数据区间;确定数据区间内的可查询数据的数据序号,用于进行后续还原密钥的生成。这样做的好处在于,数据查询方可以通过数据区间,按需约束本次查询的待查询数据对应可查询数据的数据范围,减少了本次数据查询所处理的可查询数据的数量,从而减少了后续所生成以及传输的可查询数据密文的数据量,进而减少了数据传输带宽。
S202、基于预设衍生算法的逆运算,根据基础密钥、持有方公钥和不同可查询数据的数据序号,确定相应可查询数据的还原密钥。
其中,还原密钥用于表征在基础密钥的基础上,基于预设衍生算法尝试进行查询方公钥还原的还原结果。由于基础密钥生成过程中采用的是待查询数据的数据序号,因此,在进行查询方公钥还原时,仅待查询数据的数据序号,能够还原出真实的查询方公钥,也即待查询数据对应的还原密钥实质为真实的查询方公钥。
S203、根据持有方私钥,以及各可查询数据的还原密钥,确定相应可查询数据的数据加密密钥;其中,可查询数据包括待查询数据。
S204、根据不同数据加密密钥,分别对相应可查询数据进行加密,得到各可查询数据密文。
S205、向数据查询方发送各可查询数据密文,以使数据查询方根据持有方公钥和查询方私钥所确定的数据解密密钥,对各可查询数据密文进行解密,得到待查询数据明文。
针对任一可查询数据,根据持有方私钥和该可查询数据的还原密钥,确定该可查询数据的数据加密密钥;根据该数据加密密钥,对该可查询数据进行加密,得到该可查询数据的可查询数据密文。
由于不同可查询数据对应的还原密钥不同,因此,不同可查询数据的数据加密密钥也不同;因此,需要采用不同数据加密密钥对应的数据解密密钥,分别进行相应可查询数据密文的加密,才能得到对应的各可查询数据明文。
由于仅待查询数据的还原密钥与真实的查询方公钥相同,因此,基于待查询数据对应的还原密钥和持有方私钥所生成的数据加密密钥,与基于持有方公钥和查询方私钥所生成的数据解密密钥,分别属于同一公私钥对的公钥和私钥。因此,基于数据解密密钥,能够解密出且仅能够解密出可查询数据密文中待查询数据密文对应的待查询数据明文。
示例性的,数据查询方向数据持有方发送各可查询数据密文;其中,可查询数据密文中包括待查询数据密文。数据查询方根据持有方公钥和查询方私钥确定数据解密密钥,并根据数据解密密钥对各可查询数据密文进行解密,由于数据解密密钥仅能成功对待查询数据密文进行解密,因此,将最终解密结果作为待查询数据明文。
本公开实施例通过引入预设衍生算法以及预设衍生算法的逆运算,配合进行不同可查询数据的数据加密密钥的生成,使得所生成的数据加密密钥中,仅待查询数据对应的数据加密密钥,是经持有方私钥和查询方公钥生成的;相应的,基于持有方公钥和查询方私钥所生成数据解密密钥,能够对应解密出待查询数据密文对应的待查询数据明文。由于整个数据查询过程中,数据持有方并不知晓数据查询方的真实查询意图,因此提高了待查询数据自身的安全性和隐私性。
在一个可选实施例中,可以根据不同可查询数据的还原密钥,以及持有方私钥,确定相应可查询数据的中间数据;基于预设散列函数,对各可查询数据的中间数据进行编码,并采用编码结果点乘椭圆曲线的基点,得到相应可查询数据的数据加密密钥。相应的,待查询数据的数据解密密钥是由数据查询方基于预设散列函数,对持有方公钥和查询方私钥的点乘结果,进行编码得到的。
示例性的,针对任一可查询数据,数据持有方基于预设衍生算法的逆运算、基础密钥和该可查询数据的数据序号,确定该可查询数据的还原密钥;根据还原密钥和持有方私钥,确定该可查询数据的中间数据;根据预设散列函数对中间数据进行编码,并采用编码结果点乘椭圆曲线的基点,得到该可查询数据的数据加密密钥。相应的,数据查询方确定持有方公钥和查询方私钥的点乘结果,基于预设散列函数对点乘结果进行编码,得到待查询数据的数据解密密钥。
在一个具体实现方式中,数据持有方可以采用以下公式,确定可查询数据的数据加密密钥:
Figure SMS_43
其中,
Figure SMS_44
为第/>
Figure SMS_48
个可查询数据的数据加密密钥;/>
Figure SMS_51
为预设散列函数;/>
Figure SMS_46
为预设衍生算法的逆运算;/>
Figure SMS_49
为基础密钥;/>
Figure SMS_52
为持有方公钥;/>
Figure SMS_54
为持有方私钥;/>
Figure SMS_45
为椭圆曲线的基点;/>
Figure SMS_47
为点乘运算符;其中,/>
Figure SMS_50
;/>
Figure SMS_53
为可查询数据的最大数据序号。
相应的,数据查询方可以采用以下公式,确定待查询数据的数据解密密钥:
Figure SMS_55
其中,
Figure SMS_56
为第/>
Figure SMS_57
个待查询数据的数据解密密钥;/>
Figure SMS_58
为预设散列函数;/>
Figure SMS_59
为持有方公钥;/>
Figure SMS_60
为查询方私钥;/>
Figure SMS_61
为点乘运算符。
可以理解的是,基于预设衍生算法的逆运算,能够确定出不同可查询数据对应的还原密钥。当可查询数据的数据序号与待查询数据的数据序号相同时,还原密钥与查询方公钥相同。
由于通过预设散列函数的散列值点乘椭圆曲线基点的方式,能够将原来位于椭圆曲线上的点,散列到椭圆曲线上的另一个点,因此,数据加密密钥
Figure SMS_62
与相应的数据解密密钥/>
Figure SMS_63
构成的点/>
Figure SMS_64
,同样位于椭圆曲线上。由于数据查询方仅能构造出待查询数据的数据解密密钥/>
Figure SMS_65
,因此,数据查询方可以通过数据解密密钥/>
Figure SMS_66
,还原经数据加密密钥/>
Figure SMS_67
加密的待查询数据密文,得到待查询数据明文。
上述可选实施例通过将数据加密密钥和数据解密密钥的生成过程进行细化,保证了相同数据序号对应可查询数据的数据加密密钥和数据解密密钥对应的数据点,能够位于椭圆曲线上,保证了可查询数据的安全传输,同时,为待查询数据的有效还原提供了保障。
在上述各技术方案的基础上,本公开还提供了一个可选实施例,在该可选实施例中,对还原密钥的生成过程进行了细化。
在一个可选实施例中,基础密钥是由数据查询方根据持有方公钥和待查询数据的数据序号的点乘结果,与查询方公钥之间的和值确定的。相应的,基于预设衍生算法的逆运算,根据基础密钥、持有方公钥和不同可查询数据的数据序号,确定相应可查询数据的还原密钥,可以包括:将持有方公钥与不同可查询数据的数据序号的点乘结果,作为相应可查询数据的第二点乘结果;根据基础密钥与各第二点乘结果的差值,生成相应可查询数据的还原密钥。
具体的,数据查询方可以采用以下公式,确定基础密钥:
Figure SMS_68
其中,
Figure SMS_69
为基础密钥;/>
Figure SMS_70
为持有方公钥;/>
Figure SMS_71
为查询方公钥;/>
Figure SMS_72
为任一可查询数据的数据序号;/>
Figure SMS_73
为待查询数据的数据序号;/>
Figure SMS_74
为预设衍生算法;/>
Figure SMS_75
为点乘运算符。
相应的,数据持有方可以采用以下公式,确定还原密钥:
Figure SMS_76
其中,
Figure SMS_78
为第/>
Figure SMS_81
个可查询数据的还原密钥;/>
Figure SMS_83
为持有方公钥;/>
Figure SMS_79
为查询方公钥;/>
Figure SMS_80
为任一可查询数据的数据序号;/>
Figure SMS_82
为基础密钥;/>
Figure SMS_84
为预设衍生算法的逆运算;/>
Figure SMS_77
为点乘运算符。
可以理解的是,上述方案对预设衍生算法进行了细化:通过点乘的方式,按照不同的数据序号进行持有方公钥和查询方公钥的组合,生成不同数据序号对应的基础密钥,提高了基础密钥生成过程的便捷性,数据运算量小,有助于提高匿踪查询效率。同时,对预设衍生算法的逆运算进行了细化:通过点乘的方式,按照不同的数据序号,基于持有方公钥对基础密钥进行不同程度的拆分,从而得到不同数据序号对应的还原密钥,保证了仅待查询数据的数据序号能够还原出真实的查询方公钥,为后续数据解密密钥的生成提供了保障。同时,预设衍生算法的逆运算过程,数据运算量小、操作便捷性好,有助于提高匿踪查询效率。
在上述各技术方案的基础上,本公开还提供了一个优选实施例,在该优选实施例中,通过数据查询方和数据持有方交互的方式,对匿踪查询过程进行了详细说明。
参见图3所示的匿踪查询方法,包括:
S301、数据持有方基于预设椭圆曲线,生成包括持有方公钥和持有方私钥的公私钥对
Figure SMS_85
;以及,数据查询方基于预设椭圆曲线,生成包括查询方公钥和查询方私钥的公私钥对/>
Figure SMS_86
S302、数据查询方基于预设衍生算法,根据查询方公钥
Figure SMS_87
、持有方公钥/>
Figure SMS_88
、以及待查询数据的数据序号/>
Figure SMS_89
,确定基础密钥/>
Figure SMS_90
具体的,若选取第
Figure SMS_91
份数据/>
Figure SMS_92
,则基础密钥可以采用如下方式确定:
Figure SMS_93
。其中,/>
Figure SMS_94
为预设衍生算法;/>
Figure SMS_95
为点乘运算符。
S303、数据查询方向数据持有方发送可查询数据的数据序号区间
Figure SMS_96
,以及基础密钥/>
Figure SMS_97
S304、数据持有方基于预设衍生算法的逆运算,根据基础密钥
Figure SMS_98
、持有方公钥
Figure SMS_99
,确定不同可查询数据的数据序号/>
Figure SMS_100
对应的还原密钥/>
Figure SMS_101
具体的,第
Figure SMS_102
个可查询数据对应的还原密钥,可以采用如下方式确定:
Figure SMS_103
。其中,/>
Figure SMS_104
;/>
Figure SMS_105
为预设衍生算法的逆运算;/>
Figure SMS_106
为点乘运算符。
S305、数据持有方基于预设散列函数,将各还原密钥
Figure SMS_107
散列到椭圆曲线上的另一个点,得到各可查询数据/>
Figure SMS_108
的数据加密密钥/>
Figure SMS_109
具体的,第
Figure SMS_110
个可查询数据的数据加密密钥采用以下方式确定:
Figure SMS_111
。其中,/>
Figure SMS_112
为预设散列函数;/>
Figure SMS_113
为椭圆曲线的基点;/>
Figure SMS_114
为点乘运算符。
S306、数据持有方采用各可查询数据的数据加密密钥
Figure SMS_115
分别加密相应的可查询数据明文/>
Figure SMS_116
得到可查询数据密文/>
Figure SMS_117
S307、数据持有方将各可查询数据密文
Figure SMS_118
发送至数据查询方。
S308、数据查询方根据查询方私钥
Figure SMS_119
和持有方公钥/>
Figure SMS_120
,确定待查询数据
Figure SMS_121
的数据解密密钥/>
Figure SMS_122
具体的,数据查询方可以采用以下方式,生成待查询数据的数据解密密钥
Figure SMS_123
S309、数据查询方根据数据解密密钥
Figure SMS_124
,依次对各可查询数据密文/>
Figure SMS_125
进行解密,将解密所得的数据,作为待查询数据明文/>
Figure SMS_126
需要说明的是,数据解密密钥仅能解密可查询数据密文
Figure SMS_127
,无法解密其他可查询数据密文/>
Figure SMS_128
作为上述各匿踪查询方法的实现,本公开还提供了一种实施上述各匿踪查询方法的执行装置的可选实施例。参见图4所示的匿踪查询装置400,配置于数据查询方,包括:基础密钥生成模块401、基础密钥发送模块402、可查询数据密文发送模块403、数据解密密钥确定模块404和待查询数据明文得到模块405。其中,
基础密钥生成模块401,用于基于预设衍生算法,根据数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥;
基础密钥发送模块402,用于向所述数据持有方发送所述基础密钥,以使所述数据持有方根据持有方私钥,以及基于所述预设衍生算法的逆运算、所述基础密钥、所述持有方公钥和不同可查询数据的数据序号所确定的各还原密钥,确定出不同可查询数据的数据加密密钥,并采用各所述数据加密密钥分别对相应可查询数据加密,得到各可查询数据密文;其中,所述可查询数据包括所述待查询数据;
可查询数据密文发送模块403,用于获取所述数据持有方反馈的各所述可查询数据密文;
数据解密密钥确定模块404,用于根据所述持有方公钥和查询方私钥,确定所述待查询数据的数据解密密钥;
待查询数据明文得到模块405,用于根据所述数据解密密钥对各所述可查询数据密文进行解密,得到待查询数据明文。
本公开实施例通过引入预设衍生算法以及预设衍生算法的逆运算,配合进行不同可查询数据的数据加密密钥的生成,使得所生成的数据加密密钥中,仅待查询数据对应的数据加密密钥,经持有方私钥和查询方公钥生成;相应的,基于持有方公钥和查询方私钥所生成数据解密密钥,能够对应解密出待查询数据密文对应的待查询数据明文。由于整个数据查询过程中,数据持有方并不知晓数据查询方的真实查询意图,因此提高了待查询数据自身的安全性和隐私性。
在一个可选实施例中,所述可查询数据的数据加密密钥是由所述数据持有方根据预设散列函数,对基于所述预设衍生算法的逆运算、所述基础密钥和相应可查询数据的数据序号所得的还原密钥,结合持有方私钥确定出的中间数据进行编码,并采用编码结果点乘所述椭圆曲线的基点得到的;
其中,所述数据解密密钥确定模块404,具体用于:
将所述持有方公钥和所述查询方私钥的点乘结果作为密钥点乘结果,并基于所述预设散列函数,对所述密钥点乘结果进行编码,得到所述待查询数据的数据解密密钥。
在一个可选实施例中,所述基础密钥生成模块401,具体用于:
将所述持有方公钥与所述待查询数据的数据序号的点乘结果作为第一点乘结果,并根据所述第一点乘结果与所述查询方公钥的和值,确定所述基础密钥;
其中,所述可查询数据的还原密钥是由所述数据持有方根据所述基础密钥,与所述持有方公钥和相应可查询数据的数据序号的点乘结果之间的差值生成的。
在一个可选实施例中,该装置400,还包括:
数据区间发送模块,用于向所述数据持有方发送不同可查询数据的数据区间。
在一个可选实施例中,该装置400,还包括:
持有方公钥获取模块,用于获取所述数据持有方发送的当前匿踪查询所使用的持有方公钥。
上述匿踪查询装置可执行本公开任意实施例所提供的匿踪查询方法,具备执行匿踪查询方法相应的功能模块和有益效果。
作为上述各匿踪查询方法的实现,本公开还提供了另一种实施上述各匿踪查询方法的执行装置的可选实施例。参见图5所示的匿踪查询装置500,配置于数据持有方,包括:基础密钥获取模块501、还原密钥确定模块502、数据加密密钥确定模块503、可查询数据密文得到模块504和可查询数据密文发送模块505。其中,
基础密钥获取模块501,用于获取数据查询方基于预设衍生算法、数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号所生成的基础密钥;
还原密钥确定模块502,用于基于所述预设衍生算法的逆运算,根据所述基础密钥、持有方公钥和不同可查询数据的数据序号,确定相应可查询数据的还原密钥;
数据加密密钥确定模块503,用于根据持有方私钥,以及各可查询数据的还原密钥,确定相应可查询数据的数据加密密钥;其中,所述可查询数据包括所述待查询数据;
可查询数据密文得到模块504,用于根据不同数据加密密钥,分别对相应可查询数据进行加密,得到各可查询数据密文;
可查询数据密文发送模块505,用于向所述数据查询方发送各所述可查询数据密文,以使所述数据查询方根据所述持有方公钥和查询方私钥所确定的数据解密密钥,对各所述可查询数据密文进行解密,得到待查询数据明文。
本公开实施例通过引入预设衍生算法以及预设衍生算法的逆运算,配合进行不同可查询数据的数据加密密钥的生成,使得所生成的数据加密密钥中,仅待查询数据对应的数据加密密钥,经持有方私钥和查询方公钥生成;相应的,基于持有方公钥和查询方私钥所生成数据解密密钥,能够对应解密出待查询数据密文对应的待查询数据明文。由于整个数据查询过程中,数据持有方并不知晓数据查询方的真实查询意图,因此提高了待查询数据自身的安全性和隐私性。
在一个可选实施例中,所述数据加密密钥确定模块503,包括:
中间数据确定单元,用于根据不同可查询数据的还原密钥,以及持有方私钥,确定相应可查询数据的中间数据;
数据加密密钥得到单元,用于基于预设散列函数,对各所述可查询数据的中间数据进行编码,并采用编码结果点乘所述椭圆曲线的基点,得到相应可查询数据的数据加密密钥;
其中,所述待查询数据的数据解密密钥是由数据查询方基于所述预设散列函数,对所述持有方公钥和所述查询方私钥的点乘结果,进行编码得到的。
在一个可选实施例中,所述基础密钥是由所述数据查询方根据所述持有方公钥和所述待查询数据的数据序号的点乘结果,与所述查询方公钥之间的和值确定的;
其中,所述还原密钥确定模块502,包括:
第二点乘结果确定单元,用于将所述持有方公钥与不同可查询数据的数据序号的点乘结果,作为相应可查询数据的第二点乘结果;
还原密钥生成单元,用于根据所述基础密钥与各所述第二点乘结果的差值,生成相应可查询数据的还原密钥。
在一个可选实施例中,该装置500,还包括:
数据区间获取模块,用于获取所述数据查询方发送的不同可查询数据的数据区间;
数据序号确定模块,用于确定所述数据区间内的可查询数据的数据序号。
在一个可选实施例中,该装置500,还包括:
持有方公钥发送模块,用于向所述数据查询方发送当前匿踪查询所使用持有方私钥对应的持有方公钥。
上述匿踪查询装置可执行本公开任意实施例所提供的匿踪查询方法,具备执行匿踪查询方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的可查询数据、持有方公钥等的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如匿踪查询方法。例如,在一些实施例中,匿踪查询方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的匿踪查询方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行匿踪查询方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (22)

1.一种匿踪查询方法,应用于数据查询方,包括:
基于预设衍生算法,根据数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥;
向所述数据持有方发送所述基础密钥,以使所述数据持有方根据持有方私钥,以及基于所述预设衍生算法的逆运算、所述基础密钥、所述持有方公钥和不同可查询数据的数据序号所确定的各还原密钥,确定出不同可查询数据的数据加密密钥,并采用各所述数据加密密钥分别对相应可查询数据加密,得到各可查询数据密文;其中,所述可查询数据包括所述待查询数据;
获取所述数据持有方反馈的各所述可查询数据密文;
根据所述持有方公钥和查询方私钥,确定所述待查询数据的数据解密密钥;
根据所述数据解密密钥对各所述可查询数据密文进行解密,得到待查询数据明文。
2.根据权利要求1所述的方法,其中,所述可查询数据的数据加密密钥是由所述数据持有方根据预设散列函数,对基于所述预设衍生算法的逆运算、所述基础密钥和相应可查询数据的数据序号所得的还原密钥,结合持有方私钥确定出的中间数据进行编码,并采用编码结果点乘椭圆曲线的基点得到的;
其中,所述根据所述持有方公钥和查询方私钥,确定所述待查询数据的数据解密密钥,包括:
将所述持有方公钥和所述查询方私钥的点乘结果作为密钥点乘结果,并基于所述预设散列函数,对所述密钥点乘结果进行编码,得到所述待查询数据的数据解密密钥。
3.根据权利要求1所述的方法,其中,所述基于预设衍生算法,根据数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥,包括:
将所述持有方公钥与所述待查询数据的数据序号的点乘结果作为第一点乘结果,并根据所述第一点乘结果与所述查询方公钥的和值,确定所述基础密钥;
其中,所述可查询数据的还原密钥是由所述数据持有方根据所述基础密钥,与所述持有方公钥和相应可查询数据的数据序号的点乘结果之间的差值生成的。
4.根据权利要求1-3任一项所述的方法,还包括:
向所述数据持有方发送不同可查询数据的数据区间。
5.根据权利要求1-3任一项所述的方法,还包括:
获取所述数据持有方发送的当前匿踪查询所使用的持有方公钥。
6.一种匿踪查询方法,应用于数据持有方,包括:
获取数据查询方基于预设衍生算法、数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号所生成的基础密钥;
基于所述预设衍生算法的逆运算,根据所述基础密钥、持有方公钥和不同可查询数据的数据序号,确定相应可查询数据的还原密钥;
根据持有方私钥,以及各可查询数据的还原密钥,确定相应可查询数据的数据加密密钥;其中,所述可查询数据包括所述待查询数据;
根据不同数据加密密钥,分别对相应可查询数据进行加密,得到各可查询数据密文;
向所述数据查询方发送各所述可查询数据密文,以使所述数据查询方根据所述持有方公钥和查询方私钥所确定的数据解密密钥,对各所述可查询数据密文进行解密,得到待查询数据明文。
7.根据权利要求6所述的方法,其中,所述根据持有方私钥,以及各可查询数据的还原密钥,确定相应可查询数据的数据加密密钥,包括:
根据不同可查询数据的还原密钥,以及持有方私钥,确定相应可查询数据的中间数据;
基于预设散列函数,对各所述可查询数据的中间数据进行编码,并采用编码结果点乘椭圆曲线的基点,得到相应可查询数据的数据加密密钥;
其中,所述待查询数据的数据解密密钥是由数据查询方基于所述预设散列函数,对所述持有方公钥和所述查询方私钥的点乘结果,进行编码得到的。
8.根据权利要求6所述的方法,其中,所述基础密钥是由所述数据查询方根据所述持有方公钥和所述待查询数据的数据序号的点乘结果,与所述查询方公钥之间的和值确定的;
其中,所述基于所述预设衍生算法的逆运算,根据所述基础密钥、持有方公钥和不同可查询数据的数据序号,确定相应可查询数据的还原密钥,包括:
将所述持有方公钥与不同可查询数据的数据序号的点乘结果,作为相应可查询数据的第二点乘结果;
根据所述基础密钥与各所述第二点乘结果的差值,生成相应可查询数据的还原密钥。
9.根据权利要求6-8任一项所述的方法,还包括:
获取所述数据查询方发送的不同可查询数据的数据区间;
确定所述数据区间内的可查询数据的数据序号。
10.根据权利要求6-8任一项所述的方法,还包括:
向所述数据查询方发送当前匿踪查询所使用持有方私钥对应的持有方公钥。
11.一种匿踪查询装置,配置于数据查询方,包括:
基础密钥生成模块,用于基于预设衍生算法,根据数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号,生成基础密钥;
基础密钥发送模块,用于向所述数据持有方发送所述基础密钥,以使所述数据持有方根据持有方私钥,以及基于所述预设衍生算法的逆运算、所述基础密钥、所述持有方公钥和不同可查询数据的数据序号所确定的各还原密钥,确定出不同可查询数据的数据加密密钥,并采用各所述数据加密密钥分别对相应可查询数据加密,得到各可查询数据密文;其中,所述可查询数据包括所述待查询数据;
可查询数据密文发送模块,用于获取所述数据持有方反馈的各所述可查询数据密文;
数据解密密钥确定模块,用于根据所述持有方公钥和查询方私钥,确定所述待查询数据的数据解密密钥;
待查询数据明文得到模块,用于根据所述数据解密密钥对各所述可查询数据密文进行解密,得到待查询数据明文。
12.根据权利要求11所述的装置,其中,所述可查询数据的数据加密密钥是由所述数据持有方根据预设散列函数,对基于所述预设衍生算法的逆运算、所述基础密钥和相应可查询数据的数据序号所得的还原密钥,结合持有方私钥确定出的中间数据进行编码,并采用编码结果点乘椭圆曲线的基点得到的;
其中,所述数据解密密钥确定模块,具体用于:
将所述持有方公钥和所述查询方私钥的点乘结果作为密钥点乘结果,并基于所述预设散列函数,对所述密钥点乘结果进行编码,得到所述待查询数据的数据解密密钥。
13.根据权利要求11所述的装置,其中,所述基础密钥生成模块,具体用于:
将所述持有方公钥与所述待查询数据的数据序号的点乘结果作为第一点乘结果,并根据所述第一点乘结果与所述查询方公钥的和值,确定所述基础密钥;
其中,所述可查询数据的还原密钥是由所述数据持有方根据所述基础密钥,与所述持有方公钥和相应可查询数据的数据序号的点乘结果之间的差值生成的。
14.根据权利要求11-13任一项所述的装置,还包括:
数据区间发送模块,用于向所述数据持有方发送不同可查询数据的数据区间。
15.根据权利要求11-13任一项所述的装置,还包括:
持有方公钥获取模块,用于获取所述数据持有方发送的当前匿踪查询所使用的持有方公钥。
16.一种匿踪查询装置,配置于数据持有方,包括:
基础密钥获取模块,用于获取数据查询方基于预设衍生算法、数据持有方的持有方公钥、自身的查询方公钥和待查询数据的数据序号所生成的基础密钥;
还原密钥确定模块,用于基于所述预设衍生算法的逆运算,根据所述基础密钥、持有方公钥和不同可查询数据的数据序号,确定相应可查询数据的还原密钥;
数据加密密钥确定模块,用于根据持有方私钥,以及各可查询数据的还原密钥,确定相应可查询数据的数据加密密钥;其中,所述可查询数据包括所述待查询数据;
可查询数据密文得到模块,用于根据不同数据加密密钥,分别对相应可查询数据进行加密,得到各可查询数据密文;
可查询数据密文发送模块,用于向所述数据查询方发送各所述可查询数据密文,以使所述数据查询方根据所述持有方公钥和查询方私钥所确定的数据解密密钥,对各所述可查询数据密文进行解密,得到待查询数据明文。
17.根据权利要求16所述的装置,其中,所述数据加密密钥确定模块,包括:
中间数据确定单元,用于根据不同可查询数据的还原密钥,以及持有方私钥,确定相应可查询数据的中间数据;
数据加密密钥得到单元,用于基于预设散列函数,对各所述可查询数据的中间数据进行编码,并采用编码结果点乘椭圆曲线的基点,得到相应可查询数据的数据加密密钥;
其中,所述待查询数据的数据解密密钥是由数据查询方基于所述预设散列函数,对所述持有方公钥和所述查询方私钥的点乘结果,进行编码得到的。
18.根据权利要求16所述的装置,其中,所述基础密钥是由所述数据查询方根据所述持有方公钥和所述待查询数据的数据序号的点乘结果,与所述查询方公钥之间的和值确定的;
其中,所述还原密钥确定模块,包括:
第二点乘结果确定单元,用于将所述持有方公钥与不同可查询数据的数据序号的点乘结果,作为相应可查询数据的第二点乘结果;
还原密钥生成单元,用于根据所述基础密钥与各所述第二点乘结果的差值,生成相应可查询数据的还原密钥。
19.根据权利要求16-18任一项所述的装置,还包括:
数据区间获取模块,用于获取所述数据查询方发送的不同可查询数据的数据区间;
数据序号确定模块,用于确定所述数据区间内的可查询数据的数据序号。
20.根据权利要求16-18任一项所述的装置,还包括:
持有方公钥发送模块,用于向所述数据查询方发送当前匿踪查询所使用持有方私钥对应的持有方公钥。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的匿踪查询方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-10中任一项所述的匿踪查询方法。
CN202310396704.4A 2023-04-13 2023-04-13 匿踪查询方法、装置、设备及存储介质 Active CN116108496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310396704.4A CN116108496B (zh) 2023-04-13 2023-04-13 匿踪查询方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310396704.4A CN116108496B (zh) 2023-04-13 2023-04-13 匿踪查询方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116108496A CN116108496A (zh) 2023-05-12
CN116108496B true CN116108496B (zh) 2023-06-23

Family

ID=86264166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310396704.4A Active CN116108496B (zh) 2023-04-13 2023-04-13 匿踪查询方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116108496B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020186775A1 (zh) * 2019-03-15 2020-09-24 平安科技(深圳)有限公司 业务数据提供方法、装置、设备及计算机可读存储介质
CN113987583A (zh) * 2021-11-11 2022-01-28 建信金融科技有限责任公司 一种隐匿查询方法及系统
CN114091054A (zh) * 2021-11-03 2022-02-25 深圳前海微众银行股份有限公司 一种双向隐匿数据查询方法及装置
CN114756886A (zh) * 2022-06-13 2022-07-15 华控清交信息科技(北京)有限公司 一种匿踪查询方法、装置和用于匿踪查询的装置
CN115580396A (zh) * 2022-10-08 2023-01-06 上海勃池信息技术有限公司 匿踪查询系统及匿踪查询方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020186775A1 (zh) * 2019-03-15 2020-09-24 平安科技(深圳)有限公司 业务数据提供方法、装置、设备及计算机可读存储介质
CN114091054A (zh) * 2021-11-03 2022-02-25 深圳前海微众银行股份有限公司 一种双向隐匿数据查询方法及装置
CN113987583A (zh) * 2021-11-11 2022-01-28 建信金融科技有限责任公司 一种隐匿查询方法及系统
CN114756886A (zh) * 2022-06-13 2022-07-15 华控清交信息科技(北京)有限公司 一种匿踪查询方法、装置和用于匿踪查询的装置
CN115580396A (zh) * 2022-10-08 2023-01-06 上海勃池信息技术有限公司 匿踪查询系统及匿踪查询方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SM2椭圆曲线公钥加密算法的研究与实现;李玉生;;无线互联科技(第20期);67-69 *
数值型云外包数据范围查询隐私保护方法;樊祯杰;金华;;信息技术(第12期);183-188 *

Also Published As

Publication number Publication date
CN116108496A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
US11706026B2 (en) Location aware cryptography
JP6941183B2 (ja) データのトークン化
EP3913850A1 (en) Key management method and related device
KR20220018888A (ko) 프라이버시 집합의 교집합 획득 방법, 장치, 기기 및 저장 매체
CN111352996A (zh) 基于区块链网络的数据共享方法、装置、设备及介质
CN113612597A (zh) 数据计算方法、装置、系统及电子设备
CN111555880B (zh) 数据碰撞方法、装置、存储介质及电子设备
CN113794706B (zh) 数据的处理方法、装置、电子设备及可读存储介质
CN113422832B (zh) 文件传输方法、装置、设备和存储介质
CN113032833B (zh) 用户查询方法和装置、存储介质、电子设备
CA3061776A1 (en) Key information processing method and apparatus, electronic device and computer readable medium
CN112261015B (zh) 基于区块链的信息共享方法、平台、系统以及电子设备
CN111798236B (zh) 交易数据加、解密方法、装置及设备
CN116108496B (zh) 匿踪查询方法、装置、设备及存储介质
US11133926B2 (en) Attribute-based key management system
GB2590239A (en) Secure operations on encrypted data
CN113158247B (zh) 用户查询方法和装置、存储介质、电子设备
CN111767550A (zh) 数据存储方法和装置
CN115459984A (zh) 加密、解密方法和装置
CN105681027A (zh) Hsm加密信息同步实现方法、装置和系统
CN111131270B (zh) 数据加密和解密方法、装置、电子设备及存储介质
CN112995205B (zh) 基于区块链的查询方法、装置、设备和存储介质
CN117743384A (zh) 一种数据查询方法、装置、设备和存储介质
CN112615712B (zh) 数据的处理方法、相关装置及计算机程序产品
CN116388970B (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
GR01 Patent grant
GR01 Patent grant