A poi recommendation method without leaking position information
By establishing representative points in the target area and using public and private key encryption technology, combined with a storage proxy machine, the problem of location information leakage during POI acquisition is solved, thus achieving the protection of location information and accurate recommendation of points of interest.
Patent Information
- Application Number
- CN202110976717.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-24
- Publication Date
- 2026-01-02
- Estimated Expiration
- 2041-08-24
AI Technical Summary
Existing technologies can easily leak location information when acquiring Points of Interest (POIs), affecting user privacy and security.
By establishing representative points in the target area, encrypting the points of interest using public and private keys, and protecting the location information using a storage proxy, the server only returns a list of points of interest near the representative points, and the mobile device decrypts the data to obtain the specific point of interest information.
It effectively protects the location information of mobile devices, avoids the leakage of location information, ensures user privacy and security, and only returns information on points of interest near the location, reducing unnecessary data leakage.
Smart Images

Figure CN115718848B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of data processing, in particular to a POI recommendation method without leaking location information. BACKGROUND
[0002] POI is the abbreviation of "Point of Interest", which means "interest point". The interest point is a term in geographic information system, which refers to all geographic objects that can be abstracted as points, especially some geographic entities closely related to people's life, such as schools, banks, restaurants, gas stations, hospitals, supermarkets, etc. The interest point query is to select the corresponding category according to the user's interest, query the relevant POI information, and is one of the basic technologies of location information service, which directly affects the user's service experience. The interest point query first needs to activate a positioning service to obtain the current location, and then activate a window query to get the interest point list. A typical interest point query process is as follows: the user activates a positioning service and sends his own identification code; the positioning service obtains the user's location from the positioning server of the telecom operator and returns the location to the user; the server returns the map according to the request parameters and displays it; start a POI query; the server completes a spatial query and returns the query result to the user. If the user is not satisfied with the query result, he can report the problem and provide the information he knows, and the system generates a record in the database. Such a POI query method will expose the geographic location of the queryer. A large number of users to the same location service provider will enable the location service provider to master a large amount of travel information and gathering habits of the public, which will pose a risk to the safety of the public. Therefore, it is necessary to study how to obtain POI without exposing the user's geographic location to the server.
[0003] For example, Chinese patent CN104280031A, published on January 14, 2015, discloses an interest point navigation system. The interest point information and the interest point information are stored in the interest point database of the network server. The interest point information includes the interest point name and the interest point location information, and the interest point location information includes the interest point longitude coordinate value and the interest point latitude coordinate value. The network server finds the interest point information of the closest interest point to the current location of the mobile electronic device according to the interest point information input by the user using the mobile communication device and the current location information obtained, generates the interest point navigation path information according to the current location information, the interest point information and the pre-stored map data, and transmits the generated interest point navigation path information and the map data corresponding to the interest point navigation path information to the mobile communication device, so as to provide targeted navigation information for the user. The technical scheme cannot solve the problem of leaking location information when obtaining POI. SUMMARY
[0004] The technical problem to be solved by the present application is that there is currently a lack of technology that can keep location information secret when obtaining POI. A POI recommendation method that does not disclose location information is proposed, which can obtain POI information near the location without disclosing location data.
[0005] To solve the above technical problems, the technical solution adopted by the present application is: a POI recommendation method that does not disclose location information, used for a server to recommend POI to a mobile terminal, comprising the following steps: the server establishes N representative points in a target area, discloses the location coordinates and number m of the representative points, m∈[1,N], N is a prime number, the mobile terminal selects a representative point according to positioning data and obtains the number m of the representative point; a storage proxy machine is constructed, the storage proxy machine opens up a plurality of storage spaces, a plurality of discontinuous correlation numbers s are randomly generated for the plurality of storage spaces, s∈[1,N], and are recorded in a proxy address table; the server generates a plurality of pairs of public and private keys (ei, di), wherein i∈[1,n], n≥2, ei*di=k*Φ(N)+1, k is a random positive integer, ei represents a public key, di represents a private key, and Φ() is an Euler function; the mobile terminal asks the storage proxy machine for a correlation number s and asks the server for at least two public keys; the mobile terminal generates an initial vector (m, s, In), In represents an interest type, randomly selects a public key from the at least two public keys provided by the server, and records the selected public key as e1 and the unselected as e2,…,ei; the mobile terminal calculates a feature vector (pow(m,e1) mod N, pow(s,e1) mod N, In), and sends the feature vector to the server; the server uses private keys d1 to dn to decrypt the feature vector, and obtains the correct initial vector (m, s), and the rest of the private keys are decrypted as (mi, si), i∈[2,n]; the server searches for interest points P that meet the interest type In according to the representative point number m and the position of mi, and includes the interest points P that meet the condition in a result set L, and the result set is recorded as Lm and Lmi respectively; the server associates Lm with s and associates Lmi with si, and sends them to the storage proxy machine; the storage proxy machine checks whether s or si is in the proxy address table, if it exists, the corresponding Lm or Lmi is stored in the corresponding storage space, if it does not exist, the received data is discarded directly; the mobile terminal asks the storage proxy machine for the content in the storage space corresponding to the correlation number s, and obtains the interest list Lm.
[0006] As a preferred embodiment, the server encrypts Lm using private key d1 and encrypts Lmi using private key di, and then associates Lm with s and associates Lmi with si, and sends them to the storage proxy machine, and the mobile terminal obtains the encrypted Lm from the storage proxy machine and decrypts it using the public key e1 selected by the mobile terminal to obtain the interest point list Lm and display it to the user.
[0007] As preferred, the point of interest P is a vector (Lp, Ti, Tt, Tag_j, Tag_j+1), Lp is the geographical position of the point of interest, Ti is the name of the point of interest, Tt is the introduction text of the point of interest, Tag_j and Tag_j+1 are a plurality of attribute tag numbers, j is an even number, j∈[0, J], the attribute tag number identifies the attribute tag involved in the point of interest P, if the user clicks to view the point of interest P, Tag_j increases by a preset first step, if the user has made a consumption at the point of interest P, Tag_j increases by a preset second step, if the user selects to hide the point of interest P, Tag_j+1 increases by a preset third step, the mobile terminal stores the values of (Tag_0, Tag_1, Tag_2, …, Tag_J+1) as a preference vector, the initial vector generated by the mobile terminal is (m, s, In, Tag_0, Tag_1, Tag_2, …, Tag_J+1), and the server sorts the interest list Lm and Lmi according to the preference vector obtained by decryption.
[0008] As preferred, the method for the server to sort the interest list Lm or Lmi includes: obtaining the tag group (Tag_j, Tag_j+1) involved in the point of interest P, if Tag_j+1 is greater than a preset threshold, the point of interest is deleted from the interest list Lm or Lmi; calculating the interest score p = a*∑Tag_j - b*∑Tag_j+1, a and b are preset weight coefficients respectively; and sorting the points of interest P in the interest list Lm or Lmi in descending order of the interest score p.
[0009] As preferred, the mobile terminal records the operation records of the user on the point of interest P within a preset time length, deletes the operation records on the point of interest P exceeding the preset time length, and calculates the values of Tag_j and Tag_j+1 according to the operation records when requesting the POI.
[0010] As preferred, the storage agent machine deletes the association number s from the proxy address table after providing the content in the storage space corresponding to the association number s, periodically empties the proxy address table, and randomly generates a plurality of discontinuous association numbers s for a plurality of storage spaces and stores them in the proxy address table.
[0011] As preferred, the server establishes N1 representative points in the target area, N1>N, wherein the geographical positions of the representative point numbers N+1 to N1 respectively overlap with the representative point numbers N+1%N to N1%N, the mobile terminal randomly selects a representative point number as m.
[0012] The substantial effects of the present application are: 1) when obtaining a list of points of interest, the server will decrypt a plurality of positioning locations, so that the specific location of the point of interest requested cannot be distinguished, thereby protecting the location information of the mobile terminal; 2) using a representative point and using a serial number to represent, so that the error location obtained by the server decryption is still within the preset range, which is the same as the real location information on the surface, and has a confusion effect; 3) using a storage proxy machine to make the mobile terminal only obtain the points of interest near the requested location, and the unnecessary leakage of the POI information stored by the server is avoided. BRIEF DESCRIPTION OF DRAWINGS
[0013] Figure 1 A POI recommendation method flowchart for example one.
[0014] Figure 2 A server encryption method flowchart for example one.
[0015] Figure 3 A server sorting point of interest flowchart for example two. DETAILED DESCRIPTION
[0016] The specific embodiments of the present application will be further specifically described below by means of specific embodiments and in combination with the drawings.
[0017] Example one:
[0018] A POI recommendation method without leaking location information, for a server to recommend POI to a mobile terminal, please refer to the attached Figure 1 , comprising the following steps:
[0019] Step A01) The server establishes N representative points in a target area, and discloses the location coordinates and number m of the representative points, m∈[1,N], N is a prime number, and the mobile terminal selects a representative point according to the positioning data to obtain the number m of the representative point;
[0020] Step A02) Construct a storage proxy machine, and open up a plurality of storage spaces for the plurality of storage spaces, and randomly generate a plurality of discontinuous correlation numbers s, s∈[1,N], and record in the proxy address table;
[0021] Step A03) The server generates a plurality of pairs of public and private keys (ei, di), wherein i∈[1,n], n≥2, ei*di=k*Φ(N)+1, k is a random positive integer, ei represents a public key, di represents a private key, and Φ() is an Euler function;
[0022] Step A04) The mobile terminal asks the storage proxy machine for a correlation number s, and asks the server for at least two public keys;
[0023] Step A05) the mobile terminal generates an initial vector (m, s, In), In represents the interest type, randomly selects one public key from the at least two public keys provided by the server, marks the selected public key as e1, and marks the unselected as e2, …, ei, and the mobile terminal calculates a feature vector (pow(m, e1), pow(s, e1), In);
[0024] Step A06) the feature vector is sent to the server;
[0025] Step A07) the server respectively decrypts the feature vector using the private keys d1 to dn, and the correct initial vector (m, s) is obtained, and the remaining private keys are marked as (mi, si), i∈[2, n];
[0026] Step A08) the server searches for the interest point P according to the representative point number m and the position of mi, and the interest point P meeting the interest type In is included in the result set L, and the result set is marked as Lm and Lmi respectively; the server associates Lm with s and Lmi with si, and sends them to the storage agent;
[0027] Step A09) the storage agent checks whether s or si is in the agent address table, if yes, the corresponding Lm or Lmi is stored in the corresponding storage space, if not, the received is discarded directly;
[0028] Step A10) the mobile terminal asks the storage agent for the content in the storage space corresponding to the associated number s, i.e. obtains the interest list Lm.
[0029] The representative points are uniformly distributed in the city in the form of an array with a square of 10 meters by 10 meters. The mobile terminal selects a nearby representative point according to its own positioning data, and obtains the number m of the representative point. For a 10-meter accuracy, the obtained interest point list is basically the same, and the mobile terminal has 2-3 representative points nearby to choose from, and the mobile terminal can choose one at will. The mobile terminal obtains the supermarket, restaurant, store, gas station and toilet, etc. in the vicinity of the location, and the interest point type required to obtain the service is represented by In. For example, searching for a nearby restaurant obtains a list of restaurants near the positioning location.
[0030] In this embodiment, N=10007, Φ(N)=10006, the server generates a plurality of public and private key pairs (e1=11, d1=2729), (e2=89, d2=787) and (e3=167, d3=719), and saves them in the server.
[0031] The mobile terminal obtains the number of the nearest representative point m = 16 according to its positioning data. The mobile terminal requests an association number s = 65 from the storage proxy. In the storage proxy, the physical address of the storage space associated with the association number s = 65 is (136, 25, 693).
[0032] The mobile terminal requests 3 public keys from the server. The server returns e1 = 11, e2 = 89 and e3 = 167.
[0033] The mobile terminal wants to obtain restaurants near the representative point m = 16, and the number of the interest type of the restaurant is 3. The mobile terminal generates the initial vector (16, 65, 3).
[0034] The selected e1 = 11 is used to calculate the feature vector, which is (pow(16, 11), pow(65, 11), 3) = (8332, 1392, 3). The vector (8332, 1392, 3) is sent to the server.
[0035] The server decrypts the feature vector using d1 = 2729, d2 = 787 and d3 = 719 respectively.
[0036] Decryption using d1: pow(8332, 2729) mod N = 16, pow(1392, 2729) mod N = 65.
[0037] Decryption using d2: pow(8332, 787) mod N = 1589, pow(1392, 787) mod N = 8573.
[0038] Decryption using d3: pow(8332, 719) mod N = 1260, pow(1392, 719) mod N = 164.
[0039] That is, the server will receive 3 POI requests for locations corresponding to representative point numbers 16, 1589 and 1260 respectively. The server will have difficulty determining the specific location of the mobile terminal requesting the POI.
[0040] The server generates three interest point lists for numbers 16, 1589 and 1260 respectively. That is, the list of restaurants near the locations with numbers 16, 1589 and 1260, denoted as L16, L1589 and L1260.
[0041] L16 and the association number s = 65 are sent to the storage proxy, L1589 and the association number s = 8573 are sent to the storage proxy, and L1260 and the association number s = 164 are sent to the storage proxy.
[0042] The storage proxy machine queries the proxy address table, the association number s = 65 exists in the proxy address table, and L16 is stored in the corresponding address (136, 25, 693). The association number s = 8573 and the association number s = 164 do not exist in the proxy address table, so after receiving L1589 and L1260, L1589 and L1260 are directly discarded.
[0043] The mobile terminal requests the storage proxy machine for the storage content corresponding to the association number s = 65, that is, L16. After obtaining L16, the mobile terminal displays it to the user. In this process, the mobile terminal obtains the interest point list, and the server receives three interest point requests representing points and cannot distinguish the specific mobile terminal position. The mobile terminal also only obtains the interest point list near the point number 16 and cannot obtain other information.
[0044] Please refer to the accompanying drawings Figure 2 The server encrypts the interest point list, which includes the following steps: B01) The server encrypts Lm using a private key d1 and encrypts Lmi using a private key di; B02) The server sends Lm associated with s and Lmi associated with si to the storage proxy machine; B03) The mobile terminal obtains the encrypted Lm from the storage proxy machine; B04) The mobile terminal decrypts the encrypted Lm using a public key e1 selected by the mobile terminal to obtain the interest point list Lm and displays it to the user. In this embodiment, L16 is encrypted using d1 = 2729, L1589 and L1260 are encrypted using d2 = 787 and d3 = 717. Correspondingly, e1 = 11, e2 = 89, and e3 = 167 can be used for decryption. However, since the mobile terminal can only obtain the encrypted ciphertext of L16 from the storage proxy machine, it can only obtain the interest point list in L16.
[0045] The interest point P is a vector (Lp, Ti, Tt, Tag_j, Tag_j+1), Lp is the geographic location of the interest point, Ti is the name of the interest point, Tt is the introduction text of the interest point, Tag_j and Tag_j+1 are a plurality of attribute tag numbers, j is an even number, j ∈ [0, J], the attribute tag number identifies the attribute tag involved in the interest point P, if the user clicks to view the interest point P, Tag_j increases by a preset first step, if the user makes a consumption at the interest point P, Tag_j increases by a preset second step, if the user selects to hide the interest point P, Tag_j+1 increases by a preset third step, the mobile terminal stores the values of (Tag_0, Tag_1, Tag_2, …, Tag_J+1) as a preference vector, and the initial vector generated by the mobile terminal is (m, s, In, Tag_0, Tag_1, Tag_2, …, Tag_J+1). The server sorts the interest lists Lm and Lmi according to the decrypted preference vector.
[0046] If a restaurant is associated with tags such as Chinese restaurant, Western restaurant, low to medium consumption, and high consumption in the server, and the numbers of these four tags in the server are 2, 4, 6, and 8. That is, if the point of interest contains the number 2, it means the point of interest has the tag of Chinese restaurant, and if it contains the number 8, it means high consumption. The attributes of Restaurant A are Chinese restaurant and high consumption. Then the vector of the point of interest P of Restaurant A is: (XX Road, XX Number, Restaurant A, Hot Pot Restaurant, 2, 3, 8, 9). Tag numbers being even indicate positive preferences, and odd tag numbers indicate negative preferences. If the user clicks to view it on the mobile device, the record of the corresponding tag number 2 increases by 1. If the user consumes at Restaurant A, the record of the corresponding tag number 2 increases by 3, and then the value of tag number 2 becomes 4. The tags of Restaurant B are Western restaurant and high consumption. If the user hides the information of Restaurant B through the mobile device display, the corresponding tag numbers 5 and 7 increase by 1 respectively, indicating negative preferences. After the user's operation, the value of the tag vector is (Tag_0, Tag_1, Tag_2, Tag_3, Tag_4, Tag_5, Tag_6, Tag_7, Tag_8, Tag_9) = (0, 0, 4, 0, 0, 1, 0, 1, 0, 0). The tag vector represents 5 tags. Increasing the length of the tag vector can increase the tag information that can be represented. The server judges the user's preferences according to the value of the tag vector, sorts the point of interest P, and deletes the points of interest of the type that the user has hidden multiple times from the result set. For details, please refer to the appendix Figure 3 , the methods for the server to sort the interest list Lm or Lmi include:
[0047] Step C01) Obtain the tag group (Tag_j, Tag_j + 1) involved in the point of interest P;
[0048] Step C02) If Tag_j + 1 is greater than the preset threshold, delete the point of interest from the interest list Lm or Lmi;
[0049] Step C03) Calculate the interest score p = a * ∑Tag_j - b * ∑Tag_j + 1, where a and b are preset weight coefficients respectively;
[0050] Step C04) Sort the point of interest P in the interest list Lm or Lmi in descending order of the interest score p.
[0051] In this embodiment, a = 2, b = 1. The interest score of Restaurant A, p_A = 2 * Tag_2 - 1 * Tag_3 + 2 * Tag_8 - 1 * Tag_9 = 2 * 4 - 1 * 0 + 2 * 0 - 1 * 1 = 7. The interest score of Restaurant B, p_B = 2 * Tag_4 - 1 * Tag_5 + 2 * Tag_8 - 1 * Tag_9 = 2 * 0 - 1 * 1 + 2 * 0 - 1 * 1 = -2. The ranking of Restaurant B will be after Restaurant A.
[0052] The mobile terminal records the operation record of the user on the point of interest P within a preset time length, deletes the operation record on the point of interest P exceeding the preset time length, and requests the POI, and the mobile terminal calculates the value of Tag_j and Tag_j+1 according to the operation record.
[0053] After the storage proxy machine provides the content in the storage space corresponding to the association number s, the storage proxy machine deletes the association number s from the proxy address table, periodically empties the proxy address table, and randomly generates a plurality of discontinuous association numbers s for a plurality of storage spaces and stores them in the proxy address table. In this embodiment, after the mobile terminal reads the content corresponding to the association number s=65 from the storage proxy machine, the storage proxy machine deletes the association number s=65 from the proxy address table.
[0054] The server establishes N1 representative points in the target area, N1>N, wherein the geographical positions of the representative point numbers N+1 to N1 are respectively overlapped with the representative point numbers N+1%N to N1%N, and the mobile terminal randomly selects a representative point number as m.
[0055] The beneficial technical effects of the embodiment are that when the point of interest list is obtained, the server will decrypt a plurality of positioning positions, so that the specific position of the request to obtain the point of interest cannot be distinguished, and the position information of the mobile terminal is protected; the representative point is used, and the serial number is used to make the error position obtained by the server decryption still within the preset range, which is the same as the real position information on the surface, and has a confusion effect; the storage proxy machine is used to make the mobile terminal only obtain the point of interest near the requested position, and the POI information stored by the server is not unnecessarily leaked.
[0056] The above embodiments are only a preferred scheme of the present application, and do not limit the present application in any form, and other variants and modifications are possible without exceeding the technical scheme recorded in the claims.
Claims
1. A POI recommendation method without leaking location information, used for a server to recommend POIs to a mobile terminal, characterized in that, The method comprises the following steps: The server establishes N representative points in a target area, discloses the position coordinates and number m of the representative points, m∈[1,N], N is a prime number, and the mobile terminal selects a representative point according to the positioning data and obtains the number m of the representative point; A storage agent is constructed, a plurality of storage spaces are opened, a plurality of discontinuous association numbers s are randomly generated for the plurality of storage spaces, s∈[1,N], and the association numbers are recorded in an agent address table; The server generates a plurality of pairs of public and private keys (ei,di), wherein i∈[1,n], n≥2, ei*di=k*Φ(N)+1, k is a random positive integer, ei represents a public key, di represents a private key, and Φ() is an Euler function; The mobile terminal asks the storage agent for an association number s and asks the server for at least two public keys; The mobile terminal generates an initial vector (m,s,In), In represents an interest type, randomly selects a public key from the at least two public keys provided by the server, and records the selected public key as e1 and the unselected public key as e2,...,ei; The mobile terminal calculates a feature vector (pow(m,e1) mod N, pow(s,e1) mod N,In) and sends the feature vector to the server; The server uses private keys d1 to dn to decrypt the feature vector, obtains the correct initial vector (m,s), and records the feature vectors decrypted by the remaining private keys as (mi,si), i∈[2,n]; The server searches for interest points P that meet the interest type In according to the representative point number m and the positions of mi, and includes the interest points P that meet the condition in a result set L, which is recorded as Lm and Lmi, respectively; The server associates Lm with s and associates Lmi with si, and sends them to the storage agent; The storage agent checks whether s or si is in the agent address table, if yes, stores the corresponding Lm or Lmi in the corresponding storage space, and if not, directly discards the received data; The mobile terminal asks the storage agent for the content in the storage space corresponding to the association number s, that is, obtains the interest list Lm; After the storage agent provides the content in the storage space corresponding to the association number s, the storage agent deletes the association number s from the agent address table, periodically empties the agent address table, and randomly generates a plurality of discontinuous association numbers s for a plurality of storage spaces and stores them in the agent address table.
2. The POI recommendation method without leaking location information according to claim 1, wherein the server encrypts Lm using the private key d1, encrypts Lmi using the private key di, and then respectively associates Lm with s and associates Lmi with si, and sends them to the storage agent, and the mobile terminal obtains the encrypted Lm from the storage agent and decrypts it using the public key e1 selected by the mobile terminal to obtain the interest point list Lm and display it to the user.
3. The POI recommendation method without leaking location information according to claim 1 or 2, wherein The interest point P is a vector (Lp, Ti, Tt, Tag_j, Tag_j+1), Lp is the geographic location of the interest point, Ti is the interest point name, Tt is the interest point introduction text, Tag_j and Tag_j+1 are a plurality of attribute tag numbers, j is an even number, j∈[0,J], the attribute tag number identifies the attribute tag involved in the interest point P, if the user clicks to view the interest point P, Tag_j increases by a preset first step, if the user has consumed at the interest point P, Tag_j increases by a preset second step, if the user selects to hide the interest point P, Tag_j+1 increases by a preset third step, the mobile terminal stores the values of (Tag_0, Tag_1, Tag_2,…, Tag_J+1) as a preference vector, the initial vector generated by the mobile terminal is (m, s, In, Tag_0, Tag_1, Tag_2,…, Tag_J+1), and the server sorts the interest list Lm and Lmi according to the preference vector obtained by decryption.
4. The POI recommendation method without leaking location information according to claim 3, wherein, The method for the server to sort the interest list Lm or Lmi includes: obtaining the label groups (Tag_j, Tag_j+1) involved in the interest point P, and if Tag_j+1 is greater than a preset threshold, the interest point is deleted from the interest list Lm or Lmi; calculating the interest score p=a*∑Tag_j-b*∑Tag_j+1, a and b are preset weight coefficients, respectively; sorting the interest points P in the interest list Lm or Lmi in descending order of the interest score p.
5. The POI recommendation method without leaking location information according to claim 3, wherein, The mobile terminal records the operation records of the user on the interest point P within a preset time length, deletes the operation records on the interest point P that exceed the preset time length, and calculates the values of Tag_j and Tag_j+1 according to the operation records when requesting the POI.
6. The POI recommendation method without leaking location information according to claim 1 or 2, wherein, The server establishes N1 representative points in the target area, N1>N, wherein the geographic locations of the representative point numbers N+1 to N1 are respectively overlapped with the representative point numbers N+1%N to N1%N, and the mobile terminal randomly selects a representative point number as m.
Citation Information
Patent Citations
Interest point navigation system
CN104280031A
User position privacy protection method in road network environment based on fictitious graticule
CN107172095A
Efficient query processing method for protecting location privacy and query privacy
CN111083631A