User tracking method and device
The user equipment obtains some seeds from the first server and the second server to generate initial seeds, which solves the problems of poor seed randomness and insufficient privacy protection in contact tracing, realizes the uniqueness and timeliness of anonymous identification, and ensures the security of user privacy.
Patent Information
- Application Number
- CN202110479452.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-04-30
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2041-04-30
AI Technical Summary
In the prior art, in contact tracing, there are problems such as poor randomness of user equipment's autonomous seed generation, insufficient privacy protection, inability to track contacts in a timely manner, and the risk of privacy leakage.
The user equipment obtains part of the seeds from the first server and the second server to generate initial seeds, generates anonymous identifiers, and jointly broadcasts the seed information of the confirmed user equipment by the server, protecting user privacy through encryption and hash functions.
It improves the privacy protection reliability of contact tracing, avoids the randomness caused by the user equipment's autonomous generation of seeds, ensures the uniqueness and timeliness of anonymous IDs, and protects user privacy.
Smart Images

Figure CN115278540B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to fields such as user tracking, and in particular to a user tracking method and device. Background Art
[0002] People who have close contact with someone infected with a virus, such as COVID-19, face a higher risk of infection and the potential to further infect others. Close monitoring of these contacts will help provide care and treatment for the contacts and prevent them from spreading the virus to others. Contact tracing is the process of identifying, evaluating, and managing people who have been exposed to a disease to prevent further spread of the disease. Contact tracing can cut off the chain of transmission of infectious diseases and is an essential public health tool for controlling infectious disease outbreaks.
[0003] Based on this, how to conduct contact tracing is a technical problem that needs to be solved urgently. Summary of the Invention
[0004] The embodiments of the present application provide a method and apparatus for user tracking and a solution for contact tracing.
[0005] In a first aspect, a method for user tracking is provided, wherein a user device obtains an encrypted first seed from a first server, and the first server allows the identification of the user device to be known. The user device obtains an encrypted second seed from a second server; the second server does not allow the identification of the user device to be known. Then, the user device generates an initial seed based on the decrypted first seed and the decrypted second seed. Next, the user device broadcasts the anonymous identification of the user device, wherein the anonymous identification of the user device is generated based on the initial seed. That is, the initial seed is used to generate the anonymous identification of the user device. Optionally, the user device can also decrypt the first seed and the second seed to obtain the decrypted first seed and the decrypted second seed.
[0006] For example, the first server can be understood as a server of a medical institution, and the second server can be understood as a cloud server.
[0007] In the first aspect, a user device generates an anonymous ID based on an initial seed and broadcasts the anonymous ID. This facilitates other user devices that encounter the user device to record the anonymous ID of the user device. If the user device is diagnosed, other user devices can use the recorded anonymous IDs of the user devices they encounter to determine whether they are contacts of the diagnosed user device.
[0008] In addition, since the initial seed is not generated autonomously by the user device, but is generated based on a portion of the seed obtained from the second server and the first server respectively, even if the confirmed user device is unable to submit the seed in time, the second server and the first server can jointly obtain the seed information of the confirmed user device for broadcasting, and promptly track the contacts of the confirmed user device.
[0009] The initial seed is generated based on a portion of the seed obtained from the second server and the first server respectively. Distributing privacy protection to the second server and the first server can improve the reliability of privacy protection.
[0010] The initial seed is generated based on a portion of the seeds obtained from the second server and the first server respectively. The generated initial seed has good randomness and does not cause a situation where two user devices use the same anonymous ID set.
[0011] When a user device retrieves a portion of the initial seed from the second server, the second server is unaware of the user device's true identity, thus protecting user privacy. Furthermore, during the seed retrieval process, the seed is encrypted and decrypted by the user device, preventing malicious access to the seed by other devices and thus protecting user privacy.
[0012] In a possible implementation, the user equipment sends a confirmation message to the second server and / or the first server, where the confirmation message is used to indicate that the user equipment is a confirmed user equipment. The confirmation message is specifically used to indicate that the user equipment determines that the user equipment is a confirmed user equipment.
[0013] The user device proactively reports that it has been diagnosed, so that the second server and / or the first server broadcasts the seed information of the confirmed user device to achieve rapid tracking.
[0014] In one possible implementation, the confirmation message includes but is not limited to: seed information and / or a first confirmation identifier. The seed information is generated based on the initial seed, and the seed information is used to generate an anonymous identifier for the user device. The first confirmation identifier may occupy one or more bits. For example, when one bit is 1, it indicates that the user device is a confirmed user device. The user device may explicitly inform the second server and / or the first server that the user device has been diagnosed through the first confirmation identifier. The user device may also implicitly inform the second server and / or the first server that the user device has been diagnosed by reporting the seed information. Alternatively, the user device informs the second server and / or the first server of both the seed information and the confirmation identifier to express that the user device has been diagnosed.
[0015] In one possible implementation, when the user device obtains the encrypted first seed from the first server, the user device first sends a first request message to the first server, where the first request message includes the user device identifier encrypted using the first server's public key. The user device then receives a first response message from the first server, where the first response message includes the first seed encrypted using the user device's public key.
[0016] The first request message includes the identifier of the user device encrypted using the public key of the first server. The first server can decrypt the identifier of the user device encrypted using the public key of the first server, so that the first server can obtain the identifier of the user device. Other devices outside the first server (such as the second server) cannot obtain the identifier of the user device, which can both track the user device and protect the privacy of the user device.
[0017] In addition, when the first server feeds back the first seed to the user device, the first seed is encrypted, and other devices other than the first server and the user device cannot know the first seed, which can further protect the privacy of the user device.
[0018] In one possible implementation, the first request message also includes a temporary public key of the user device; the first seed encrypted using the user device's public key and included in the first response message is the first seed encrypted using the temporary public key of the user device. Temporary public keys have a shorter validity period than permanent public keys. Encrypting the first seed with the temporary public key can further protect the privacy of the user device.
[0019] In one possible implementation, when the user device obtains the encrypted second seed from the second server, the user device first sends a second request message to the second server, where the second request message includes the processed identifier of the user device. The user device then receives a second response message from the second server, where the second response message includes the second seed encrypted using the public key of the user device.
[0020] The "identity of the processed user device" here must meet the following conditions: the second server or other devices cannot know the identity of the user device to protect user privacy.
[0021] In addition, when the second server feeds back the second seed to the user device, the second seed is encrypted, and other devices other than the second server and the user device cannot know the second seed, which can further protect the privacy of the user device.
[0022] In a possible implementation, the processed identifier of the user equipment is: the identifier of the user equipment encrypted by using the public key of the first server; or a hash value of the identifier of the user equipment.
[0023] In one possible implementation, the second request message also includes a temporary public key of the user device; and the second seed encrypted using the public key of the user device and included in the second response message is the second seed encrypted using the temporary public key of the user device. Temporary public keys have a shorter validity period than permanent public keys. Encrypting the second seed with the temporary public key can further protect the privacy of the user device.
[0024] In one possible implementation, the initial seed complies with the following formula: ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the initial seed, Hash is a hash operation, ID is the identifier of the user device, Seed1 is the decrypted first seed, Seed2 is the decrypted second seed, and OneWayfunction is an irreversible one-way function. OneWayfunction can be a Hash, HMAC, or KDF (Key Derivation Function), etc.
[0025] In the second aspect, a method for user tracking is provided, wherein a second server sends an encrypted second seed to a user device, and the second seed is used to generate an anonymous identifier of the user device; and the second server stores: an association relationship between the identifier of the user device and the second seed encrypted with the public key of the first server; and the second server is not allowed to obtain the identifier of the user device. Then, the second server receives a confirmation message from the user device, and the confirmation message includes: the identifier of the user device encrypted with the public key of the first server; wherein, the confirmation message is used to indicate (the user device determines) that the user device is a confirmed user device, and the identifier of the user device encrypted with the public key of the first server is used to search for the second seed in the association relationship. Next, the second server sends a confirmation verification request to the first server, and the confirmation verification request includes: the identifier of the user device encrypted with the public key of the first server; wherein, the confirmation verification request is used to instruct the first server to determine whether the user device is a confirmed user device. Furthermore, the second server receives a confirmed verification response from the first server, the confirmed verification response including: a processed first seed; wherein the confirmed verification response is used to indicate to the first server that the user device is a confirmed user device, the first seed is a seed obtained by the user device from the first server, and the identifier of the user device encrypted using the public key of the first server is used by the first server to search for the first seed. The second server broadcasts the first seed information of the confirmed user device, the first seed information is determined based on the second seed and the processed first seed, and the first seed information is used to generate an anonymous identifier for the user device.
[0026] It should be noted that the first seed information is different from the first seed. The first seed information includes the initial seed or the daily seed generated by the initial seed. The first seed information here is determined by the second server.
[0027] In the second aspect, the user device reports to the second server that it has been diagnosed, and the second server verifies to the first server whether the user device is a confirmed user device. In the case that the user device is a confirmed user device, the first server processes the first seed sent by the first server to the user device (the second server or other device cannot directly obtain the first seed, which can protect the privacy of the user device), and sends it to the second server. So that the second server can generate the seed information of the confirmed user device based on the second seed sent to the user device by the second server and the processed first seed, and then broadcast the seed information to find the contacts of the confirmed user device. In addition, when the user device reports to the second server that it has been diagnosed, the second server cannot recognize the identifier of the user device, which can protect the privacy of the user device.
[0028] In a possible implementation, before the second server broadcasts the first seed information of the confirmed user equipment, it may also generate the initial seed based on the second seed and the processed first seed; wherein the first seed information is generated based on the initial seed.
[0029] In a possible implementation, the initial seed conforms to the following formula: ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the initial seed, (Hash(ID||Seed1) is the processed first seed, Hash is a hash operation, ID is an identifier of the user device, Seed2 is the second seed, and OneWayfunction is an irreversible one-way function. OneWayfunction can be Hash, HMAC, or KDF (Key Derivation Function), etc.
[0030] In a possible implementation, the confirmation message further includes second seed information; before the second server broadcasts the first seed information of the confirmed user equipment, it may also be determined that the second seed information is consistent with the first seed information.
[0031] It should be noted that the second seed information is different from the second seed. The second seed information is the seed information reported by the user device and is used to generate the anonymous identifier of the user device. The first seed information is the seed information determined by the second server. By comparing the first seed information with the second seed information, the second server can more accurately determine whether the user device is a confirmed user device.
[0032] In a third aspect, a method for user tracking is provided, wherein a first server sends an encrypted first seed to a user device, wherein the first seed is used to generate an anonymous identifier of the user device; and the first server stores an association between the identifier of the user device and the first seed; and the first server allows the identifier of the user device to be known. Next, the first server receives a confirmation verification request from a second server, wherein the confirmation verification request includes: the identifier of the user device encrypted using the public key of the first server; wherein the confirmation verification request is used to instruct the first server to determine whether the user device is a confirmed user device; the identifier of the user device encrypted using the public key of the first server is used by the first server to search for the first seed in the association relationship (for example, the first server first decrypts the identifier of the user device to obtain the identifier of the user device, and then searches for the first seed based on the stored association relationship). Further, the first server decrypts the identifier of the user device and determines that the user device is a confirmed user device. Furthermore, the first server sends a confirmation verification response to the second server, wherein the confirmation verification response includes: the processed first seed; wherein the confirmation verification response is used to instruct the first server to determine that the user device is a confirmed user device.
[0033] In the third aspect, the second server verifies with the first server whether the user device is a confirmed user device. If the user device is a confirmed user device, the first server processes the first seed sent by the first server to the user device (the second server or other devices cannot directly obtain the first seed to protect the privacy of the user device) and sends it to the second server. The second server generates seed information of the confirmed user device based on the second seed sent by the second server to the user device and the processed first seed, and then broadcasts the seed information to find contacts of the confirmed user device.
[0034] In a fourth aspect, a method for user tracking is provided, in which the second server is not allowed to know the identity of the user device. The second server sends an encrypted second seed to the user device, and the second seed is used to generate an anonymous identity of the user device. In addition, the second server stores the association relationship between the processed identity of the user device and the second seed. The second server receives relevant information of the user device from the first server, and the relevant information includes: the identity of the processed user device and the processed first seed, the first seed is the seed obtained by the user device from the first server, the identity of the processed user device is used by the second server to search for the second seed in the association relationship, and the relevant information is used to indicate that the user device is a confirmed user device. Then, the second server broadcasts the seed information of the user device, and the seed information is used to generate an anonymous identity of the user device, and the seed information is determined based on the second seed and the processed first seed.
[0035] The first server informs the second server of the confirmed user device and informs the confirmed user device of the first seed obtained from the first server. In this way, the second server can generate the seed information of the confirmed user device based on the first seed obtained by the confirmed user device from the first server and the second seed obtained by the user device from the second server, and then broadcast the seed information to find the contacts of the confirmed user device. When the first server sends the first seed to the second server, it processes the first seed and prevents the second server or other devices from directly obtaining the first seed, thereby protecting the privacy of the user device. The "identification of the processed user device" here must meet the conditions: the second server or other device cannot know the identification of the user device to protect the privacy of the user. The second server cannot identify the identification of the user device, thereby protecting the privacy of the user device.
[0036] In a possible implementation, the processed identifier of the user equipment includes: the identifier of the user equipment encrypted by using the public key of the first server; or a hash value of the identifier of the user equipment.
[0037] In one possible implementation, the seed information conforms to the following formula: ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the seed information, Hash(ID||Seed1) is the processed first seed, Hash is a hash operation, ID is the identifier of the user device, Seed2 is the second seed, and OneWayfunction is an irreversible one-way function. OneWayfunction can be a Hash, HMAC, or KDF (Key Derivation Function), etc.
[0038] In a fifth aspect, a method for user tracking is provided, in which a first server allows the identification of the user device to be known. The first server sends an encrypted first seed to the user device, and the first seed is used to generate an anonymous identification of the user device. Then, the first server sends relevant information of the user device to the second server, and the relevant information includes: the processed identification of the user device and the processed first seed, the processed identification of the user device is used by the second server to search for a second seed, and the second seed is the seed obtained by the user device from the second server; the second seed and the processed first seed are used to generate an anonymous identification of the user device, and the relevant information is used to indicate that the user device is a confirmed user device.
[0039] The first server informs the second server of the confirmed user device and informs the confirmed user device of the first seed obtained from the first server. In this way, the second server can generate the seed information of the confirmed user device based on the first seed obtained by the confirmed user device from the first server and the second seed obtained by the user device from the second server, and then broadcast the seed information to find the contacts of the confirmed user device. When the first server sends the first seed to the second server, it processes the first seed and prevents the second server or other devices from directly obtaining the first seed, thereby protecting the privacy of the user device. The "identification of the processed user device" here must meet the conditions: the second server or other device cannot know the identification of the user device to protect the privacy of the user. The second server cannot identify the identification of the user device, thereby protecting the privacy of the user device.
[0040] In one possible example, after the first server sends the encrypted first seed to the user device, it stores the association between the identifier of the user device and the first seed, so that when it is determined that the user device is a confirmed user device, the first seed can be found according to the identifier of the user device.
[0041] In a sixth aspect, a method for user tracking is provided, in which a first server allows the identification of the user device to be known. First, (for example, when a certain user device is determined to be a confirmed user device) the first server sends the identification of the processed user device to the second server, and the identification of the user device is used by the second server to find the second seed obtained by the user device from the second server. Then, the first server receives the second seed from the second server. Next, the first server generates an initial seed based on the second seed and the first seed obtained by the user device from the first server. Furthermore, the first server broadcasts seed information, the seed information is generated based on the initial seed, and the seed information is used to generate an anonymous identification of the user device.
[0042] The first server obtains from the second server: the second seed obtained by the confirmed user device from the second server. The first server generates an initial seed in combination with the first seed obtained by the confirmed user device from the first server, and broadcasts the seed information generated by the initial seed in order to find the contacts of the confirmed user device. When the first server requests the second seed from the second server, it processes the identifier of the user device. The "identifier of the processed user device" here must meet the following conditions: the second server or other devices cannot know the identifier of the user device to protect the privacy of the user device.
[0043] In a possible implementation, the processed identifier of the user equipment includes: the identifier of the user equipment encrypted by using the public key of the first server; or a hash value of the identifier of the user equipment.
[0044] In one possible implementation, before the first server sends the identifier of the processed user device to the second server, it can also receive a confirmation message from the user device, the confirmation message including: the identifier of the user device encrypted using the public key of the first server; wherein the confirmation message is used to indicate that the user device is a confirmed user device. Next, the first server decrypts the identifier of the user device and determines that the user device is a confirmed user device based on the decrypted identifier of the user device. For example, the first server stores a list of confirmed persons, and the first server can determine whether the user device is a confirmed user device based on the identifier of the user device.
[0045] The user device reports to the first server that it has been diagnosed, and then the first server cooperates with the second server to broadcast the seed information of the confirmed user device.
[0046] In a possible implementation, the initial seed conforms to the following formula: ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the initial seed, Seed1 is the first seed, Hash is a hash operation, ID is the identifier of the user device, Seed2 is the second seed, and OneWayfunction is an irreversible one-way function.
[0047] In one possible implementation, before the first server sends the processed user device identifier to the second server, the first server may also send an encrypted first seed to the user device, where the first seed is used to generate the anonymous identifier of the user device. Furthermore, the first server stores the association between the user device identifier and the first seed, so that the first server can subsequently search for the first seed based on the user device identifier.
[0048] The seventh aspect below is similar to the second aspect. The similarities include: the second server verifies with the first server whether the user device is a confirmed user device. The differences include: in the second aspect, the second server determines and broadcasts the seed information based on the processed first seed fed back by the first server and the second seed sent to the user device by the second server; in the seventh aspect, the user device reports the seed information, and the second server broadcasts the seed information reported by the user device.
[0049] In the seventh aspect, a method for user tracking is provided, in which the second server is not allowed to obtain the identifier of the user device. The second server receives a confirmation message from the user device, and the confirmation message includes: seed information and the identifier of the user device encrypted with the public key of the first server; wherein the confirmation message is used to indicate (the user device determines) that the user device is a confirmed user device. Next, the second server sends a confirmation verification request to the first server, and the confirmation verification request includes: the identifier of the user device encrypted with the public key of the first server; wherein the confirmation verification request is used to indicate the first server to determine whether the user device is a confirmed user device. Then, the second server receives a confirmation verification response from the first server; wherein the confirmation verification response is used to indicate the first server to determine that the user device is a confirmed user device. Furthermore, the second server broadcasts the seed information.
[0050] In an eighth aspect, a method for user tracking is provided, wherein a first server receives a confirmation verification request from a second server, the confirmation verification request including: an identifier of the user device encrypted using a public key of the first server; wherein the confirmation verification request is used to instruct the first server to determine whether the user device is a confirmed user device;
[0051] The first server decrypts the identifier of the user equipment and determines that the user equipment is a confirmed user equipment;
[0052] The first server sends a confirmed verification response to the second server, where the confirmed verification response is used to instruct the first server to determine that the user equipment is a confirmed user equipment.
[0053] In a ninth aspect, the first server receives a confirmation message from the user device, the confirmation message including: an identifier and seed information of the user device encrypted using a public key of the first server; wherein the confirmation message is used to indicate that the user device is a confirmed user device;
[0054] The first server decrypts the identifier of the user equipment and broadcasts the seed information when determining that the user equipment is a confirmed user equipment based on the decrypted identifier of the user equipment.
[0055] In a tenth aspect, a communication device is provided, wherein the device has the functions of implementing the above-mentioned various aspects and any possible implementations of each aspect. These functions can be implemented by hardware or by hardware executing corresponding software implementations. The hardware or software includes one or more functional modules corresponding to the above-mentioned functions.
[0056] In the eleventh aspect, a communication device is provided, comprising a processor, and optionally, a memory; the processor and the memory are coupled; the memory is used to store computer programs or instructions; the processor is used to execute part or all of the computer programs or instructions in the memory, and when the part or all of the computer programs or instructions are executed, it is used to implement the functions of the user equipment in the method of the first aspect and any possible implementation of the first aspect, or to implement the functions of the second server in the second aspect, fourth aspect, seventh aspect and any possible implementation, or to implement the functions of the first server in the third aspect, fifth aspect, sixth aspect, eighth aspect, ninth aspect and any possible implementation.
[0057] In one possible implementation, the apparatus may further include a transceiver configured to transmit a signal processed by the processor or receive a signal input to the processor. The transceiver may perform the transmitting or receiving action performed by the user equipment in the first aspect and any possible implementation of the first aspect; or perform the transmitting or receiving action performed by the second server in the second, fourth, or seventh aspects and any possible implementation; or perform the transmitting or receiving action performed by the first server in the third, fifth, sixth, eighth, or ninth aspects and any possible implementation.
[0058] In the twelfth aspect, the present application provides a chip system, which includes one or more processors (also referred to as processing circuits), and the processors are electrically coupled to a memory (also referred to as a storage medium); the memory may be located in the chip system or not in the chip system; the memory is used to store computer programs or instructions; the processor is used to execute part or all of the computer programs or instructions in the memory, and when the part or all of the computer programs or instructions are executed, it is used to implement the functions of the user equipment in the method of the above-mentioned first aspect and any possible implementation of the first aspect, or to implement the functions of the second server in the above-mentioned second aspect, fourth aspect, seventh aspect and any possible implementation, or to implement the functions of the first server in the above-mentioned third aspect, fifth aspect, sixth aspect, eighth aspect, ninth aspect and any possible implementation.
[0059] In a possible implementation, the chip system may further include an input / output interface (also referred to as a communication interface), the input / output interface being used to output the signal processed by the processor or to receive the signal input to the processor. The input / output interface may execute the sending action or receiving action executed by the user device in the first aspect and any possible implementation of the first aspect; or, execute the sending action or receiving action executed by the second server in the second aspect, the fourth aspect, the seventh aspect and any possible implementation; or, execute the sending action or receiving action executed by the first server in the third aspect, the fifth aspect, the sixth aspect, the eighth aspect, the ninth aspect and any possible implementation. Specifically, the output interface executes the sending action, and the input interface executes the receiving action.
[0060] In a possible implementation, the chip system may be composed of a chip, or may include a chip and other discrete devices.
[0061] In a thirteenth aspect, a computer-readable storage medium is provided for storing a computer program, wherein the computer program includes instructions for implementing functions in various aspects and any possible implementation of each aspect.
[0062] Alternatively, a computer-readable storage medium is used to store a computer program, which, when executed by a computer, can enable the computer to execute the method executed by the user device in the above-mentioned first aspect and any possible implementation of the first aspect, or execute the method executed by the second server in the above-mentioned second aspect, fourth aspect, seventh aspect and any possible implementation, or execute the method executed by the first server in the above-mentioned third aspect, fifth aspect, sixth aspect, eighth aspect, ninth aspect and any possible implementation.
[0063] In the fourteenth aspect, a computer program product is provided, comprising: a computer program code, which, when executed on a computer, enables the computer to execute the method executed by the user device in the first aspect and any possible implementation of the first aspect, or execute the method executed by the second server in the second, fourth, seventh and any possible implementations, or execute the method executed by the first server in the third, fifth, sixth, eighth and ninth aspects and any possible implementations.
[0064] In a fifteenth aspect, a communication system is provided, comprising a second server executing the method of the second aspect and any possible implementation of the second aspect and a first server executing the method of the third aspect and any possible implementation of the third aspect. Alternatively, the communication system comprises a second server executing the method of the fourth aspect and any possible implementation of the fourth aspect and a first server executing the method of the fifth aspect and any possible implementation of the fifth aspect. Alternatively, the communication system comprises a second server executing the method of the seventh aspect and any possible implementation of the seventh aspect and a first server executing the method of the eighth aspect and any possible implementation of the eighth aspect.
[0065] The technical effects of the above-mentioned tenth to fifteenth aspects can refer to the descriptions in the first to ninth aspects, and the repeated parts will not be repeated. BRIEF DESCRIPTION OF THE DRAWINGS
[0066] Figure 1 A schematic diagram of a user tracking process provided in an embodiment of the present application;
[0067] Figure 2 A schematic diagram of a process for a user device to obtain a seed and generate an anonymous ID provided in an embodiment of the present application;
[0068] Figure 3 A schematic diagram of generating an anonymous ID from an initial seed provided in an embodiment of the present application;
[0069] Figure 4 A schematic diagram of a user tracking process provided in an embodiment of the present application;
[0070] Figure 5 A schematic diagram of a user tracking process provided in an embodiment of the present application;
[0071] Figure 6 A schematic diagram of a user tracking process provided in an embodiment of the present application;
[0072] Figure 7 A schematic diagram of a user tracking process provided in an embodiment of the present application;
[0073] Figure 8 A diagram of a user tracking device provided in an embodiment of the present application;
[0074] Figure 9 A diagram of a user tracking device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0075] To facilitate understanding of the embodiments of the present application, some terms used in the embodiments of the present application are explained below to facilitate understanding by those skilled in the art.
[0076] 1) Asymmetric cryptography, a type of cryptographic algorithm, requires a pair of keys: a private key (a secret key that is not made public) and a public key (a secret key that is made public). Knowing one of the keys cannot determine the other.
[0077] Information encrypted with a user's encryption key can only be decrypted with that user's decryption key.
[0078] If the encryption key is public, the decryption key is a private key that can be used to upload encrypted data to the owner of the private key. This is called public key encryption.
[0079] If the decryption key is public, the encryption key is a private key. Information encrypted with a private key can be decrypted with a public key, allowing the recipient to verify the integrity and accuracy of the data or file published by the party holding the private key (encryption key). This ensures that the data or file originated from the party holding the private key (encryption key). This is called a digital signature, and the public key takes the form of a digital certificate. For example, installers downloaded from the internet typically carry the program creator's digital signature, proving that the program was indeed published by the creator (or company) and not forged or tampered with by a third party.
[0080] Common public key encryption algorithms include: RSA (from the initials of the algorithm's inventors Rivest, Shmir, and Adleman), ElGamal, Knapsack algorithm, Rabin (a special case of RSA), and elliptic curve cryptography (ECC).
[0081] 2) Signature: Use the private key to encrypt the summary of the text to be transmitted. The resulting ciphertext is called the signature of the transmission process.
[0082] 3) Signature Verification: The data receiver receives the transmitted text and verifies that it is authentic to the sender and has not been tampered with. The receiver decrypts the signature using its own public key (data encrypted with one key in a key pair can be decrypted with the other), obtaining a digest of the text. The digest is then calculated using the same algorithm used by the sender (e.g., a hashing algorithm) and compared with the decrypted digest. If the two are identical, the text has not been tampered with.
[0083] To facilitate understanding of the embodiments of the present application, the application scenarios of the present application are introduced below. The network architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. Ordinary technicians in this field can know that with the emergence of new business scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems.
[0084] People who have close contact with people infected with a virus (such as COVID-19) face a higher risk of infection and may further infect others. Close observation of these contacts will help provide care and treatment for the contacts and prevent the contacts from further transmitting the virus to others. Contact tracing is a process of finding, evaluating and managing people exposed to a disease to prevent the continued spread of the disease. Implementing contact tracing can cut off the chain of transmission of infectious diseases and is an essential public health tool for controlling infectious disease outbreaks. Contact tracing for a virus (such as COVID-19) requires identifying people who may have been exposed to the virus (such as COVID-19) and following up from the last exposure time point to an earlier time for X days, such as 14 days, or 21 days, etc., where X is an integer greater than or equal to 2.
[0085] When conducting contact tracing, for example, the following Option 1 or Option 2 may be adopted.
[0086] Solution 1 (often referred to as DP3T): The user device automatically generates an initial seed, then uses it to generate today's seed. Today's seed is then used to derive today's anonymous identity document (ID) set (hereinafter referred to as simply the identity, i.e., the user device's ID). Today's seed is then used to derive tomorrow's seed, and tomorrow's seed is used to derive tomorrow's anonymous ID set, and so on.
[0087] When user devices meet, they broadcast (for example, via Bluetooth) their own anonymous IDs, and the user devices that meet record each other's anonymous IDs in their own databases. Once a user device is diagnosed, the confirmed user device can upload the anonymous ID generation seed (i.e., initial seed) on the Xth day before the diagnosis to the cloud. The cloud can broadcast the initial seed of the confirmed user device to other user devices involved in contact tracing. Other user devices use the initial seed to deduce the anonymous ID set for X days, and then compare the deduced anonymous ID set with the anonymous ID database they have met to determine whether they have come into contact with the confirmed user device.
[0088] Solution 2 (the method for deriving tomorrow's seed is different from Solution 1): The user device automatically generates an initial seed, then uses the initial seed to generate today's seed, and then uses today's seed to derive today's anonymous ID set. The initial seed is then used to derive tomorrow's seed, and tomorrow's seed is used to derive tomorrow's anonymous ID set, and so on.
[0089] When user devices meet, they broadcast (for example, via Bluetooth) their own anonymous IDs, and the user devices that meet record each other's anonymous IDs in their own databases. Once a user device is diagnosed, the confirmed user device can upload to the cloud the anonymous ID generation seeds for X days before the diagnosis (that is, today's seed, tomorrow's seed, etc., and the seeds for each day are generally different). The cloud can broadcast the seeds of the confirmed user device (for example, X seeds) to other user devices involved in contact tracing. Other user devices use the seeds to deduce the anonymous ID set for X days, and then compare the deduced anonymous ID set with the anonymous ID database they have met to determine whether they have come into contact with the confirmed user device.
[0090] It's understandable that in both Schemes 1 and 2, the confirmed user device uploads a torrent, rather than an anonymous ID for X days. This is because uploading an anonymous ID requires more communication, while uploading a torrent requires less communication. Furthermore, the anonymous ID broadcast by the user device can be different every day, for example, a different anonymous ID can be broadcast every 15 or 30 minutes. This prevents the user device ID from being deduced from the anonymous ID (the user device ID can be used as an input parameter when generating the anonymous ID), allowing the user device to be located and prevent privacy leaks.
[0091] The differences between Option 1 and Option 2 include: The derivation method for tomorrow's seed is different. Option 1 derives today's seed from yesterday's seed, requiring only uploading an initial seed from X days before the infection date; while Option 2 derives daily seeds from the initial seed, requiring uploading X seeds from the past X days.
[0092] Both Solution 1 and Solution 2 above may have one or more of the following problems:
[0093] 1. Since the user's device automatically submits the seed after the diagnosis, if the confirmed user's device is lost, or the confirmed user faints or is not with the confirmed user's device, the seed cannot be submitted in time, and the contacts of the confirmed user's device cannot be tracked in time.
[0094] 2. There may also be users who are not diagnosed and maliciously submit seeds, disrupting social order.
[0095] 3. User devices independently generate initial seeds, but due to their limited capabilities, the randomness of the generated initial seeds is poor. Different user devices may generate the same initial seeds, resulting in the same anonymous ID set, making it impossible to accurately track contacts.
[0096] 4. The user device ID is deduced from the anonymous ID (the user device ID can be used as an input parameter when generating the anonymous ID) and the user device is located, but user privacy cannot be guaranteed.
[0097] 5. The cloud obtains the real identity information of the user's device, which makes the cloud vulnerable to attacks and cannot ensure user privacy.
[0098] Based on this, this application proposes a variety of technical solutions that can achieve traceability while ensuring user privacy.
[0099] The scheme will be described in detail below with reference to the accompanying drawings. The features or contents marked with dotted lines in the accompanying drawings can be understood as optional operations or optional structures of the embodiments of the present application.
[0100] Among the various technical solutions proposed in this application, the main members are the cloud, medical authority (MA) and user equipment (Device).
[0101] For example, the cloud can be understood as a device or server that provides cloud services for contact tracing software. In this application, the cloud is not allowed to know the ID of the user's device to avoid user privacy leakage.
[0102] For example, the medical institution MA can be a hospital or a medical official. In this application, the medical institution is allowed to obtain the ID of the user device to achieve tracking.
[0103] For example, user devices can be understood as user devices that have contact tracing software installed, such as mobile terminals (MT), handheld devices with wireless connectivity, mobile phones, tablet computers, laptop computers, PDAs, mobile internet devices (MID), wearable devices, virtual reality (VR) devices, augmented reality (AR) devices, etc.
[0104] It is understandable that the cloud and medical institutions in this application are just a descriptive example proposed to facilitate the understanding of contact tracing under the epidemic, and should not limit the functions of the device or entity. For example, the medical institution can replace the first server, and the first server allows the identification of the user device to be known. For example, the cloud can be replaced by the second server, and the second server does not allow the identification of the user device to be known. This application can also be applied to other application scenarios, such as anonymous communication and contact tracing scenarios under anonymous chat software. In other application scenarios, confirmed user device can be understood as: target user device; confirmed can be understood as: determined as the target; confirmed user device can be understood as: determined as the target user device; confirmed message can be understood as: determined as the target message; confirmed identifier can be understood as: determined as the target identifier. Confirmed indication information can be understood as: determined as target indication information, etc.
[0105] For ease of understanding, the following example uses the first server as a medical institution and the second server as a cloud as an example.
[0106] like Figure 1 As shown, the various technical solutions proposed in this application are first introduced. Figure 1 The following steps are involved:
[0107] Step 11: The user device obtains a partial initial seed from the cloud.
[0108] Step 12: The user equipment obtains a partial initial seed from the medical institution MA.
[0109] Step 13: The user equipment generates an initial seed based on the two partial seeds obtained in steps 11 and 12.
[0110] Step 14: The user device generates a today's seed based on the initial seed generated in step 13.
[0111] For example, based on the initial seed and the ID of the user device, a today's seed is generated. This application does not limit the process of generating today's seed based on the initial seed.
[0112] Step 15: The user device deduces today's anonymous ID set based on the today's seed generated in step 14.
[0113] For example, using the deduction method described in Solution 1 above, first use the initial seed to generate today's seed, then use today's seed to deduce today's anonymous ID set. Then use today's seed to deduce tomorrow's seed, and use tomorrow's seed to deduce tomorrow's anonymous ID set, and so on.
[0114] For another example, using the deduction method described in Solution 2 above, the initial seed is used to generate today's seed, and today's anonymous ID set is deduced using today's seed. The initial seed is then used to deduce tomorrow's seed, and tomorrow's anonymous ID set is deduced using tomorrow's seed, and so on.
[0115] Step 16: The confirmed user device actively uploads its own confirmed diagnosis to the cloud. For example, the confirmed user device can also upload the anonymous ID generation seed X days before the diagnosis to the cloud.
[0116] When user devices meet, they broadcast their anonymous IDs, and the encountering user devices record each other's anonymous IDs in their own databases. Once a user device is diagnosed, the method described in Solution 1 above can be used to upload the anonymous ID generation seed (i.e., initial seed) from the X days before the diagnosis to the cloud; or, the method described in Solution 2 above can be used to upload the anonymous ID generation seed (i.e., today's seed, tomorrow's seed, etc.) from the X days before the diagnosis to the cloud.
[0117] Step 17: The Cloud may decide whether to investigate the authenticity of the confirmed user's device, or the authenticity of the seed uploaded by the confirmed user's device. If the Cloud decides to investigate, it may initiate an investigation, for example, by obtaining from the medical institution MA: another portion of the initial seed obtained by the confirmed user's device from the medical institution.
[0118] Step 18: The cloud can broadcast the seed information (such as the initial seed or the daily seed) of the confirmed user device to other user devices of the contact tracing.
[0119] Step 19: The medical institution MA broadcasts the seed information (such as the initial seed or daily seed) of the confirmed user device to other user devices of the contact tracing system.
[0120] It is understandable that the above step 16 is an optional step. Furthermore, the above step 17 is also an optional step. Figure 1 This is just an example. In the above example, the confirmed user device actively uploads the confirmed information to the cloud, and the cloud verifies the confirmed user device. In other examples, the confirmed user device can also upload the confirmed information to the medical institution MA. Alternatively, without the active upload of the confirmed user device, the medical institution MA can actively determine which user device is the confirmed user device. In addition, the medical institution MA can verify the seed information of the confirmed user device. For example, the medical institution MA can obtain from the cloud: another part of the initial seed obtained by the confirmed user device from the cloud, so that the medical institution can verify the initial seed of the confirmed user device and broadcast the seed information of the confirmed user device (such as the initial seed, or the daily seed).
[0121] In one example, one or more of the above steps 18 and 19 can be selected for execution, and one of the cloud and the medical institution can also broadcast the seed information of the confirmed user device.
[0122] The technical solution provided in this application includes but is not limited to the following beneficial effects:
[0123] 1. Because the initial seed is not generated autonomously by the user device, but rather based on a subset of seeds obtained from both the cloud and the medical institution, even if the confirmed user device is unable to submit the seed in a timely manner, the cloud and the medical institution can jointly obtain the seed information of the confirmed user device and broadcast it, allowing for timely tracking of the confirmed user device's contacts. Furthermore, medical institutions can proactively determine which user device is the confirmed user device, eliminating the need for the confirmed user device to independently report its diagnosis, allowing for timely tracking of the confirmed user device's contacts.
[0124] 2. The cloud and medical institutions can jointly verify the authenticity of the confirmed user's device to avoid situations where an undiagnosed user is mistakenly identified as a confirmed user, or the seed information submitted by the confirmed user's device is inaccurate.
[0125] 3. If the initial seed is obtained from the cloud or a medical institution, a single device can directly obtain the initial seed, making privacy protection difficult. However, the initial seed of this application is generated based on a portion of the seed obtained from both the cloud and the medical institution. This distributes privacy protection across both devices, improving the reliability of privacy protection. Furthermore, by generating the initial seed based on a portion of the seed obtained from both the cloud and the medical institution, the generated initial seed is more random, preventing two user devices from using the same anonymous ID set.
[0126] 4. In step 17 above, when the cloud obtains the other part of the initial seed of the confirmed user device from the medical institution, the medical institution will not explicitly tell the cloud this part of the initial seed. Instead, it will process this part of the initial seed through an algorithm (for example, Hash(ID||Seed1)) before telling the cloud. This prevents the cloud from obtaining the complete initial seed and deducing the user device ID from the anonymous ID (when generating the anonymous ID, the user device ID can be used as an input parameter), locating the user device, and leaking user privacy. (Hash(ID||Seed1) is the hash value generated by combining the user device ID and seed Seed1 (hereinafter referred to as the first seed).
[0127] 5. In the above step 11, when the user device obtains some initial seeds from the cloud, the cloud does not know the true identity of the user device, which can ensure user privacy.
[0128] Next, combine Figure 2 、 Figure 4 、 Figure 5 、 Figure 6 and Figure 7 , a detailed introduction to the various technical solutions provided in this application. In multiple examples, it is assumed that the cloud (i.e., the second server), the medical institution MA (i.e., the first server), and the user device (Device) all have public keys and private keys.
[0129] Figure 2 The example introduces that the user device obtains a part of the seed from the medical institution and the cloud respectively, and then determines the initial seed and anonymous ID set based on the two parts of the seed obtained. Figure 1 Detailed description of steps 11 to 15 in the.
[0130] Figure 4The example introduces that the user device reports a confirmed diagnosis to the cloud. The cloud works with the medical institution to verify whether the user device is diagnosed and broadcasts the seed information of the confirmed user device.
[0131] Figure 5 The example describes how a medical institution notifies the cloud of confirmed user devices, and the cloud broadcasts seed information of the confirmed user devices.
[0132] Figure 6 The example introduces the integration of medical institutions and the cloud to determine the seed information of confirmed user devices, and the medical institutions broadcast the seed information of confirmed user devices.
[0133] Figure 7 The example introduces that a user device reports a confirmed diagnosis message to a medical institution. The confirmed diagnosis message includes seed information. After verifying that the user device has been diagnosed, the medical institution broadcasts the seed information reported by the user device.
[0134] Next, combine Figure 2 , the process of obtaining two parts of seeds for the user device and determining the initial seed and anonymous ID set (i.e. Figure 1 The seed obtained by the user device from the medical institution (ie, the first server) is called the first seed, and the seed obtained from the cloud (ie, the second server) is called the second seed.
[0135] Examples include:
[0136] The user device obtains an encrypted first seed from a medical institution and obtains an encrypted second seed from a cloud; wherein the medical institution is allowed to know the identity of the user device, and the cloud is not allowed to know the identity of the user device;
[0137] The user equipment generates an initial seed according to the decrypted first seed and the decrypted second seed;
[0138] The user equipment broadcasts the anonymous identifier of the user equipment, wherein the anonymous identifier of the user equipment is generated according to the initial seed.
[0139] Figure 2 The following steps are involved:
[0140] Step 21: The user equipment sends a first request message to the medical institution. Correspondingly, the medical institution receives the first request message from the user equipment, where the first request message is used to instruct to obtain seed information.
[0141] In one example, the first request message includes: the identifier En(hPK, ID) of the user device encrypted using the public key of the medical institution.
[0142] It is understood that to prevent other devices from obtaining the user device's ID, the user device can send a processed user device identifier to the medical institution when requesting a seed from the medical institution. The "processed user device identifier" here must meet the following conditions: other devices outside the medical institution cannot recognize the user device identifier, while the medical institution can recognize the user device identifier. Based on this, En(hPK, ID) is only an example that meets this condition. In the first request message, En(hPK, ID) can be replaced with another "processed user device identifier" that meets this condition.
[0143] The first request message may further include one or more of the following:
[0144] The temporary public key ePK generated by the user equipment uses the private key of the user equipment to sign the request message Sig_D and the timestamp Timestamp.
[0145] The timestamp is used to indicate the time when the first request message is sent.
[0146] The first request message may be referred to as an initial seed request message, for example.
[0147] Step 22: The medical institution generates a first seed Seed1 for the user device. Furthermore, the medical institution stores (or establishes) an association between the ID (decrypted) of the user device and the first seed Seed1.
[0148] The medical institution may decrypt the “identification of the processed user equipment, such as En(hPK, ID)” in the first request message to obtain the ID of the user equipment.
[0149] In one possible example, before executing step 22, the medical institution may first check whether the time interval between the timestamp carried in the first request message and the time interval for receiving the first request message is within a preset time difference range. If so, step 22 is executed. If not, the first request message may be deemed to have been tampered with, and the first request message may be discarded.
[0150] Step 23: The medical institution sends a first response message to the user equipment. Correspondingly, the user equipment receives the first response message from the medical institution.
[0151] The first response message includes: a first seed encrypted using the public key of the user device. For example, the first seed encrypted using the temporary public key of the user device (En(ePK, Seed1) described above, or the first seed encrypted using the (permanent) public key of the user device. The temporary public key has a shorter validity period than the permanent public key. Encrypting the first seed using the temporary public key can further protect the privacy of the user device.
[0152] In order to prevent other devices besides the medical institution and the user device from knowing the first seed, the first seed can be encrypted. Other devices besides the medical institution and the user device cannot know the first seed, which can also further protect the privacy of the user device.
[0153] Optionally, the first response message also includes: a signature Sig_MA of the first response message using the private key of the medical institution.
[0154] The first response message may be called a seed response message, for example.
[0155] Step 24: The user device sends a second request message to the cloud. Correspondingly, the cloud receives the second request message from the user device, where the second request message is used to instruct to obtain seed information.
[0156] The second request message includes: the identifier of the processed user device, where the "identifier of the processed user device" must meet the condition that the cloud or other devices cannot know the identifier of the user device to protect user privacy.
[0157] In one example, the processed identifier of the user device is: the identifier En(hPK, ID) of the user device encrypted using the public key of the medical institution, then the second request message includes: the identifier En(hPK, ID) of the user device encrypted using the public key of the medical institution.
[0158] In another example, the processed identifier of the user equipment is: a hash value Hash(ID) of the identifier of the user equipment, and the second request message includes: a hash value Hash(ID) of the identifier of the user equipment.
[0159] Optionally, the second request message further includes one or more of the following:
[0160] The temporary public key ePK generated by the user equipment uses the private key of the user equipment to sign the request message Timestamp and timestamp Timestamp.
[0161] The timestamp is used to indicate the time when the second request message is sent. The time when the second request message is sent in step 24 may be the same as or different from the time when the first request message is sent in step 21.
[0162] The second request message may be called an initial seed request message, for example.
[0163] Step 25: The cloud generates a second seed Seed2 for the user equipment. Further, the cloud stores (or establishes) an association between the processed identifier of the user equipment included in the second request message and the second seed Seed2.
[0164] In one example, the cloud stores an association relationship between the identifier En(hPK, ID) of the user device and the second seed Seed2 encrypted with the public key of the medical institution.
[0165] In another example, the cloud stores an association relationship between the hash value Hash(ID) of the identifier of the user device and the second seed Seed2.
[0166] In one possible example, before executing step 25, the cloud may first check whether the time interval between the timestamp carried in the second request message and the time interval for receiving the second request message is within a preset time difference range. If so, step 25 is executed. If not, the second request message may be considered to have been tampered with, and the second request message may be discarded.
[0167] Step 26: The cloud sends a second response message to the user equipment. Correspondingly, the user equipment receives the second response message from the cloud.
[0168] The second response message includes: a second seed encrypted with the public key of the user device. For example, the second seed encrypted with the temporary public key of the user device (En(ePK, Seed2) described above, or the second seed encrypted with the (permanent) public key of the user device. In order to prevent other devices besides the cloud and the user device from knowing the second seed, the second seed can be encrypted. Other devices besides the cloud and the user device cannot know the second seed, which can also further protect the privacy of the user device.
[0169] Optionally, the second response message further includes: a signature Sig_C of the second response message using the private key of the cloud.
[0170] The second response message may be called a seed response message, for example.
[0171] The order in which the user device obtains the first seed from the medical institution and the second seed from the cloud is not restricted. In this example, steps 23 and 22 are performed after step 21, and steps 25 and 26 are performed after step 24. The order of the remaining steps is not restricted.
[0172] Step 27a: The user device uses the private key of the user device (corresponding to the public key in step 23) to decrypt the encrypted first seed (for example, (En(ePK, Seed1)) in the first response message received in step 23 to obtain the first seed Seed1.
[0173] In a possible example, before executing step 27a, the user equipment may perform signature verification on the first response message. If the verification passes, step 27a is executed. If the verification fails, the subsequent process is not limited in this application.
[0174] There is no restriction on the order of step 27a and the remaining steps.
[0175] Step 27b: The user device uses the private key of the user device (corresponding to the public key in step 26) to decrypt the encrypted second seed (e.g., (En(ePK, Seed2)) in the second response message received in step 26 to obtain the second seed Seed2.
[0176] In a possible example, before executing step 27b, the user equipment may perform signature verification on the second response message. If the verification passes, step 27b is executed. If the verification fails, the subsequent process is not limited in this application.
[0177] There is no restriction on the order of step 27b and the remaining steps.
[0178] Step 28: The user device generates an initial seed ISeed based on the first seed Seed1 obtained from the medical institution and the second seed Seed2 obtained from the cloud. The initial seed is used to generate the anonymous ID of the user device.
[0179] The generation method is as follows, or it can be understood that the initial seed meets the following formula requirements:
[0180] Initial seed ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2); where ISeed is the initial seed, Hash is a hash operation, ID is the identifier of the user device, Seed1 is the first seed obtained by the user device from the medical institution, Seed2 is the second seed obtained by the user device from the cloud, and the irreversible one-way function OneWayfunction can be Hash, HMAC, or KDF (Key Derivation Function), etc.
[0181] Step 29: The user device generates an anonymous ID set based on the initial seed ISeed (anonymous ID generation based on the ISeed) and broadcasts the anonymous ID.
[0182] The present application does not limit the method for generating anonymous IDs. For example, the method described in the above solution 1, the method described in the above solution 2, or the method in the prior art can be used. Figure 3 As shown, based on the initial seed ISeed and date and time parameters, a cryptographic one-way function (such as Hash, HAMC, KDF, etc.) can be used to generate the today's seed. Then, based on the today's seed and time and date parameters, a cryptographic one-way function can be used to deduce today's anonymous ID set, such as anonymous ID1, anonymous ID2, anonymous ID3, etc. These anonymous IDs are independent of each other. The daily seed cannot be deduced from the anonymous IDs, as the daily seed changes every day. The initial seed cannot be deduced from the daily seed either.
[0183] Next, combine Figure 4 This paper details the process of a user device reporting a diagnosis to the cloud, the cloud working with a medical institution to verify whether the user device has been diagnosed, and the cloud broadcasting the seed information of the confirmed user device. This application does not limit the process of how the user device learns of its own diagnosis.
[0184] Figure 4 The following steps are involved:
[0185] Step 41: The user device sends a confirmation message to the cloud (ie, the second server). Correspondingly, the cloud (ie, the second server) receives the confirmation message from the user device.
[0186] The confirmation message is used to indicate that the user equipment has been confirmed, or to indicate that the user equipment is a confirmed user equipment, or to indicate that the user equipment determines that the user equipment is a confirmed user equipment.
[0187] The confirmation message includes: the identifier En(hPK, ID) of the user device encrypted with the public key of the medical institution.
[0188] Among them, the identification of the user device is encrypted in the confirmation message in order to prevent the cloud or other devices from knowing the identification of the user device and leaking the privacy of the user device. It can be understood that the confirmation message includes: En(hPK, ID), and the identification of the user device is encrypted by the public key of the medical institution. The medical institution can decrypt the user device to verify whether the user device is truly diagnosed. Based on this, the inclusion of En(hPK, ID) in the confirmation message is only an example. En(hPK, ID) can be replaced by other "identifications of processed user devices". The "identifications of processed user devices" here must meet the following conditions: other devices outside the medical institution cannot recognize the identification of the user device, and the medical institution can recognize the identification of the user device.
[0189] Optionally, the confirmation message may also include but is not limited to: second seed information and / or a confirmation identifier.
[0190] The second seed information and / or the confirmation mark can be collectively referred to as confirmation indication information. That is, the confirmation indication information can include but is not limited to: the second seed information and / or the confirmation mark (report Seed 14 days before confirmation and / or En (hPK, ID)).
[0191] The second seed information is used to generate the anonymous ID of the user device. The second seed information may include, but is not limited to, an initial seed generated by the user device and / or a daily seed generated from the initial seed. For example, it may include a daily seed for each of the X days prior to diagnosis. The initial seed is used to generate the anonymous identifier of the user device. The daily seed is used to generate the anonymous identifier of the user device.
[0192] For example, the confirmation flag may occupy 1 bit, but when 1 bit is 1, it indicates that the user equipment is confirmed (ie, confirmed user equipment); when 1 bit is 0, it indicates that the user equipment is not confirmed (ie, unconfirmed user equipment).
[0193] The user device can explicitly notify the cloud that the user device has been diagnosed using a confirmation indicator. The user device can also implicitly notify the cloud that the user device has been diagnosed by reporting the second seed information. Alternatively, the user device can notify the cloud of both the second seed information and the confirmation indicator.
[0194] Step 42: The cloud may decide whether an investigation is needed or not.
[0195] This step 42 is an optional step.
[0196] In one example, after receiving the confirmation message from the user device, the cloud can directly broadcast the second seed information in the confirmation message, for example, without executing step 42, and directly executing step 47a: the cloud broadcasts the second seed information in the confirmation message in step 41.
[0197] In one example, after receiving the confirmation message from the user device, the cloud can investigate whether the user device is truly confirmed. For example, after step 41, step 42 is ignored, and step 43 and subsequent steps are executed instead.
[0198] In another example, after receiving a confirmation message from a user device, the cloud can proceed to step 42 to determine whether to investigate whether the user device has been truly diagnosed. If an investigation is determined, step 43 and subsequent steps can be executed. If an investigation is not determined, step 47a can be directly executed: the cloud broadcasts the second seed information in the confirmation message from step 41.
[0199] If an investigation is conducted (if yes), the cloud can obtain from the medical institution the first seed Seed1 obtained by the user device from the medical institution based on the processed user device identifier (e.g., En(hPK, ID)) that meets the following conditions: other devices outside the medical institution cannot recognize the user device identifier, while the medical institution can recognize the user device identifier.
[0200] For example, see the following steps:
[0201] Step 43: The cloud sends a confirmation verification request to the medical institution, and the medical institution receives the confirmation verification request from the cloud. The confirmation verification request is used to instruct the medical institution to determine whether the user device is a confirmed user device.
[0202] In one example, the diagnosis verification request includes the user device identifier En(hPK, ID) encrypted using the medical institution's public key. In other examples, En(hPK, ID) can be replaced with a "processed user device identifier" that satisfies the following conditions: other devices outside the medical institution cannot recognize the user device identifier, but the medical institution can recognize the user device identifier.
[0203] The diagnosis verification request is used to request: the first seed Seed1 obtained by the user device from the medical institution, and / or to request verification of whether the user device is diagnosed.
[0204] Step 44: The medical institution sends a confirmation verification response to the cloud, and correspondingly, the cloud receives the confirmation verification response from the medical institution.
[0205] In one example, the medical institution decrypts the identifier of the user device and, when determining that the user device is a confirmed user device, sends the confirmed verification response, where the confirmed verification response message is used to indicate that the user device is a confirmed user device.
[0206] The medical institution can decrypt the processed user device identifier (e.g., En(hPK, ID)) to obtain the user device ID. The medical institution is capable of verifying whether the user device has been diagnosed. For example, the medical institution maintains a database of confirmed user devices. The medical institution can check whether the user device ID is recorded in the database. If so, the user device is confirmed to be a confirmed user device.
[0207] If the user equipment is diagnosed, the diagnosis verification response includes one or more of the following:
[0208] The processed first seed (e.g., Hash(ID||Seed1)), the confirmed enquiry (the enquiry person is confirmed), and the processed user device identifier (e.g., En(hPK, ID)). The processed first seed can be used by the medical institution to generate an initial seed for the user device. (Hash(ID||Seed1) is the hash value generated by combining the user device ID and the first seed Seed1.
[0209] The medical institution does not want the cloud to know the first seed obtained by the user device from the medical institution, so the medical institution can process the first seed before sending it to the cloud. The processing process only needs to ensure that the cloud cannot know the first seed and the cloud can generate an initial seed based on the processed first seed, for example, it can be Hash(ID||Seed1).
[0210] In one possible example, a medical institution can implicitly inform the cloud that the user device has been diagnosed by sending the processed first seed to the cloud. Alternatively, the medical institution can explicitly inform the cloud that the user device has been diagnosed by using a diagnosis indicator. For example, the diagnosis indicator can occupy one bit, but when the bit is 1, it indicates a diagnosis, and when the bit is 0, it indicates an undiagnosed diagnosis. Alternatively, the medical institution can send both the processed first seed and the diagnosis indicator to the cloud.
[0211] In a possible example, the identifier of the processed user device included in the confirmed verification response (e.g., En(hPK, ID)) can be regarded as a reply identifier. If the identifier of the processed user device (e.g., En(hPK, ID)) is not included, the cloud and the medical institution can also know which message the confirmed verification response is a reply to, then the confirmed verification response may not include the identifier of the processed user device (e.g., En(hPK, ID)).
[0212] In an optional example, when the user device is not diagnosed, the medical institution may not send a diagnosis verification response to the cloud. Alternatively, the diagnosis verification response sent by the medical institution to the cloud includes: an undiagnosed identification. The diagnosis verification response does not need to include other information, and of course, it can also include: a processed first seed (for example, Hash(ID||Seed1)), the identifier En(hPK, ID) of the user device encrypted with the public key of the medical institution, etc. For the case where the user device is not diagnosed, this application does not limit the subsequent processing process of the medical institution.
[0213] Optionally, step 45: the cloud generates an initial seed for the user device based on the processed first seed sent by the medical institution and the second seed found out that the user device obtains from the cloud; the initial seed is used to generate an anonymous identifier for the user device.
[0214] exist Figure 2 In step 25, the cloud stores the association between the processed user device identifier (e.g., En(hPK, ID)) and the second seed Seed2. Based on the processed user device identifier (e.g., En(hPK, ID)) in the confirmation message of step 41, the cloud can find the second seed Seed2 obtained by the user device from the cloud (find the corresponding Seed2).
[0215] The method of generating the initial seed in the cloud is similar to Figure 2 The method in which the user equipment generates the initial seed in step 28 is the same.
[0216] For example, the cloud generates the initial seed in the following manner, or the initial seed can be understood as meeting the following formula requirements:
[0217] Initial seed ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2); where (Hash(ID||Seed1) is the processed first seed sent by the medical institution to the cloud, Seed2 is the second seed found in the cloud, and the irreversible one-way function OneWayfunction can be a hash, HMAC, or KDF (Key Derivation Function).
[0218] Optionally, the cloud can also deduce a daily seed based on the initial seed generated by the cloud. In this step, the initial seed generated by the cloud and / or the daily seed generated from the initial seed can be referred to as first seed information.
[0219] If the response message in step 44 does not include the processed first seed (eg, Hash(ID||Seed1)), the cloud does not need to execute step 45, nor does it need to execute steps 46 and 47b subsequently, and can execute step 47a.
[0220] Optionally, step 46: The cloud verifies whether the second seed information in the confirmation message of step 41 is consistent with the first seed information generated by the cloud in step 45 (i.e., the initial seed generated by the cloud and / or the daily seed generated from the initial seed). The first seed information is determined based on the second seed found and the processed first seed obtained from the medical institution. The first seed information is used to generate an anonymous identifier for the user device.
[0221] If the confirmation message in step 41 does not include the second seed information, step 46 does not need to be performed.
[0222] If the confirmation message in step 41 includes the second seed information, step 46 may not be performed and step 47b may be performed.
[0223] If the confirmation message in step 41 includes the second seed information, step 46 may be executed.
[0224] If the verification in step 46 is consistent, the cloud can execute step 47a or step 47b. The effect achieved by executing step 47a and step 47b is the same.
[0225] If the verification in step 46 is inconsistent, this application does not restrict the subsequent process. For example, the cloud may not execute step 47a or step 47b; or the cloud may execute step 47b but not step 47a.
[0226] Step 47a: The cloud sends a broadcast message to broadcast the second seed information in the confirmation message in step 41 (broadcast confirmed seeds to all devices (infected seeds)).
[0227] Step 47b: The cloud sends a broadcast message to broadcast the first seed information generated by the cloud in step 45 (broadcast confirmed seeds to all devices (infected seeds)). For example, the first seed information is the initial seed generated by the cloud in step 45 and / or the daily seed generated from the initial seed, for example, including daily seeds for each of the 14 days.
[0228] In one example, any one of step 47a and step 47b may be performed. There are usually multiple user equipments receiving the broadcast message.
[0229] Furthermore, the broadcast message in step 47a and / or step 47b may also include: a timestamp and / or a signature Sig_C of the broadcast message using a private key in the cloud. Step 47a and / or step 47b may also be understood as: broadcasting confirmed seeds to all devices (infected seeds, timestamp, signature (i.e., broadcast confirmed seeds to all devices (infected seeds, Timestamp, Sig_C)).
[0230] In the above Figure 4 In the example described, step 44, step 45 and step 47b may exist as a single example.
[0231] For example, a medical institution has the ability to know which user devices have been diagnosed, and the medical institution can send these confirmed user devices (one or more) to the cloud, so that the cloud broadcasts the seed information of these confirmed user devices. Figure 5 , for detailed introduction:
[0232] Step 51 (similar to step 44): The medical institution sends relevant information about each user device to the cloud. In response, the cloud receives relevant information about each user device from the medical institution, indicating that the user device is a confirmed user device. The user device can be one or more. The medical institution can send relevant information about the (confirmed) user devices to the cloud in a list format.
[0233] The relevant information of each (confirmed) user device includes but is not limited to: the processed first seed (for example, Hash(ID||Seed1)), the processed identification of the (confirmed) user device. The processed identification of the (confirmed) user device is, for example, the identification En(hPK, ID) of the (confirmed) user device encrypted with the public key of the medical institution, or the hash value Hash(ID) of the identification of the (confirmed) user device. Taking En(hPK, ID) as an example, it can be understood that: the confirmed person (list) is En(hPK, ID), and its corresponding partial seed is Hash(ID||Seed1) (i.e., The confirmedperson(list)is En(hPK, ID)and its corresponding partial seed is Hash(ID||Seed1)).
[0234] Optionally, the relevant information of the (confirmed) user equipment may further include a confirmation identifier (The enquiry personis confirmed).
[0235] For other details, please refer to the description of step 44 and will not be repeated here.
[0236] Step 52 (similar to step 45): The cloud Cloud searches for the corresponding second seed Seed2 stored (i.e., the second seed Seed2 obtained by the user device from the cloud, the storage process is described in detail in the following section) based on the received processed (confirmed) user device identifier (e.g., En(hPK, ID) or Hash(ID)). Figure 2 Step 25).
[0237] Furthermore, the cloud generates an initial seed of the (confirmed) user device based on the processed first seed corresponding to the (confirmed) user device sent by the medical institution and the second seed obtained by the (confirmed) user device from the cloud; the initial seed is used to generate an anonymous identifier of the (confirmed) user device.
[0238] For example, the cloud generates an initial seed in the following manner, or the initial seed can be understood to meet the following formula requirements: initial seed ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2); where (Hash(ID||Seed1) is the processed first seed sent by the medical institution to the cloud, Seed2 is the second seed found by the cloud, and the irreversible one-way function OneWayfunction can be a Hash, HMAC, or KDF (Key Derivation Function), etc.
[0239] Furthermore, the cloud can also deduce daily seeds based on the initial seeds.
[0240] For other details, please refer to the description of step 45 and will not be repeated here.
[0241] Step 53 (same as step 47b): The cloud sends a broadcast message to broadcast the confirmed seeds generated by the cloud in step 52 (broadcast confirmed seeds to all devices (infected seeds)). For example, the initial seed generated by the cloud in step 52 and / or daily seeds generated from the initial seed are broadcast. For example, the daily seeds for each of the 14 days are broadcast.
[0242] Furthermore, the broadcast message in step 53 may also include: a timestamp and / or a signature Sig_C of the broadcast message using a private key in the cloud. Step 53 can be understood as: broadcasting confirmed seeds to all devices (infected seeds, timestamp, signature (i.e., broadcast confirmed seeds to all devices (infected seeds, Timestamp, Sig_C)).
[0243] For other details, please refer to the description of step 47b and will not be repeated here.
[0244] Next, combine Figure 6 , a detailed introduction to the process of combining medical institutions with the cloud to determine the seed information of confirmed user devices and the medical institutions broadcasting the seed information of confirmed user devices:
[0245] Figure 6 The following steps are involved:
[0246] Step 61: The user device sends a confirmation message to the medical institution (ie, the first server). Correspondingly, the medical institution (ie, the first server) receives the confirmation message from the user device.
[0247] Step 61 is an optional step. Even if step 61 is not performed, the medical institution can still determine the confirmed user device.
[0248] Step 61 is similar to step 41. Step 41 is the user device reporting to the cloud (ie, the second server), and step 61 is the user device reporting to the medical institution (ie, the first server).
[0249] The confirmation message is used to indicate that the user equipment has been confirmed (ie, it is a confirmed user equipment).
[0250] The confirmation message includes: the identifier En(hPK, ID) of the user device encrypted with the public key of the medical institution.
[0251] Among them, the identification of the user device is encrypted in the confirmation message in order to prevent other devices (such as the cloud) from knowing the identification of the user device and leaking the privacy of the user device. It can be understood that the confirmation message includes: En(hPK, ID), and the identification of the user device is encrypted by the public key of the medical institution. The medical institution can decrypt the user device to verify whether the user device is truly diagnosed. Based on this, the inclusion of En(hPK, ID) in the confirmation message is only an example. En(hPK, ID) can be replaced by other "identifications of processed user devices". The "identifications of processed user devices" here must meet the following conditions: other devices outside the medical institution cannot recognize the identification of the user device, and the medical institution can recognize the identification of the user device.
[0252] Optionally, the confirmation message may also include but is not limited to: third seed information and / or a confirmation identifier.
[0253] The third seed information and / or confirmation mark can be collectively referred to as confirmation indication information. That is, the confirmation indication information can include but is not limited to: the third seed information and / or confirmation mark (report Seed 14 days before confirmation and / or En (hPK, ID)).
[0254] The third seed information is used to generate the anonymous ID of the user device. The third seed information may include, but is not limited to, an initial seed generated by the user device and / or a daily seed generated from the initial seed. For example, this may include a daily seed for each of the X days prior to diagnosis. The initial seed is used to generate the anonymous identifier of the user device. The daily seed is used to generate the anonymous identifier of the user device.
[0255] For example, the confirmation flag may occupy 1 bit, but when 1 bit is 1, it indicates that the user equipment is confirmed (ie, confirmed user equipment); when 1 bit is 0, it indicates that the user equipment is not confirmed (ie, unconfirmed user equipment).
[0256] The user device can explicitly notify the medical institution of its diagnosis by using the diagnosis indicator. The user device can also implicitly notify the medical institution of its diagnosis by reporting third seed information. Alternatively, the user device can notify the medical institution of both the third seed information and the diagnosis indicator.
[0257] The medical institution can decrypt the "processed user device identifier, such as En(hPK, ID)" in step 61 to obtain the user device ID, thereby verifying whether the user device is a confirmed user device. For example, after determining that the user device in step 61 is a confirmed user device, the subsequent steps are executed. If the user device in step 61 is determined not to be a confirmed user device, the subsequent steps are not restricted.
[0258] It should be noted that even if the user device does not report the diagnosis to the medical institution, the medical institution is still able to know which user devices have been diagnosed. For example, the medical institution maintains a database of confirmed user devices. The medical institution can check whether the user device ID is recorded in the database. If so, the user device is confirmed to be a confirmed user device. Therefore, step 61 may or may not be performed.
[0259] Step 62: After determining the confirmed user device, the medical institution sends the processed identifier of the confirmed user device to the cloud. Correspondingly, the cloud receives the processed identifier of the confirmed user device sent by the medical institution.
[0260] In one example, the processed identifier of the confirmed user device is: the identifier En(hPK, ID) of the confirmed user device encrypted using the public key of the medical institution.
[0261] In one example, the processed identifier of the confirmed user equipment is: a hash value Hash(ID) of the identifier of the confirmed user equipment.
[0262] Here, sending the processed identifier of the confirmed user device is used to obtain from the cloud: a second seed obtained by the confirmed user device from the cloud.
[0263] In one example, the medical institution may also send confirmation identifications to the cloud so that the cloud knows that the user devices corresponding to these identifications have been diagnosed.
[0264] In one example, before sending the processed identification of the confirmed user device to the cloud, the medical institution may also decide whether an investigation is needed. Figure 4 Step 42 in .
[0265] Step 63: The cloud searches for the corresponding second seed Seed2 stored according to the received processed identification of the confirmed user device (e.g., En(hPK, ID) or Hash(ID)) (i.e., the second seed Seed2 obtained by the user device from the cloud. The storage process can be found in Figure 2 Step 25).
[0266] Step 64: The cloud sends to the medical institution: the second seed Seed2 obtained by the confirmed user device from the cloud. Correspondingly, the medical institution receives the second seed obtained by the confirmed user device from the cloud from the cloud.
[0267] In one example, the cloud may also send the processed identifier of the confirmed user device to the medical institution, such as En(hPK, ID) or Hash(ID).
[0268] In one example, the identifier of the processed confirmed user device can be regarded as a reply identifier. If the identifier of the processed user device is not included, the cloud and the medical institution also know which message the second seed is replying to, then the cloud may not send the identifier of the processed confirmed user device to the medical institution.
[0269] Step 65: The medical institution generates an initial seed for the user device based on the second seed Seed2 sent by the cloud and the first seed Seed1 obtained by the user device from the medical institution; the initial seed is used to generate an anonymous identifier for the user device.
[0270] exist Figure 2 In step 23, the medical institution stores the association between the ID of the user device and the first seed Seed1. The medical institution can find the first seed Seed1 obtained by the confirmed user device from the medical institution based on the ID of the confirmed user device (find the corresponding Seed1).
[0271] For example, a medical institution generates an initial seed in the following manner, or the initial seed is understood to meet the following formula requirements:
[0272] Initial seed ISeed = OneWayfunction(Hash(ID||Seed1)||Seed2); Seed2 is the second seed sent by the cloud to the medical institution, and Seed1 is the first seed found by the medical institution. The irreversible one-way function OneWayfunction can be a hash, HMAC, or KDF (Key Derivation Function).
[0273] Optionally, the medical institution may further deduce a daily seed based on the initial seed. In this step, the initial seed generated by the medical institution and / or the daily seed generated from the initial seed may be referred to as fourth seed information.
[0274] Optionally, step 66: the medical institution verifies whether the third seed information in the confirmed message of step 61 and the fourth seed information generated by the medical institution in step 66 (ie, the initial seed generated by the medical institution and / or the daily seed generated from the initial seed) are consistent.
[0275] The fourth seed information is determined based on the first seed found and the second seed obtained from the cloud, and the fourth seed information is used to generate an anonymous identifier of the user device.
[0276] Steps 66, 67a, 67b, and Figure 4 Steps 46, 47a, and 47b performed by the cloud are similar.
[0277] If step 61 is not performed, or if the confirmation message of step 61 does not include the third seed information, step 66 does not need to be performed.
[0278] If the confirmation message of step 61 includes the third seed information, step 66 may not be performed and step 67b may be performed.
[0279] If the confirmation message in step 61 includes the third seed information, step 66 may be executed.
[0280] If the verification in step 66 is consistent, the medical institution can proceed to step 67a or step 67b. The effect achieved by executing step 67a and step 67b is the same.
[0281] If the verification in step 66 is inconsistent, this application does not restrict the subsequent process. For example, the medical institution may not perform step 67a or step 67b; or the medical institution may perform step 67b but not step 67a.
[0282] Step 67a: The medical institution sends a broadcast message to broadcast the third seed information in the confirmed message in step 61 (broadcast confirmed seeds to all devices (infected seeds)).
[0283] Step 67b: The medical institution sends a broadcast message to broadcast the fourth seed information (broadcast confirmed seeds to all devices (infected seeds)) generated by the medical institution in step 65. This information may include the initial seed generated by the medical institution and / or daily seeds generated from the initial seed. For example, this may include daily seeds for each of the 14 days.
[0284] In one example, any one of step 67a and step 67b may be performed. There are usually multiple user equipments receiving the broadcast message.
[0285] Furthermore, the broadcast message in step 67a and / or step 67b may also include: a timestamp and / or a signature Sig_MA of the broadcast message using the private key of the medical institution. This can be understood as broadcasting confirmed seeds (infected seeds, timestamp, signature) to all devices (i.e., broadcasting confirmed seeds to all devices (infected seeds, timestamp, Sig_MA).
[0286] In the above Figure 6 In the example described, step 61 and step 67a may exist as a single example.
[0287] like Figure 7 As shown, the process of a user device reporting a confirmed diagnosis message to a medical institution, in which the confirmed diagnosis message includes seed information, and the medical institution broadcasting the seed information reported by the user device after verifying that the user device has been diagnosed is introduced in detail.
[0288] Figure 7 The following steps are involved:
[0289] Step 71 is the same as step 61 and will not be repeated.
[0290] Step 72: The medical institution may decrypt the "processed user device identification, such as En(hPK, ID)" in step 71 to obtain the ID of the user device, and then verify whether the user device is a confirmed user device.
[0291] After determining that the user equipment in step 71 is a confirmed user equipment, subsequent steps are performed.
[0292] Step 73 is the same as step 67a and will not be repeated.
[0293] The technical solution of this application can achieve the following features:
[0294] Anti-Locking (Anonymous): No single organization can reverse-locate an individual from an anonymous ID.
[0295] Unlinkability: Multiple anonymous IDs of the same person are not linked to each other.
[0296] Auditability: When an investigation is needed, the cloud and hospital can work together to calculate the seed of the confirmed user's device.
[0297] Privacy: The user's real identity information is not obtained by the cloud.
[0298] The preceding text describes the method of the embodiment of the present application. The following text describes the device of the embodiment of the present application. The method and device are based on the same technical concept. Since the principles of the method and device to solve the problem are similar, the implementation of the device and method can refer to each other, and the repeated parts will not be repeated.
[0299] In the embodiments of the present application, the functional modules of the device can be divided according to the above method examples. For example, each function can be divided into various functional modules, or two or more functions can be integrated into one module. These modules can be implemented in the form of hardware or software functional modules. It should be noted that the division of modules in the embodiments of the present application is schematic and is only a logical functional division. Other division methods may be used in specific implementations.
[0300] Based on the same technical concept as the above method, see Figure 8 , provides a schematic structural diagram of a user tracking device 800 (user tracking can also be considered a communication device). The device 800 may include a processing module 810 and, optionally, a receiving module 820a, a sending module 820b, and a storage module 830. The processing module 810 may be connected to the storage module 830, the receiving module 820a, and the sending module 820b, respectively. The storage module 830 may also be connected to the receiving module 820a and the sending module 820b.
[0301] In an example, the above-mentioned receiving module 820a and sending module 820b can also be integrated together and defined as a transceiver module.
[0302] In an example, the apparatus 800 may be a user equipment, or a chip or functional unit applied to the user equipment. The apparatus 800 has any function of the user equipment in the above method, for example, the apparatus 800 can execute the above Figure 1-Figure 7 The method includes steps performed by a user equipment.
[0303] The receiving module 820a may execute the receiving action performed by the user equipment in the above method embodiment.
[0304] The sending module 820b can execute the sending action performed by the user equipment in the above method embodiment.
[0305] The processing module 810 may execute other actions except the sending action and the receiving action among the actions executed by the user equipment in the above method embodiment.
[0306] In an example, the receiving module 820a is configured to obtain an encrypted first seed from a first server and obtain an encrypted second seed from a second server.
[0307] The processing module 810 is configured to generate an initial seed based on the decrypted first seed and the decrypted second seed;
[0308] The sending module 820b is configured to broadcast the anonymous identifier of the device 800, wherein the anonymous identifier of the device 800 is generated according to the initial seed.
[0309] In an example, the sending module 820b is further used to send a confirmation message to the second server and / or the first server, where the confirmation message is used to indicate that the device 800 is a confirmed device 800.
[0310] In an example, the sending module 820b is specifically configured to send a first request message to a first server, where the first request message includes: an identifier of the apparatus 800 encrypted using a public key of the first server;
[0311] The receiving module 820a is further configured to receive a first response message fed back from the first server, where the first response message includes a first seed encrypted using the public key of the apparatus 800 .
[0312] In an example, the sending module 820b is specifically configured to send a second request message to a second server, where the second request message includes: an identifier of the processed device 800;
[0313] The receiving module 820a is further configured to receive a second response message fed back from the second server, where the second response message includes a second seed encrypted using the public key of the apparatus 800 .
[0314] In an example, the storage module 830 may store computer-executable instructions for the method executed by the user equipment, so that the processing module 810 , the receiving module 820 a , and the sending module 820 b execute the method executed by the user equipment in the above example.
[0315] In one example, the device 800 may be a second server, or a chip or functional unit used in the second server. The device 800 has any function of the second server in the above method, for example, the device 800 can execute the above Figure 1-Figure 7 The steps of the method are performed by the second server.
[0316] The receiving module 820a can execute the receiving action performed by the second server in the above method embodiment.
[0317] The sending module 820b can execute the sending action performed by the second server in the above method embodiment.
[0318] The processing module 810 may execute other actions except the sending action and the receiving action among the actions executed by the second server in the above method embodiment.
[0319] In one example, the sending module 820b is configured to send an encrypted second seed to a user device, where the second seed is used to generate an anonymous identifier of the user device;
[0320] The processing module 810 is configured to encrypt the association between the identifier of the user device and the second seed using the public key of the first server; the apparatus 800 is not allowed to obtain the identifier of the user device;
[0321] The receiving module 820a is configured to receive a confirmation message from the user device, the confirmation message including: an identifier of the user device encrypted using the public key of the first server; wherein the confirmation message is used to indicate that the user device is a confirmed user device, and the identifier of the user device encrypted using the public key of the first server is used to search for the second seed;
[0322] The sending module 820b is further configured to send a confirmed verification request to the first server, the confirmed verification request including: the identifier of the user device encrypted using the public key of the first server; wherein the confirmed verification request is used to instruct the first server to determine whether the user device is a confirmed user device;
[0323] The receiving module 820a is further configured to receive a confirmed verification response from the first server, the confirmed verification response including: a processed first seed; wherein the confirmed verification response is used to instruct the first server to determine that the user device is a confirmed user device, the first seed is a seed obtained by the user device from the first server, and the identifier of the user device encrypted using the public key of the first server is used by the first server to search for the first seed;
[0324] The sending module 820b is further configured to broadcast first seed information of the confirmed user equipment, where the first seed information is determined based on the second seed and the processed first seed, and the first seed information is used to generate an anonymous identifier for the user equipment.
[0325] In one example, the processing module 810 is configured to generate the initial seed based on the second seed and the processed first seed; wherein the first seed information is generated based on the initial seed.
[0326] In one example, the confirmation message further includes second seed information, and the second seed information is used to generate an anonymous identifier of the user equipment; the processing module 810 is further used to determine that the second seed information is consistent with the first seed information.
[0327] In one example, the sending module 820b is configured to send an encrypted second seed to a user device, where the second seed is used to generate an anonymous identifier of the user device; and establish an association between the processed identifier of the user device and the second seed; and the apparatus 800 is not allowed to obtain the identifier of the user device;
[0328] The receiving module 820a is configured to receive relevant information about the user device from the first server, the relevant information including: a processed identifier of the user device and a processed first seed, the first seed being a seed obtained by the user device from the first server, the processed identifier of the user device being used by the apparatus 800 to search for the second seed, and the relevant information being used to indicate that the user device is a confirmed user device;
[0329] The sending module 820b is further configured to broadcast seed information of the user equipment, where the seed information is used to generate an anonymous identifier of the user equipment, and the seed information is determined based on the second seed and the processed first seed.
[0330] In an example, the storage module 830 may store computer execution instructions of the method executed by the second server, so that the processing module 810, the receiving module 820a and the sending module 820b execute the method executed by the second server in the above example.
[0331] In an example, the device 800 may be a first server, or a chip or functional unit used in the first server. The device 800 has any function of the first server in the above method, for example, the device 800 can execute the above Figure 1-Figure 7 The steps of the method are performed by the first server.
[0332] The receiving module 820a can execute the receiving action performed by the first server in the above method embodiment.
[0333] The sending module 820b can execute the sending action performed by the first server in the above method embodiment.
[0334] The processing module 810 may execute other actions except the sending action and the receiving action among the actions executed by the first server in the above method embodiment.
[0335] In one example, the sending module 820b is configured to send an encrypted first seed to a user device, where the first seed is used to generate an anonymous identifier of the user device; and establish an association between the identifier of the user device and the first seed; and the apparatus 800 allows the identifier of the user device to be known;
[0336] The receiving module 820a is configured to receive a confirmation verification request from a second server, the confirmation verification request including: an identifier of the user device encrypted using the public key of the apparatus 800; wherein the confirmation verification request is used to instruct the apparatus 800 to determine whether the user device is a confirmed user device; the identifier of the user device encrypted using the public key of the apparatus 800 is used by the apparatus 800 to search for the first seed;
[0337] The processing module 810 is configured to decrypt the identifier of the user equipment and determine that the user equipment is a confirmed user equipment;
[0338] The sending module 820b is used to send a confirmed verification response to the second server, and the confirmed verification response includes: the processed first seed; wherein the confirmed verification response is used to instruct the device 800 to determine that the user equipment is a confirmed user equipment.
[0339] In one example, the sending module 820b sends an encrypted first seed to the user equipment, where the first seed is used to generate an anonymous identifier of the user equipment; the apparatus 800 allows the identifier of the user equipment to be known;
[0340] The sending module 820b sends relevant information of the user device to the second server, and the relevant information includes: the processed identifier of the user device and the processed first seed, the processed identifier of the user device is used by the second server to search for the second seed, and the second seed is the seed obtained by the user device from the second server; the second seed and the processed first seed are used to generate an anonymous identifier of the user device, and the relevant information is used to indicate that the user device is a confirmed user device.
[0341] In one example, the sending module 820b is configured to send an identifier of a processed user device to a second server, where the user device is a confirmed user device, and the identifier of the user device is used by the second server to search for a second seed obtained by the user device from the second server; the apparatus 800 allows the identifier of the user device to be obtained;
[0342] The receiving module 820a is configured to receive the second seed from the second server;
[0343] The processing module 810 is configured to generate an initial seed based on the second seed and the first seed obtained by the user equipment from the apparatus 800;
[0344] The sending module 820b is configured to broadcast seed information, where the seed information is generated according to the initial seed and is used to generate an anonymous identifier for the user equipment.
[0345] In one example, the receiving module 820a is configured to receive a confirmation message from the user equipment, the confirmation message including: an identifier of the user equipment encrypted using a public key of the apparatus 800; wherein the confirmation message is used to indicate that the user equipment is a confirmed user equipment;
[0346] The processing module 810 is configured to decrypt the identifier of the user equipment and determine that the user equipment is a confirmed user equipment according to the decrypted identifier of the user equipment.
[0347] In one example, the sending module 820b is configured to send an encrypted first seed to the user device, where the first seed is used to generate an anonymous identifier of the user device; and to establish an association between the identifier of the user device and the first seed.
[0348] In an example, the storage module 830 may store computer execution instructions of the method executed by the first server, so that the processing module 810, the receiving module 820a and the sending module 820b execute the method executed by the first server in the above example.
[0349] For example, the storage module may include one or more memories, which may be devices in one or more devices or circuits used to store programs or data. The storage module may be a register, cache, or RAM, etc., and the storage module may be integrated with the processing module. The storage module may be a ROM or other type of static storage device that can store static information and instructions, and the storage module may be independent of the processing module.
[0350] The transceiver module may be an input or output interface, a pin or a circuit, etc.
[0351] The above describes the device applied to the user equipment, the device applied to the first server, and the device applied to the second server in the embodiment of the present application. The following describes the possible product forms of the device applied to the user equipment, the device applied to the first server, and the device applied to the second server. It should be understood that any device having the above Figure 8Any form of product with the characteristics of the device applied to the user device, any form of product with the characteristics of the device applied to the first server, and any form of product with the characteristics of the device applied to the second server fall within the scope of protection of this application. It should also be understood that the following description is only for example and should not limit the product form of the device applied to the user device, the product form of the device applied to the first server, and the product form of the device applied to the second server in the embodiments of this application to only these.
[0352] As a possible product form, the device can be implemented by a general bus architecture.
[0353] like Figure 9 As shown, a schematic block diagram of a user tracking (user tracking can also be regarded as a communication device) 900 is provided.
[0354] The apparatus 900 may include a processor 910 and, optionally, a transceiver 920 and a memory 930. The transceiver 920 may be configured to receive programs or instructions and transmit them to the processor 910. Alternatively, the transceiver 920 may be configured to communicate between the apparatus 900 and other communication devices, such as exchanging control signaling and / or service data. The transceiver 920 may be a code and / or data reader / writer, or a signal transmission transceiver between the processor and the transceiver. The processor 910 and the memory 930 are electrically coupled.
[0355] In one example, the apparatus 900 may be a user equipment, or a chip used in the user equipment. It should be understood that the apparatus has any function of the user equipment in the above method, for example, the apparatus 900 can execute the above method. Figure 1-Figure 7 For example, the memory 930 is used to store a computer program; the processor 910 can be used to call the computer program or instructions stored in the memory 930 to execute the method executed by the user equipment in the above example, or to execute the method executed by the user equipment in the above example through the transceiver 920.
[0356] In one example, the device 900 may be a second server, or a chip used in the second server. It should be understood that the device has any function of the second server in the above method, for example, the device 900 can execute the above Figure 1-Figure 7The steps of the method performed by the second server in the example are shown in FIG. For example, the memory 930 is used to store a computer program; the processor 910 can be used to call the computer program or instructions stored in the memory 930 to execute the method performed by the second server in the above example, or to execute the method performed by the second server in the above example through the transceiver 920.
[0357] In one example, the device 900 may be a first server, or a chip used in the first server. It should be understood that the device has any function of the first server in the above method, for example, the device 900 can execute the above Figure 1-Figure 7 The steps of the method performed by the first server in the example are shown in FIG. For example, the memory 930 is used to store a computer program; the processor 910 can be used to call the computer program or instructions stored in the memory 930 to perform the method performed by the first server in the example above, or to perform the method performed by the first server in the example above through the transceiver 920.
[0358] Figure 8 The processing module 810 in can be implemented by the processor 910.
[0359] Figure 8 The receiving module 820a and the sending module 820b in the embodiment can be implemented by the transceiver 920. Alternatively, the transceiver 920 is divided into a receiver and a transmitter, the receiver performs the function of the receiving module, and the transmitter performs the function of the sending module.
[0360] Figure 8 The storage module 830 can be implemented by the memory 930.
[0361] As a possible product form, the device may be implemented by a general-purpose processor (a general-purpose processor may also be referred to as a chip or a chip system).
[0362] In one possible implementation, a general processor implemented in an apparatus applied to a user device or an apparatus of a first server or an apparatus of a second server includes: a processing circuit (a processing circuit may also be referred to as a processor); optionally, it also includes: an input and output interface connected and communicating internally with the processing circuit, and a storage medium (storage medium may also be referred to as a memory), wherein the storage medium is used to store instructions executed by the processing circuit to execute the method executed by the user device or the first server or the second server in the above example.
[0363] Figure 8 The processing module 810 in can be implemented by a processing circuit.
[0364] Figure 8The receiving module 820a and the sending module 820b in the embodiment can be implemented by an input / output interface. Alternatively, the input / output interface is divided into an input interface and an output interface, the input interface performs the function of the receiving module, and the output interface performs the function of the sending module.
[0365] Figure 8 The storage module 830 can be implemented by a storage medium.
[0366] As a possible product form, the device of the embodiment of the present application can also be implemented using the following: one or more FPGAs (field programmable gate arrays), PLDs (programmable logic devices), controllers, state machines, gate logic, discrete hardware components, any other suitable circuits, or any combination of circuits that can perform the various functions described throughout this application.
[0367] The present application also provides a computer-readable storage medium storing a computer program that, when executed by a computer, enables the computer to perform the above-mentioned user tracking method. In other words, the computer program includes instructions for implementing the above-mentioned user tracking method.
[0368] An embodiment of the present application also provides a computer program product, including: computer program code, which, when executed on a computer, enables the computer to execute the user tracking method provided above.
[0369] In addition, the processor mentioned in the embodiments of the present application may be a central processing unit (CPU), a baseband processor, the baseband processor and the CPU may be integrated together or separated, or may be a network processor (NP) or a combination of a CPU and an NP. The processor may further include a hardware chip or other general-purpose processor. The above-mentioned hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) and other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. or any combination thereof. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.
[0370] The memory mentioned in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct RAM bus random access memory (DR RAM). It should be noted that the memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0371] The transceiver mentioned in the embodiments of the present application may include a separate transmitter and / or a separate receiver, or may be an integrated transmitter and receiver. The transceiver may operate under the instructions of a corresponding processor. Optionally, the transmitter may correspond to a transmitter in a physical device, and the receiver may correspond to a receiver in a physical device.
[0372] Those skilled in the art will appreciate that the various method steps and units described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0373] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, or can be electrical, mechanical or other forms of connection.
[0374] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
[0375] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0376] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0377] The term "and / or" in this application describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may represent three situations: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the objects associated with each other are in an "or" relationship. The term "multiple" referred to in this application refers to two or more. In addition, it should be understood that in the description of this application, words such as "first" and "second" are only used to distinguish the description, and cannot be understood as indicating or implying relative importance, nor can they be understood as indicating or implying order.
[0378] Although the preferred embodiments of the present application have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the present application.
[0379] Obviously, those skilled in the art may make various changes and modifications to the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include such modifications and variations.
Claims
1. A method for tracking a user, characterized in that: include: The user device obtains an encrypted first seed from a first server and obtains an encrypted second seed from a second server; wherein the first server is allowed to know the identity of the user device, and the second server is not allowed to know the identity of the user device; The user equipment generates an initial seed according to the decrypted first seed and the decrypted second seed; The user equipment broadcasts the anonymous identifier of the user equipment, wherein the anonymous identifier of the user equipment is generated according to the initial seed.
2. The method according to claim 1, wherein Also includes: The user equipment sends a confirmation message to the second server and / or the first server, where the confirmation message is used to indicate that the user equipment is a confirmed user equipment.
3. The method according to claim 2, wherein The confirmation message includes a confirmation identifier, and the confirmation identifier is used to indicate that the user equipment is a confirmed user equipment.
4. The method according to claim 2 or 3, wherein: The confirmation message further includes seed information, where the seed information is generated according to the initial seed and is used to generate an anonymous identifier of the user equipment.
5. The method according to any one of claims 1 to 3, wherein The user device obtains an encrypted first seed from the first server, including: The user equipment sends a first request message to the first server, where the first request message includes: an identifier of the user equipment encrypted using a public key of the first server; The user equipment receives a first response message fed back from the first server, where the first response message includes: a first seed encrypted by using the public key of the user equipment.
6. The method according to claim 5, wherein The first request message further includes: a temporary public key of the user equipment; The first seed encrypted by using the public key of the user equipment and included in the first response message is: the first seed encrypted by using the temporary public key of the user equipment.
7. The method according to any one of claims 1 to 3, wherein: The user equipment obtains the encrypted second seed from the second server, including: The user equipment sends a second request message to the second server, where the second request message includes: an identifier of the processed user equipment; The user equipment receives a second response message fed back from the second server, where the second response message includes a second seed encrypted by using the public key of the user equipment.
8. The method according to claim 7, wherein The processed identifier of the user equipment includes: the identifier of the user equipment encrypted using the public key of the first server; or A hash value of the identifier of the user equipment.
9. The method according to claim 7, wherein The second request message further includes: a temporary public key of the user equipment; The second seed encrypted by using the public key of the user equipment and included in the second response message is: the second seed encrypted by using the temporary public key of the user equipment.
10. The method according to any one of claims 1 to 3, wherein The initial seed meets the following formula requirements: ISeed=OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the initial seed, Hash is a hash operation, ID is the identifier of the user device, Seed1 is the decrypted first seed, Seed2 is the decrypted second seed, and OneWayfunction is an irreversible one-way function.
11. A method for tracking a user, characterized in that: include: The second server sends an encrypted second seed to the user equipment, where the second seed and the first seed sent by the first server to the user equipment are used by the user equipment to generate an anonymous identifier of the user equipment; and storing an association between the identifier of the user device and the second seed encrypted using the public key of the first server; the first server is allowed to obtain the identifier of the user device, and the second server is not allowed to obtain the identifier of the user device; The second server receives a confirmation message from the user device, the confirmation message including: an identifier of the user device encrypted using the public key of the first server; wherein the confirmation message is used to indicate that the user device is a confirmed user device, and the identifier of the user device encrypted using the public key of the first server is used to search for the second seed in the association relationship; The second server sends a confirmation verification request to the first server, the confirmation verification request including: the identifier of the user device encrypted by the public key of the first server; wherein the confirmation verification request is used to instruct the first server to determine whether the user device is a confirmed user device; The second server receives a confirmed verification response from the first server, the confirmed verification response including: a processed first seed; wherein the confirmed verification response is used to indicate to the first server that the user device is a confirmed user device, the first seed is a seed obtained by the user device from the first server, and the identifier of the user device encrypted using the public key of the first server is used by the first server to search for the first seed; The second server broadcasts first seed information of the confirmed user equipment, where the first seed information is determined according to the second seed and the processed first seed, and the first seed information is used to generate an anonymous identifier of the user equipment.
12. The method according to claim 11, wherein Before the second server broadcasts the first seed information of the confirmed user equipment, the method further includes: The second server generates an initial seed based on the second seed and the processed first seed; wherein the first seed information is generated based on the initial seed.
13. The method according to claim 12, wherein: The initial seed complies with the following formula: ISeed=OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the initial seed, Hash(ID||Seed1) is the processed first seed, Hash is a hash operation, ID is the identifier of the user device, Seed2 is the second seed, and OneWayfunction is an irreversible one-way function.
14. The method according to any one of claims 11 to 13, wherein: The confirmation message further includes second seed information, where the second seed information is used to generate an anonymous identifier of the user equipment; Before the second server broadcasts the first seed information of the confirmed user equipment, the method further includes: It is determined that the second seed information is consistent with the first seed information.
15. A method for tracking a user, characterized in that: include: The first server sends an encrypted first seed to the user equipment, and the first seed and the second seed sent by the second server to the user equipment are used by the user equipment to generate an anonymous identifier of the user equipment; and storing an association between the identifier of the user equipment and the first seed; the first server is allowed to obtain the identifier of the user equipment, and the second server is not allowed to obtain the identifier of the user equipment; The first server receives a confirmation verification request from the second server, the confirmation verification request including: an identifier of the user device encrypted using a public key of the first server; wherein the confirmation verification request is used to instruct the first server to determine whether the user device is a confirmed user device; the identifier of the user device encrypted using the public key of the first server is used by the first server to search for the first seed in the association relationship; The first server decrypts the identifier of the user equipment and determines that the user equipment is a confirmed user equipment; The first server sends a confirmed verification response to the second server, where the confirmed verification response includes: the processed first seed; wherein the confirmed verification response is used to instruct the first server to determine that the user equipment is a confirmed user equipment.
16. A method for tracking a user, characterized in that: include: The second server sends an encrypted second seed to the user equipment, where the second seed and the first seed sent by the first server to the user equipment are used by the user equipment to generate an anonymous identifier of the user equipment; and storing the association relationship between the processed identifier of the user equipment and the second seed; the first server is allowed to obtain the identifier of the user equipment, and the second server is not allowed to obtain the identifier of the user equipment; The second server receives relevant information about the user device from the first server, the relevant information including: an identifier of the processed user device and a processed first seed, where the first seed is a seed obtained by the user device from the first server, the identifier of the processed user device is used by the second server to search for the second seed in the association relationship, and the relevant information is used to indicate that the user device is a confirmed user device; The second server broadcasts seed information of the user equipment, where the seed information is used to generate an anonymous identifier of the user equipment, and the seed information is determined according to the second seed and the processed first seed.
17. The method according to claim 16, wherein The processed identifier of the user equipment includes: the identifier of the user equipment encrypted using the public key of the first server; or A hash value of the identifier of the user equipment.
18. The method according to claim 16 or 17, wherein: The seed information complies with the following formula: ISeed=OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the seed information, Hash(ID||Seed1) is the processed first seed, Hash is a hash operation, ID is the identifier of the user device, Seed2 is the second seed, and OneWayfunction is an irreversible one-way function.
19. A method for tracking a user, characterized in that: include: The first server sends an encrypted first seed to the user equipment, and the first seed and the second seed sent by the second server to the user equipment are used by the user equipment to generate an anonymous identifier of the user equipment; The first server is allowed to obtain the identifier of the user equipment, and the second server is not allowed to obtain the identifier of the user equipment; The first server sends relevant information of the user equipment to the second server, the relevant information including: a processed identifier of the user equipment and the processed first seed, the processed identifier of the user equipment being used by the second server to search for a second seed, the second seed being the seed obtained by the user equipment from the second server; The second seed and the processed first seed are used to generate an anonymous identifier of the user equipment, and the relevant information is used to indicate that the user equipment is a confirmed user equipment.
20. A method for tracking a user, characterized in that: include: The first server sends an encrypted first seed to the user equipment, and the first seed and the second seed sent by the second server to the user equipment are used by the user equipment to generate an anonymous identifier of the user equipment; The first server sends an identifier of the processed user equipment to the second server, where the user equipment is a confirmed user equipment. The identifier of the user equipment is used by the second server to search for a second seed obtained by the user equipment from the second server. The first server is allowed to obtain the identifier of the user equipment, and the second server is not allowed to obtain the identifier of the user equipment; The first server receives the second seed from the second server; The first server generates an initial seed based on the second seed and a first seed obtained by the user equipment from the first server; The first server broadcasts seed information, where the seed information is generated according to the initial seed, and the seed information is used to generate an anonymous identifier of the user equipment.
21. The method according to claim 20, wherein The processed user equipment identifier includes: the identifier of the user equipment encrypted using the public key of the first server; or A hash value of the identifier of the user equipment.
22. The method according to claim 20 or 21, wherein: Before the first server sends the processed identifier of the user equipment to the second server, the method further includes: The first server receives a confirmation message from the user equipment, the confirmation message including: an identifier of the user equipment encrypted using a public key of the first server; wherein the confirmation message is used to indicate that the user equipment is a confirmed user equipment; The first server decrypts the identifier of the user equipment and determines that the user equipment is a confirmed user equipment according to the decrypted identifier of the user equipment.
23. The method according to claim 20 or 21, wherein: The initial seed complies with the following formula: ISeed=OneWayfunction(Hash(ID||Seed1)||Seed2), where ISeed is the initial seed, Seed1 is the first seed, Hash is a hash operation, ID is the identifier of the user device, Seed2 is the second seed, and OneWayfunction is an irreversible one-way function.
24. The method according to claim 20 or 21, wherein Also includes: The first server stores an association between the identifier of the user equipment and the first seed.
25. A communication device, characterized in that: include: A functional module for implementing the method according to any one of claims 1 to 10.
26. A communication device, characterized in that: include: A functional module for implementing the method according to any one of claims 11 to 14 or any one of claims 16 to 18.
27. A communication device, characterized in that: include: A functional module that implements the method according to any one of claims 15, 19, or 20-24.
28. A communication device, characterized in that: comprising a processor; the processor being coupled to a memory; The memory is used to store computer program instructions; The processor is used to execute part or all of the computer program instructions in the memory. When the part or all of the computer program instructions are executed, the processor is used to implement the method according to any one of claims 1 to 10, or implement the method according to any one of claims 11 to 14, or implement the method according to claim 15, or implement the method according to any one of claims 16 to 18, or implement the method according to claim 19, or implement the method according to any one of claims 20 to 24.
29. A computer-readable storage medium, characterized in that Used to store a computer program, the computer program including instructions for implementing the method of any one of claims 1 to 10, or instructions for implementing the method of any one of claims 11 to 14, or instructions for implementing the method of claim 15, or instructions for implementing the method of any one of claims 16 to 18, or instructions for implementing the method of claim 19, or instructions for implementing the method of any one of claims 20 to 24.
30. A computer program product, characterized in that The computer program product includes: computer program code, which, when running on a computer, causes the computer to execute the method according to any one of claims 1 to 10, or the method according to any one of claims 11 to 14, or the method according to claim 15, or the method according to any one of claims 16 to 18, or the method according to claim 19, or the method according to any one of claims 20 to 24.
Citation Information
Patent Citations
Digital signature method, system and device
CN111130803A
Close contact person tracking method, device, storage medium and electronic equipment
CN112069542A