A cryptography-based joint blacklist multi-party privacy query method and system

CN116992486BActive Publication Date: 2026-10-27CHINA DESIGN DIGITAL TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311120936.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-08-30
Publication Date
2026-10-27
Estimated Expiration
2043-08-30

AI Technical Summary

Technical Problem

[0004]其中,融资平台在查询的过程中需要查询多个相关业务平台的黑名单,这样的查询方式过于繁琐,从而降低了查询效率;同时,在查询过程中相关业务平台会知晓融资平台查询的被查询机构的相关信息,融资平台也知晓被查询机构被哪些相关业务平台拉入黑名单,融资平台还会知晓相关业务平台黑名单中的其他机构的相关信息,因此导致融资平台和相关业务平台的数据隐私的安全性差,没有得到保护

Benefits of technology

1.本申请客户端服务器在接收到融资平台发送的包含待查询机构名称的查询请求之后,对待查询机构的名称进行加密处理转换为哈希值,同时将黑名单查询请求发送给各数据节点,然后客户端服务器分别接收各数据节点发送的本次哈希子集并将这些哈希子集汇总组成本次哈希总集,最后在确定本次哈希总集中包括该待查询机构名称对应的哈希值的情况下,客户端服务器发送反馈信息给融资平台,以这样的方式获得查询结果可以在提高查询效率的同时保护融资平台和相关业务平台的数据隐私,提高数据的安全性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116992486B_ABST
    Figure CN116992486B_ABST
Patent Text Reader

Abstract

The application discloses a kind of joint black list multi-party privacy query method and system based on cryptography, the method includes: client server receives the query request containing the name of the agency to be queried sent by current financing platform;Client server converts the name of the agency to be queried into first hash value;Client server sends blacklist query request to each data node;Client server receives the hash subset sent by each data node respectively;Client server combines the hash subset sent by each data node into this hash total set;In the case where it is determined that the first hash value is included in this hash total set, the client server sends the first feedback information to the current financing platform.The method can improve the query efficiency while protecting the data privacy of financing platform and related business platform, improve the security of data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data privacy technology, and in particular to a cryptographic-based method and system for multi-party privacy query of joint blacklists. Background Technology

[0002] Internet lending is now very common, with many financing platforms offering loan services. When a company or institution applies for a loan from these platforms, the platforms will verify the company's or institution's qualifications.

[0003] In this technology, the financing platform acts as the data querying party, the queried institution acts as the queried party, and the relevant business platform acts as the data provider. The financing platform determines whether the queried institution is on the blacklist of the relevant business platform based on the relevant information of the queried institution, so as to facilitate the subsequent review of the qualifications of the queried institution.

[0004] In this process, financing platforms need to check the blacklists of multiple related business platforms, which is too cumbersome and reduces efficiency. Furthermore, during the search, the relevant business platforms become aware of the information about the institution being searched, as well as which related business platforms have blacklisted the institution. The financing platform also gains access to information about other institutions on the blacklists of these platforms. This results in poor data privacy and inadequate protection for both the financing platform and the relevant business platforms. Summary of the Invention

[0005] This application provides a cryptographic-based multi-party privacy query method and system for joint blacklists, which improves query efficiency while protecting the data privacy of financing platforms and related business platforms, thereby enhancing data security.

[0006] Firstly, this application provides a cryptographic-based multi-party privacy query method for a joint blacklist, applied to a cryptographic-based multi-party privacy query system for a joint blacklist. This system includes several business platform servers for providing blacklists and several financing platforms for querying whether a queried institution exists on the blacklist. The system further includes several data nodes, one-to-one correspondence between a client server and a business platform server. The method comprises: the client server receiving a query request from a current financing platform containing the name of the institution to be queried, where the current financing platform is any one of several financing platforms; the client server converting the name of the institution to be queried into a first hash value; and the client server sending a blacklist query request to each data node. The client server receives the current hash subset sent by each data node. This current hash subset includes the first hash subset sent by the first data node. The first hash subset is obtained by the first data node by extracting a preset number of institution names from the first data subset and converting them into corresponding hash values. The first data subset includes all institution names in the first blacklist obtained by the first data node from the corresponding first business platform server. The client server combines the current hash subsets sent by each data node into a current hash set. This current hash set includes hash values ​​corresponding to multiple institution names. If it is determined that the current hash set includes the first hash value, the client server sends a first feedback message to the current financing platform. This first feedback message indicates that the institution name to be queried exists in the blacklist of the business platform server.

[0007] In the above embodiments, after receiving a query request from the financing platform containing the name of the institution to be queried, the client server encrypts the name of the institution to be queried and converts it into a hash value. At the same time, it sends the blacklist query request to each data node. Then, the client server receives the hash subsets sent by each data node and summarizes these hash subsets into the hash set. Finally, if it is determined that the hash set includes the hash value corresponding to the name of the institution to be queried, the client server sends feedback information to the financing platform. Obtaining the query results in this way can improve query efficiency while protecting the data privacy of the financing platform and related business platforms, and improving data security.

[0008] In conjunction with some embodiments of the first aspect, in some embodiments, after the step of the client server sending a blacklist query request to each data node, the method further includes: the first data node obtaining a first blacklist from the corresponding first business platform server; the first data node extracting all organization names from the first blacklist to establish a first data subset; the first data node randomly selecting a preset number of query records from the current first data subset to obtain an updated first data subset, wherein the number of data records in the updated first data subset is a preset number of query records less than the number of data records in the current first data subset; and the first data node converting the preset number of query records into corresponding hash values ​​to obtain a first hash subset.

[0009] In the above embodiments, after receiving a blacklist query from the client server, the data node obtains the blacklist data from the business platform corresponding to the data node and extracts all the organization names in the blacklist to form a data subset. Then, the data node randomly selects a preset number of query data from the data subset and encrypts these data to convert them into corresponding hash values, thus forming a hash subset. By extracting a portion of the data and encrypting it, the client server compares the target hash value with the hash values ​​in the hash subset to obtain the query result. This method can improve data security while improving data processing efficiency.

[0010] In conjunction with some embodiments of the first aspect, in some embodiments, after the client server combines the current hash subsets sent by each data node into the current hash set, the method further includes: if it is determined that the current hash set does not include the first hash value, the client server sends a continued query request to each data node; after receiving the continued query request, the first data node performs the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset.

[0011] In the above embodiment, after querying the data sent by the data node, the client server finds that there is no data to be queried, and then continues to send a query request to the data node. After receiving the continued query request from the client server, the data node randomly selects a preset number of data from the data subset and encrypts these data to convert them into corresponding hash values, thus forming a new hash subset. The client server compares the target hash value with the hash values ​​in the hash subset again. If there is still blacklist data and no query result is obtained, this operation is repeated until the query result is obtained. This method can improve query efficiency.

[0012] In conjunction with some embodiments of the first aspect, in some embodiments, after the client server receives a query request containing the name of the institution to be queried from the current financing platform, the method further includes: the client server generating a first session identifier corresponding to the query request; the client server sending the first session identifier and a preset number of query records to each data node; the first data node determining whether a first session object corresponding to the first session identifier exists in a preset maintenance session pool; if no first session object corresponding to the first session identifier exists in the preset maintenance session pool, the first data node creating a first session object corresponding to the first session identifier in the preset maintenance session pool, and performing the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset; the first data node placing the updated first data subset into... After the step of the client server sending a continue query request to each data node when it is determined that the first hash value is not included in the current hash set, the method further includes: the client server determining that the continue query request corresponds to the first session identifier; the client server sending the first session identifier and a preset number of query records to each data node; the first data node determining whether there is a first session object corresponding to the first session identifier in the preset maintenance session pool; if there is a first session object corresponding to the first session identifier in the preset maintenance session pool, the first data node reads the updated first data subset from the first session object, determines the updated first data subset as the current first data subset, and executes the step of the first data node randomly extracting a preset number of query records from the current first data subset to obtain the updated first data subset.

[0013] In the above embodiments, by creating a session identifier corresponding to the query request and a session object corresponding to the session identifier, each query request and feedback data can be identified. This helps the system to identify and distinguish different sessions, maintain the continuity of session states, and thus improve the efficiency and performance of the system.

[0014] In conjunction with some embodiments of the first aspect, in some embodiments, after the client server receives the current hash subset sent by each data node, the method further includes: the client server determining whether the current hash subset is an empty set; if the current hash subset is an empty set, the client server sends second feedback information to the current financing platform, the second feedback information being used to indicate that the name of the institution to be queried does not exist in the blacklist of any business platform server.

[0015] In the above embodiment, when the hash subsets sent by each data node are all empty, the client server sends the query results to the financing platform and stops the current query session, thereby improving query efficiency.

[0016] In conjunction with some embodiments of the first aspect, in some embodiments, after the client server combines the current hash subsets sent by each data node into the current hash set, the method further includes: the client server establishing a query dictionary based on the current hash set; and when it is determined that the current hash set includes the first hash value, the client server sending first feedback information to the current financing platform, specifically including: when it is determined that the query dictionary includes the first hash value, the client server sending first feedback information to the current financing platform, the first feedback information being used to indicate that the name of the institution to be queried exists in the blacklist of the business platform.

[0017] In the above embodiments, query efficiency and accuracy of query results are improved by establishing a query dictionary.

[0018] In conjunction with some embodiments of the first aspect, in some embodiments, the client server establishes a query dictionary based on the current hash set. The method specifically includes: the client server removing duplicate hash values ​​from the current hash set to obtain the current deduplicated hash set; and the client server using each hash value in the current deduplicated hash set as an index to establish the query dictionary.

[0019] In the above embodiments, removing duplicate data when building the query dictionary can save storage space and improve query efficiency.

[0020] Secondly, a cryptographic-based multi-party privacy query system for a joint blacklist includes several business platform servers for providing blacklists and several financing platforms for querying whether a queried institution exists in the blacklist. The system is characterized by further including several data nodes, one-to-one correspondence between client servers and business platform servers. Each client server includes: a receiving module for receiving a query request containing the name of the institution to be queried from a current financing platform (which can be any one of several financing platforms); an encryption module for converting the name of the institution to be queried into a first hash value; a first sending module for sending the blacklist query request to each data node; and a receiving module for receiving... The system receives the current hash subsets sent by each data node. This current hash subset includes the first hash subset sent by the first data node. The first hash subset is obtained by the first data node by extracting a preset number of institution names from the first data subset and converting them into corresponding hash values. This first data subset includes all institution names in the first blacklist obtained by the first data node from the corresponding first business platform server. A aggregation module is used to combine the current hash subsets sent by each data node into a total hash set, which includes hash values ​​corresponding to multiple institution names. A second sending module is used to send first feedback information to the current financing platform if it is determined that the total hash set includes the first hash value. This first feedback information indicates that the institution name to be queried exists in the blacklist of the business platform server.

[0021] In conjunction with some embodiments of the second aspect, in some embodiments, the first data node includes: an acquisition module, used to acquire a first blacklist from a corresponding first business platform server; a data extraction module, used to extract all organization names in the first blacklist to establish a first data subset; a data extraction module, used to randomly extract a preset number of data entries from the current first data subset to obtain an updated first data subset, wherein the number of data entries in the updated first data subset is a preset number of fewer data entries than the number of data entries in the current first data subset; and a data encryption module, used to convert the preset number of data entries into corresponding hash values ​​to obtain a first hash subset.

[0022] In conjunction with some embodiments of the second aspect, in some embodiments, the client server further includes: a request sending module, configured to send a continue query request to each data node when it is determined that the first hash value is not included in the current hash set; the first data node further includes: a first execution module, configured to, upon receiving the continue query request, execute the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset.

[0023] In conjunction with some embodiments of the second aspect, in some embodiments, the client server further includes: a session identifier creation module, used to generate a first session identifier corresponding to the query request; a first identifier sending module, used to send the first session identifier and a preset number of query records to each data node; a determination module, used to determine that the continued query request corresponds to the first session identifier; and a second identifier sending module, used to send the first session identifier and the preset number of query records to each data node; the first data node further includes: a first judgment module, used to determine whether a first session object corresponding to the first session identifier exists in a preset maintenance session pool; and an object creation module, used to create an object corresponding to the first session identifier in the preset maintenance session pool if no first session object corresponding to the first session identifier exists in the preset maintenance session pool. The system consists of three modules: a first session object identification module and a second data node. The first data node is configured to randomly extract a preset number of query records from the current first data subset to obtain an updated first data subset. The second data node is configured to identify the corresponding first session object and execute the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset. The third data node is configured to: identify the corresponding first session object and execute the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset. The fourth data node is configured to: identify the corresponding first session object and execute the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset.

[0024] In conjunction with some embodiments of the second aspect, in some embodiments, the client server further includes: an empty set judgment module, used to determine whether the current hash subset is an empty set; and a feedback sending module, used to send second feedback information to the current financing platform if the current hash subset is an empty set, the second feedback information being used to indicate that the name of the institution to be queried does not exist in the blacklist of any business platform server.

[0025] In conjunction with some embodiments of the second aspect, in some embodiments, the client server further includes: a dictionary building module, used to build a query dictionary based on the current hash set; and an information sending module, used to send first feedback information to the current financing platform when it is determined that the query dictionary includes the first hash value, wherein the first feedback information is used to indicate that the name of the institution to be queried exists in the blacklist of the business platform.

[0026] In conjunction with some embodiments of the second aspect, in some embodiments, the client server further includes: a deduplication module, used to remove duplicate hash values ​​from the current hash set to obtain the current deduplicated hash set; and a query dictionary building module, used to build the query dictionary using each hash value in the current deduplicated hash set as an index.

[0027] Thirdly, embodiments of this application provide an electronic device, which includes: one or more processors and a memory; The memory is coupled to one or more processors for storing computer program code, which includes computer instructions that the one or more processors invoke to cause the electronic device to perform the methods described in the first aspect and any possible implementation thereof.

[0028] Fourthly, embodiments of this application provide a computer-readable storage medium including instructions that, when executed on an electronic device, cause the electronic device to perform the method described in the first aspect and any possible implementation thereof.

[0029] It is understood that the cryptography-based joint blacklist multi-party privacy query system provided in the second aspect, the electronic device provided in the third aspect, and the computer storage medium provided in the fourth aspect are all used to execute the cryptography-based joint blacklist multi-party privacy query method provided in the embodiments of this application. Therefore, the beneficial effects it can achieve can be referred to the beneficial effects in the corresponding methods, and will not be repeated here.

[0030] In summary, this application includes at least one of the following beneficial technical effects: 1. After receiving a query request from the financing platform containing the name of the institution to be queried, the client server of this application encrypts the name of the institution to be queried and converts it into a hash value. At the same time, it sends the blacklist query request to each data node. Then, the client server receives the hash subsets sent by each data node and summarizes these hash subsets into the total hash set. Finally, if it is determined that the total hash set includes the hash value corresponding to the name of the institution to be queried, the client server sends feedback information to the financing platform. Obtaining the query results in this way can improve query efficiency while protecting the data privacy of the financing platform and related business platforms, and improve data security.

[0031] 2. After receiving a blacklist query from the client server, the data node in this application retrieves the blacklist data from the business platform corresponding to that data node and extracts all the organization names in the blacklist to form a data subset. Then, the data node randomly selects a preset number of query records from this data subset and encrypts these records to convert them into corresponding hash values, ultimately forming a hash subset. By extracting a portion of the data and encrypting it, the client server compares the target hash value with the hash values ​​in the hash subset to obtain the query result. This method can improve data security while also improving data processing efficiency.

[0032] 3. This application identifies each query request and feedback data by creating a session identifier corresponding to the query request and a session object corresponding to the session identifier. This helps the system identify and distinguish different sessions, maintain the continuity of session states, and thus improve the efficiency and performance of the system.

[0033] 4. This application improves query efficiency and the accuracy of query results by establishing a query dictionary. Attached Figure Description

[0034] Figure 1 This is a schematic diagram of an interactive scenario illustrating the application environment and framework of the cryptography-based joint blacklist multi-party privacy query method proposed in this application.

[0035] Figure 2 A flowchart illustrating a cryptographic-based multi-party privacy query method for joint blacklists is provided in this application.

[0036] Figure 3 This is another flowchart illustrating the cryptographic-based joint blacklist multi-party privacy query method in this application embodiment.

[0037] Figure 4 This is a flowchart illustrating a method for determining whether a current session object exists in the session pool, as described in an embodiment of this application.

[0038] Figure 5 This is a flowchart illustrating the process of constructing a query dictionary in an embodiment of this application. Detailed Implementation

[0039] The terminology used in the following embodiments of this application is for the purpose of describing particular embodiments only and is not intended to be limiting of this application. As used in the specification and appended claims of this application, the singular expressions “a,” “an,” “the,” “the,” “the,” and “this” are intended to include the plural expressions as well, unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used in this application refers to and includes any or all possible combinations of one or more of the listed items.

[0040] Hereinafter, the terms "first" and "second" are used for descriptive purposes only and should not be construed as implying or suggesting relative importance or implicitly indicating the number of indicated technical features. Thus, features defined as "first" or "second" may explicitly or implicitly include one or more of the stated features. In the description of the embodiments of this application, unless otherwise stated, "multiple" means two or more.

[0041] The following is a description of the cryptography-based joint blacklist multi-party privacy query system involved in this application: It is understood that, in some embodiments, for ease of description, the cryptography-based joint blacklist multi-party privacy query system in this application may also be referred to as a query system, or a blacklist privacy query system, or other names, which are not limited here.

[0042] like Figure 1 The diagram illustrates an interactive scenario of the application environment and framework of the cryptography-based joint blacklist multi-party privacy query method proposed in this application. The query system includes several business platform servers, several data nodes, client servers, and several financing platforms. Each business platform server corresponds one-to-one with a data node. Through the client server, data nodes and financing platforms can communicate with each other.

[0043] After receiving a query request from a user through the financing platform, the client server sends the query request to each data node. The data node retrieves blacklist data from the corresponding business platform server, preprocesses the data, and sends it to the client server. The client server then processes the data, makes a judgment, obtains the query result, and finally returns the query result to the financing platform.

[0044] It is understandable that the financing platform can be a terminal device that runs cryptographically based joint blacklist multi-party privacy query software or opens a cryptographically based joint blacklist multi-party privacy query webpage, such as a desktop computer, mobile phone, tablet computer, etc., without limitation.

[0045] The following is combined with Figure 1 The interactive scenario diagram shown illustrates the cryptographic-based multi-party privacy query method for joint blacklists in this application embodiment: Please see Figure 2 This is a flowchart illustrating a cryptographic-based multi-party privacy query method for a joint blacklist in this application.

[0046] S201. The client server receives a query request from the current financing platform containing the name of the institution to be queried. Users send query requests to the client server through the financing platform. The client server receives the query request, which contains the name of the institution that the user wants to query.

[0047] It should be noted that there can be several financing platforms, and the financing platform mentioned above is any one of these platforms.

[0048] S202. The client server converts the name of the organization to be queried into a first hash value; The client server uses the hash function SHA256 to encrypt the organization name in the query request to obtain the first hash value.

[0049] It's important to note that SHA256 is a cryptographic hash function that converts input data (such as text, files, etc.) into a fixed-length hash value. Furthermore, SHA256 has no key and is a one-way function, meaning the original input data cannot be deduced from the hash value. The hash value generated using the SHA256 algorithm is unique; even if the input data is very similar, the hash values ​​will differ significantly.

[0050] S203. The client server sends a blacklist query request to each data node. S204. The client server receives the current hash subset sent by each data node. After receiving a blacklist query request from the client server, the data node extracts a preset number of organization names from the data subset and converts them into corresponding hash values. These hash values ​​then constitute the current hash subset and are sent to the client server. This data subset includes the names of all organizations in the blacklist in the business platform server corresponding to the data node.

[0051] To facilitate understanding, let's illustrate with an example: Assume there are two business platform servers, namely Business Platform Server A and Business Platform Server B, and data nodes A and B corresponding to Business Platform Server A and Business Platform Server B, respectively. After receiving a blacklist query request from the client server, data node A extracts a preset number of organization names from the blacklist data subset of Business Platform Server A, and then converts them into corresponding hash values. These hash values ​​form the first hash subset, which data node A then sends to the client server. After receiving a blacklist query request from the client server, data node B extracts a preset number of organization names from the blacklist data subset of Business Platform Server B, and then converts them into corresponding hash values. These hash values ​​form the second hash subset, which data node B then sends to the client server. Finally, the client server receives the first and second hash subsets sent by data nodes A and B, respectively. The first and second hash subsets here are equivalent to the hash subset mentioned in step S204.

[0052] S205. The client server combines the hash subsets sent by each data node into the total hash set for this time. To facilitate understanding, let's take an example: Suppose that the current client server receives the first hash subset and the second hash subset sent by data node A and data node B respectively. The client server summarizes the first hash subset and the second hash subset into the current hash set. Here, the first hash subset and the second hash subset are equivalent to the current hash subset mentioned in step S205.

[0053] S206. If it is determined that the current hash set includes the first hash value, the client server sends the first feedback information to the current financing platform.

[0054] The client server compares the first hash value with all hash values ​​in the current hash set. After confirming that the current hash set includes the first hash value, the client server sends the query result to the current financing platform. The query result sent by the client server here is equivalent to the first feedback information sent in step S206.

[0055] It is understandable that the first hash value mentioned above is the hash value corresponding to the name of the organization to be queried, i.e., the target hash value; the above query result is used to indicate that the organization to be queried exists in the blacklist of one or more business platforms.

[0056] In the above embodiments, after receiving a query request from the financing platform containing the name of the institution to be queried, the client server encrypts the name of the institution to be queried and converts it into a hash value. At the same time, it sends the blacklist query request to each data node. Then, the client server receives the hash subsets sent by each data node and summarizes these hash subsets into the hash set. Finally, if it is determined that the hash set includes the hash value corresponding to the name of the institution to be queried, the client server sends feedback information to the financing platform. Obtaining the query results in this way can improve query efficiency while protecting the data privacy of the financing platform and related business platforms, and improving data security.

[0057] The following is combined with Figure 3 The embodiments shown herein provide a detailed description of the cryptographic-based multi-party privacy query method for joint blacklists in this application: Please see Figure 3 This is another flowchart illustrating the cryptographic-based multi-party privacy query method for joint blacklists in this application.

[0058] S301. Receive a query request from the current financing platform containing the name of the institution to be queried; Users send query requests to the client server through the financing platform. The client server receives the query request, which contains the name of the institution that the user wants to query.

[0059] It should be noted that the query request may also include the company name of the company to be queried; this is not a limitation here.

[0060] It should be noted that there can be several financing platforms, and the financing platform mentioned above is any one of these platforms.

[0061] S302. Generate a first session identifier corresponding to the query request; After receiving a query request, the client server generates a globally unique session identifier for this query.

[0062] S303, Send a blacklist query request, first session identifier, and preset number of query entries; When the client server sends a blacklist query request to each data node, it also sends the first session identifier corresponding to this query request and the preset number of query records to each data node. The preset number of query records is the number of query records that the client server requests from each data node each time.

[0063] It should be noted that the above-mentioned preset number of query records is set in advance. The client can read it from the configuration file, and it only needs to read from the configuration file the first time it is used. Subsequent times do not need to read it repeatedly, and it will be retrieved from memory instead. The specific number of preset query records can be adjusted according to actual needs, and there is no limit here.

[0064] S304. Convert the name of the organization to be queried into the first hash value; The client server uses the hash function SHA256 to encrypt the organization name in the query request to obtain the first hash value.

[0065] It's important to note that SHA256 is a cryptographic hash function that converts input data (such as text, files, etc.) into a fixed-length hash value. Furthermore, SHA256 has no key and is a one-way function, meaning the original input data cannot be deduced from the hash value. The hash value generated using the SHA256 algorithm is unique; even if the input data is very similar, the hash values ​​will differ significantly.

[0066] S305, Request to obtain blacklist.

[0067] Each data node sends a request to the corresponding business platform server to retrieve the blacklist.

[0068] S306, Send to blacklist; Each business platform server sends a blacklist to the corresponding data node.

[0069] For example: Currently, there are two business platform servers A and B, which correspond to data nodes A and B respectively. After receiving the request to obtain the blacklist from the corresponding data nodes A and B, business platform servers A and B will send their respective blacklist data to the corresponding data nodes.

[0070] S307, Obtain the first blacklist; Data nodes receive the blacklist data from the corresponding business platform server.

[0071] It should be noted that, for ease of explanation, we use one data node and one corresponding business platform server for illustration. In reality, there may be several business platform servers and several corresponding data nodes.

[0072] S308. Extract all organization names from the first blacklist to create a first data subset; After obtaining the first blacklist, the data node extracts all the organization name data from the first blacklist and establishes a first data subset, which includes the data of these organization names.

[0073] S309. Randomly extract a preset number of data entries from the current first data subset to obtain the updated first data subset; After establishing the first data subset, the data node randomly extracts a preset number of data entries from the current first data subset and updates the current first data subset to obtain the updated first data subset.

[0074] It is understandable that the updated first data subset contains fewer data entries than the current first data subset by the preset query count.

[0075] It should be noted that when the amount of data to be extracted is greater than the amount of data in the data subset, all data in the data subset will be extracted at once.

[0076] S310. Convert the preset number of query records into their corresponding hash values ​​to obtain the first hash subset; The data node will encrypt each piece of data randomly selected from the current first data subset to obtain the corresponding hash value, and then form the first hash subset.

[0077] It should be noted that the above data is encrypted using the hash function SHA256 to obtain the corresponding hash value.

[0078] S311. Send the first hash subset to the client server; The data node sends the first hash subset to the client server. This explanation uses the action of one data node as an example; in reality, several data nodes may send hash subsets to the client server. For instance, suppose there are two data nodes, A and B. Data node A sends the first hash subset to the client server, while data node B sends the second hash subset.

[0079] S312. Determine whether all hash subsets sent by each data node are empty sets; After receiving the hash subsets sent by each data node, the client server determines whether all of these hash subsets are empty. If all of these hash subsets are empty, step S313 is executed; if any of these hash subsets are not empty, step S314 is executed.

[0080] S313. If all values ​​are empty, confirm that the organization to be queried is not on the blacklist; If the client server determines that the hash subsets sent by each data node are all empty, it determines that the institution to be queried is not in the blacklist of any business platform server, and sends the feedback result to the current financing platform. The feedback result here is used to indicate that the institution to be queried does not exist in the blacklist of any business platform server.

[0081] S314. Combine the hash subsets sent by each data node into the total hash set for this operation; If the client server determines that the hash subsets sent by each data node are not all empty sets, it will aggregate the hash subsets sent by each data node to form the total hash set for this operation.

[0082] To make it easier to understand, let's take an example: Suppose that data nodes A, B, and C send the first hash subset, the second hash subset, and the third hash subset to the client server, respectively. After checking, the client server finds that the first hash subset and the third hash subset are not empty. Then, the client server summarizes the data in the first hash subset, the second hash subset, and the third hash subset to obtain the total hash set.

[0083] S315. Determine whether the current hash set includes the first hash value; If the hash subsets sent by each data node are not all empty, the client server aggregates these hash subsets into a total hash set. Then, it compares the first hash value with the data in the total hash set to determine if the total hash set contains the first hash subset, which is the hash value corresponding to the name of the organization to be queried. If the total hash set contains the first hash value, step S316 is executed; otherwise, step S317 is executed.

[0084] S316. Confirm that the organization to be queried is on the blacklist; If the first hash value is included in the current hash set, the client server determines that the institution to be queried exists in the blacklist of one or more business platform servers and sends the query result to the current financing platform.

[0085] S317. Send a request to continue querying, the first session identifier, and the preset number of queries.

[0086] If the current hash set includes the first hash value, the client server sends another blacklist query request, the first session identifier corresponding to this query request, and a preset number of query records to each data node. This preset number of query records is the number of query records the client server requests from each data node each time. After this step, steps S309 to S316 are executed repeatedly. This loop stops once the client server receives the query results.

[0087] It should be noted that the above-mentioned preset number of query records is set in advance. The client can read it from the configuration file, and it only needs to read from the configuration file the first time it is used. Subsequent times do not need to read it repeatedly, and it will be retrieved from memory instead. The specific number of preset query records can be adjusted according to actual needs, and there is no limit here.

[0088] In the above embodiments, after receiving a blacklist query from the client server, the data node obtains the blacklist data from the business platform corresponding to the data node and extracts all the organization names in the blacklist to form a data subset. Then, the data node randomly selects a preset number of query data from the data subset and encrypts these data to convert them into corresponding hash values, thus forming a hash subset. By extracting a portion of the data and encrypting it, the client server compares the target hash value with the hash values ​​in the hash subset to obtain the query result. This method can improve data security while improving data processing efficiency.

[0089] The following is combined with Figure 4 The illustrated embodiment provides a detailed description of the method for determining whether a current session object exists in the session pool according to this application: Please see Figure 4 This is a flowchart illustrating a method for determining whether a current session object exists in the session pool in an embodiment of this application.

[0090] S401. The client server sends the first session identifier and the preset number of query records to each data node; After the client generates the first session identifier corresponding to the query request, the client server sends the first session identifier corresponding to this query request and the preset number of query records to each data node. The preset number of query records here is the number of query records that the client server requests from each data node each time.

[0091] It should be noted that the above-mentioned preset number of query records is set in advance. The client can read it from the configuration file, and it only needs to read from the configuration file the first time it is used. Subsequent times do not need to read it repeatedly, and it will be retrieved from memory instead. The specific number of preset query records can be adjusted according to actual needs, and there is no limit here.

[0092] S402. The first data node determines whether there is a first session object corresponding to the first session identifier in the preset maintenance session pool; After the client server sends the first session identifier and the preset number of query records to each data node, the first data node determines whether a first session object corresponding to the first session identifier exists in the preset maintenance session pool. If a first session object corresponding to the first session identifier exists in the preset maintenance session pool, step S403 is executed; if a first session object corresponding to the first session identifier does not exist in the preset maintenance session pool, step S404 is executed.

[0093] It should be noted that the preset maintenance session pool stores the session objects corresponding to the session identifiers. Each query request has a corresponding session identifier and session object. The session objects are stored in the preset maintenance session pool. When the query is completed, the session objects corresponding to the query request stored in the session pool will be cleared.

[0094] S403. The first data node reads the updated first data subset from the first session object, determines the updated first data subset as the current first data subset, and executes the step of randomly extracting a preset number of query data from the current first data subset to obtain the updated first data subset. If a first session object corresponding to the first session identifier exists in the preset maintenance session pool, the first data node reads the updated first data subset from the first session object, determines the updated first data subset as the current first data subset, and executes step S309.

[0095] For ease of explanation, the above steps use one data node as an example. In reality, there may be several data nodes, which is not limited here.

[0096] S404. The first data node creates a first session object corresponding to the first session identifier in the preset maintenance session pool, and performs the step of randomly extracting a preset number of query data from the current first data subset to obtain the updated first data subset; If there is no first session object corresponding to the first session identifier in the preset maintenance session pool, the first data node creates a first session object corresponding to the first session identifier in the preset maintenance session pool and executes step S309.

[0097] S405. Place the updated first data subset into the first session object.

[0098] After the first data node randomly selects a preset number of query records from the current first data subset to obtain the updated first data subset, the first data node puts the updated first data subset into the first session object.

[0099] In the above embodiments, by creating a session identifier corresponding to the query request and a session object corresponding to the session identifier, each query request and feedback data can be identified, which can help the system identify and distinguish different sessions, maintain the continuity of session states, and thus improve the efficiency and performance of the system.

[0100] The following is combined with Figure 5 The illustrated embodiments provide a detailed description of the method for constructing a query dictionary in this application: Please see Figure 5 This is a flowchart illustrating the process of constructing a query dictionary in an embodiment of this application.

[0101] S501, The client server combines the hash subsets sent by each data node into the total hash set for this time; To make it easier to understand, let's take an example: Suppose that the current client server receives the first hash subset and the second hash subset sent by data node A and data node B respectively, and the client server summarizes the first hash subset and the second hash subset into the current hash set.

[0102] S502. The client server removes duplicate hash values ​​from the current hash set to obtain the current deduplicated hash set; When an organization is on the blacklist of multiple business platforms, there will be duplicate data in the current hash set. Duplicate data will affect data processing efficiency and waste storage space. Therefore, the client server performs a deduplication operation on the data in the current hash set to obtain the current deduplicated hash set.

[0103] S503. The client server uses the hash values ​​in the current deduplication hash set as an index to build a query dictionary.

[0104] After deduplicating the data in the hash set, the client server uses each hash value in the deduplicated hash set as an index to build a query dictionary.

[0105] In the above embodiments, removing duplicate data when building the query dictionary can save storage space, improve query efficiency, and increase the accuracy of query results.

[0106] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

[0107] As used in the above embodiments, depending on the context, the term "when..." can be interpreted as meaning "if...", "after...", "in response to determining...", or "in response to detecting...". Similarly, depending on the context, the phrase "when determining..." or "if (the stated condition or event) is interpreted as meaning "if determining...", "in response to determining...", "when (the stated condition or event) is detected", or "in response to detecting (the stated condition or event)".

[0108] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented, in whole or in part, as a computer program product. This computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive), etc.

[0109] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. This program can be stored in a computer-readable storage medium, and when executed, it can include the processes described in the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as ROM or random access memory (RAM), magnetic disks, or optical disks.

Claims

1. A cryptographic-based multi-party privacy query method for a joint blacklist, applied to a cryptographic-based multi-party privacy query system for a joint blacklist, wherein the cryptographic-based multi-party privacy query system for a joint blacklist includes several business platform servers for providing blacklists and several financing platforms for querying whether the queried institution exists in the blacklist, characterized in that, The cryptography-based joint blacklist multi-party privacy query system further includes several data nodes, one-to-one corresponding to a client server and a business platform server. The method includes: the client server receiving a query request containing the name of the institution to be queried from a current financing platform, where the current financing platform is any one of several financing platforms; the client server converting the name of the institution to be queried into a first hash value; the client server sending a blacklist query request to each data node; and the client server receiving a current hash subset sent by each data node, where the current hash subset includes a first hash subset sent by a first data node, and the first hash subset is generated by the first data node. The client server extracts a preset number of institution names from a first data subset and converts them into corresponding hash values. The first data subset includes all institution names in the first blacklist obtained by the first data node from the corresponding first business platform server. The client server combines the hash subsets sent by each data node into a hash set, which includes hash values ​​corresponding to multiple institution names. If it is determined that the hash set includes the first hash value, the client server sends a first feedback message to the current financing platform, which indicates that the institution name to be queried exists in the blacklist of the business platform server. After the step of the client server sending blacklist query requests to each data node, the method further includes: the first data node obtaining a first blacklist from the corresponding first business platform server; the first data node extracting all organization names from the first blacklist to establish a first data subset; the first data node randomly selecting a preset number of query entries from the current first data subset to obtain an updated first data subset, wherein the number of data entries in the updated first data subset is a preset number of query entries less than the number of data entries in the current first data subset; and the first data node converting the preset number of query entries into corresponding hash values ​​to obtain a first hash subset. After the client server combines the current hash subsets sent by each data node into the current hash set, the method further includes: if it is determined that the current hash set does not include the first hash value, the client server sends a continue query request to each data node; after receiving the continue query request, the first data node performs the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset.

2. The method according to claim 1, characterized in that, After the client server receives a query request containing the name of the institution to be queried from the current financing platform, the method further includes: the client server generating a first session identifier corresponding to the query request; the client server sending the first session identifier and a preset number of query records to each data node; the first data node determining whether a first session object corresponding to the first session identifier exists in a preset maintenance session pool; if no first session object corresponding to the first session identifier exists in the preset maintenance session pool, the first data node creating a first session object corresponding to the first session identifier in the preset maintenance session pool, and performing the step of randomly extracting a preset number of query records from the current first data subset to obtain an updated first data subset; the first data node placing the updated first data subset into the first session object; the step of determining... If the first hash value is not included in the current hash set, after the step of the client server sending a continued query request to each data node, the method further includes: the client server determining that the continued query request corresponds to the first session identifier; the client server sending the first session identifier and a preset number of query records to each data node; the first data node determining whether there is a first session object corresponding to the first session identifier in the preset maintenance session pool; if there is a first session object corresponding to the first session identifier in the preset maintenance session pool, the first data node reads the updated first data subset from the first session object, determines the updated first data subset as the current first data subset, and executes the step of the first data node randomly extracting a preset number of query records from the current first data subset to obtain the updated first data subset.

3. The method according to claim 1, characterized in that, After the client server receives the current hash subset sent by each data node, the method further includes: the client server determining whether the current hash subset is an empty set; if the current hash subset is an empty set, the client server sends a second feedback message to the current financing platform, the second feedback message indicating that the name of the institution to be queried does not exist in the blacklist of any business platform server.

4. The method according to claim 1, characterized in that, After the step of the client server combining the current hash subsets sent by each data node into the current hash set, the method further includes: the client server establishing a query dictionary based on the current hash set; and the step of the client server sending first feedback information to the current financing platform when it is determined that the current hash set includes the first hash value, specifically including: when it is determined that the query dictionary includes the first hash value, the client server sending first feedback information to the current financing platform, wherein the first feedback information is used to indicate that the name of the institution to be queried exists in the blacklist of the business platform.

5. The method according to claim 4, characterized in that, The client server establishes a query dictionary based on the current hash set, specifically including: the client server removing duplicate hash values ​​from the current hash set to obtain the current deduplicated hash set; and the client server using each hash value in the current deduplicated hash set as an index to establish the query dictionary.

6. A cryptographic-based multi-party privacy query system for a joint blacklist, the system comprising several business platform servers for providing blacklists and several financing platforms for querying whether a queried institution exists on the blacklist, characterized in that, The cryptography-based joint blacklist multi-party privacy query system further includes several data nodes, one-to-one correspondence between a client server and a business platform server. The client server includes: a receiving module for receiving a query request containing the name of the institution to be queried, sent by the current financing platform (which can be any one of several financing platforms); an encryption module for converting the name of the institution to be queried into a first hash value; a first sending module for sending the blacklist query request to each data node; and a receiving module for receiving the current hash subset sent by each data node, wherein the current hash subset includes the first hash subset sent by the first data node, and the first hash subset is generated by the first data node. The system extracts a preset number of institution names from a first data subset and converts them into corresponding hash values. The first data subset includes all institution names in the first blacklist obtained by the first data node from the corresponding first business platform server. The aggregation module combines the hash subsets sent by each data node into a hash set, which includes hash values ​​corresponding to multiple institution names. The second sending module sends a first feedback message to the current financing platform when it is determined that the hash set includes the first hash value. The first feedback message indicates that the institution name to be queried exists in the blacklist of the business platform server. The system further includes: a first data node obtaining a first blacklist from a corresponding first business platform server; the first data node extracting all organization names from the first blacklist to establish a first data subset; the first data node randomly selecting a preset number of query records from the current first data subset to obtain an updated first data subset, wherein the number of data records in the updated first data subset is a preset number of query records less than the number of data records in the current first data subset; and the first data node converting the preset number of query records into corresponding hash values ​​to obtain a first hash subset. The system further includes: if it is determined that the first hash value is not included in the current hash set, the client server sends a continue query request to each data node; after receiving the continue query request, the first data node randomly extracts a preset number of query data from the current first data subset to obtain the updated first data subset.

7. An electronic device, characterized in that, include: One or more processors and a memory; the memory is coupled to the one or more processors, the memory being used to store computer program code, the computer program code including computer instructions, the one or more processors invoking the computer instructions to cause the electronic device to perform the method as described in any one of claims 1-5.

8. A computer-readable storage medium comprising instructions, characterized in that, When the instructions are executed on an electronic device, the electronic device causes the electronic device to perform the method as described in any one of claims 1-5.

Citation Information

Patent Citations

  • Browser security query method based on privacy protection

    CN114844678A

  • Information hiding tracing query method and system based on block chain and casual transmission expansion

    CN116010401A