Safe navigation method and system supporting k unordered waypoints

By introducing a combination of user module, cloud service module and proxy module in the navigation system, and using technical means such as homomorphic encryption and hash functions, the problem that the existing technology cannot support the navigation of k disordered pathway points is solved, and the effect of secure navigation and user privacy protection is achieved.

CN116405545BActive Publication Date: 2025-05-16HEFEI UNIV OF TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202211628803.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-18
Publication Date
2025-05-16
Estimated Expiration
2042-12-18

AI Technical Summary

Technical Problem

The prior art cannot support users to perform secure navigation when specifying k unordered pathway points during navigation, cannot effectively resist security threats from untrusted navigation service providers, and cannot protect the privacy of users' navigation requests.

Method used

A secure navigation method and system that supports k unordered passage points is proposed. The combination of user module, cloud service module and proxy module is adopted. Through technical means such as homomorphic encryption, pseudo-random arrangement function and anti-collision hash function, encrypted map and navigation requests are generated, and the cloud service module and proxy module are interacted to search and return the navigation path.

Benefits of technology

It realizes the security threat of untrusted navigation service providers during the confidential navigation process, solves the path navigation requirements of k disordered pathway points, protects the privacy of users' navigation requests, and ensures that users' travel routes and requests are not known by untrusted navigation service providers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116405545B_ABST
    Figure CN116405545B_ABST
Patent Text Reader

Abstract

The present invention discloses a secure navigation method and system supporting k unordered waypoints, which is applied to an environment consisting of a user module, a cloud service module and a proxy module; the user module generates a key after initializing parameters, encrypts map data using the key, generates a navigation request according to a custom starting point, end point and waypoint, uploads the encrypted map and the navigation request to the cloud service module, uploads the key to the proxy module, waits for the path query result to be sent back and then decrypts and restores the navigation path, otherwise waits for the query result; the cloud service module receives the encrypted map and the navigation request from the user module, uses the navigation request and the encrypted map to interact with the proxy module to complete the path search, and returns the navigation path; the proxy module receives the key from the user module, and uses the key to complete the interaction with the cloud service module. The present invention can protect the user's path navigation privacy from being infringed by untrusted navigation service providers.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a secure navigation method and system that supports k unordered waypoints, belonging to the fields of privacy protection, cloud computing, and secure navigation technology. Background Technology

[0002] As a convenient application of modern transportation, navigation services offer significant social benefits, such as reducing travel time, saving fuel, and alleviating traffic congestion. Navigation services in connected vehicles allow users to upload their origin (S) and destination (D) (not necessarily in real-time) to a navigation service provider (NSP). The NSP then returns the route between S and D to the user. This route is typically the shortest or optimal route, for example, the route with the minimum travel time but not necessarily the shortest distance. Google Maps is the most downloaded app in the United States, and an analyst at Morgan Stanley estimates its market value will reach $11 billion in 2023.

[0003] Google Maps has introduced a new navigation feature: users can select several intermediate points, or waypoints, between their starting point S and destination D. For example, by adding two ordered waypoints between S and D to the Google Maps interface, the NSP (Navigate for Paths) returns a path that passes through waypoint 1 and waypoint 2 in the same specified order. This new feature benefits users by saving planning time and creating a visual itinerary that makes travel more engaging.

[0004] Inspired by this user-friendly feature of Google Maps, the problem of navigating from a starting point S to a destination D, passing through k unordered waypoints—that is, the user submits k waypoints other than the starting point S and the destination D, without specifying the navigation order of the k waypoints—can be named the Semi-Constrained Navigation Problem (SCNP). This situation corresponds to real-life scenarios, such as opening the Google Maps application on the way home from work and querying the shortest route through the market, supermarket, and delicatessen, while only requiring the shortest return route and not caring when the NSP passes through these three locations. This new feature also has wide applications in other fields, such as ride-hailing services and intercity travel.

[0005] Existing technologies only support single-target shortest path navigation from the starting point to the destination by encrypting and uploading location information, and cannot complete safe navigation when the user specifies k unordered waypoints. Summary of the Invention

[0006] This invention addresses the shortcomings of existing technologies by proposing a secure navigation method and system that supports k unordered waypoints. This aims to resist security threats from untrusted navigation service providers during dense-state navigation and solve the path navigation requirement problem for k unordered waypoints, thereby protecting the privacy of user navigation requests and ensuring that user travel routes and requests are not known to untrusted navigation service providers.

[0007] To achieve the above-mentioned objectives, the present invention employs the following technical solution:

[0008] The present invention discloses a safe navigation system supporting k unordered waypoints, comprising: a user module, a cloud service module, and an agent module;

[0009] The user module includes: a system initialization unit, a map encryption module, a navigation request unit, and a path recovery unit;

[0010] The cloud service module includes: a map storage unit, a request receiving unit, and a path search unit;

[0011] The proxy module includes: a key receiving unit and a protocol interaction unit;

[0012] The system initialization unit of the user module generates a pseudo-random permutation function, a pseudo-random function, a random oracle function, and a collision-resistant hash function and publishes them to all units in the system. Then, it generates a key and sends it to the map encryption unit, the path recovery unit, and the key receiving unit of the proxy module, respectively.

[0013] The key receiving unit of the proxy module receives the key and forwards it to its own protocol interaction unit;

[0014] The map encryption unit of the user module encrypts the original map data it stores using the received key, the pseudo-random permutation function, the pseudo-random function, the random oracle function, and the collision-resistant hash function to generate an encrypted map, and then sends the encrypted map to the map storage unit of the cloud service module.

[0015] The map storage unit of the cloud service module receives the encrypted map, stores it, and forwards it to its own path search unit.

[0016] The navigation request unit of the user module obtains the user-defined starting point, ending point, and k waypoints, and generates a navigation request using the pseudo-random permutation function, the pseudo-random function, and the collision-resistant hash function, and then forwards it to the request receiving unit of the cloud service module.

[0017] After receiving the navigation request, the request receiving unit of the cloud service module forwards it to its own path search unit;

[0018] The path search unit of the cloud service module interacts with the protocol interaction unit of the proxy module according to the navigation request, and searches the encrypted map according to the interaction result. If the search is successful, the corresponding navigation path is sent to the path recovery unit of the user module. If the search fails, an empty string is sent to the path recovery unit of the user module.

[0019] If the path recovery unit of the user module receives the navigation path, it uses the key to decrypt the navigation path to obtain the plaintext navigation path.

[0020] The present invention provides a secure navigation method supporting k unordered waypoints, characterized by its application in a network environment consisting of a user terminal, a cloud service provider, and an agent. The secure navigation method is performed according to the following steps:

[0021] Step 1: System Initialization

[0022] Step 1.1 The user terminal uses a bilinear mapping-based cryptographic method to construct a homomorphic encryption system Ω, and constructs a key generation function Gen, a homomorphic encryption function Enc, and a homomorphic decryption function Dec. Then, it uses the key generation function Gen to generate a key sk and sends the key sk to the agent.

[0023] The user terminal generates two pseudo-random permutation functions T1 and T2, two pseudo-random functions F1 and F2, a random oracle function H, and a collision-resistant hash function h;

[0024] Step 2: Map Encryption

[0025] Step 2.1 The user terminal uses the Floyd-Warshall algorithm to calculate the randomized path distance set PD of the original map data G = {V, ε} consisting of node set V and edge set ε, and initializes a two-dimensional array Arr;

[0026] Step 2.2 describes the user terminal accessing the i-th node v in the node set V. i Randomly generate a key A key and a set of random numbers r i Where 1≤i≤|V|; |V| represents the total number of nodes;

[0027] With the i-th node v i Starting from point v, for the path distance set PD, the distance from point v i From start to finish v jA shortest path The user terminal uses a collision-resistant hash function h to hash the endpoint v. j The process is performed to produce a hash result h(v). j Using the key sk and the homomorphic encryption function Enc to encrypt the starting point v i From start to finish v j shortest distance Process to obtain the encrypted result. Use a collision-resistant hash function h to hash the random number r. j Process the data to generate a random number hash result h(r). j ); Use the pseudo-random function F1 to hash the random number result h(r) j After processing, it is compared with the shortest path. Perform an XOR operation to obtain the XOR result byte; then, hash the result h(v) to obtain the result byte. j XOR result byte and encryption result The concatenated result is obtained after splicing;

[0028] Use a random oracle function H on the key. and random number r j Process the data to obtain the result from the random oracle. Combine the concatenation result with the random oracle result. Perform an XOR operation to obtain the array XOR result byte0;

[0029] Use the pseudo-random permutation function T1 to test the endpoint v j After processing, the array index value T1(v) is obtained. j );

[0030] Finally, XOR the array result byte0 with the random number r. j Stored in the two-dimensional array Arr at the vth position i row T1(v) j The position of column Arr[v i ][T1(v j )]superior;

[0031] Using the key sk and the homomorphic encryption function Enc together, the starting point v is... i The x-coordinate and y-coordinate of the data are processed separately and then concatenated to form the encrypted link result Enc(x)||Enc(y);

[0032] Use a random oracle function H on the key. and random number r i Process the data to obtain the result from the random oracle. Combine the encrypted link result Enc(x)||Enc(y) with the random oracle result Perform an XOR operation to obtain the XOR result byte1 of the array;

[0033] Finally, XOR the array result byte1 with the random number r. i Stored in the two-dimensional array Arr at the vth position i The position of row 0 and column 0: Arr[v i [0] on;

[0034] Step 2.3 describes the user terminal using a pseudo-random permutation function T2 to arrange the i-th node v. i The process is performed to obtain the pseudo-random permutation result T2(v) of the nodes. i Then, use the pseudo-random function F2 on the i-th node v. i Processing is performed to obtain the pseudo-random result F2(v) i ), for node v i and its key The splicing result and the pseudo-random result F2(v) i Perform XOR operation Get node v i The dictionary XOR result DX(v) i );

[0035] Create a dictionary DX to store the pseudo-random permutation results T2(v) of the nodes. i ) and dictionary XOR result DX(v i );

[0036] In step 2.4, the user terminal sends the encrypted map EG, composed of the array Arr and the dictionary DX, to the cloud service provider.

[0037] Step 3: Navigation Request Generation

[0038] Step 3.1: The user terminal selects the starting point s and the ending point d to be navigated to, and selects k waypoints {V1, V2, ..., V} from the node set V. k}; where V k Indicates the k-th waypoint;

[0039] In step 3.2, the user terminal processes the starting point s using a pseudo-random permutation function T2 to obtain the starting point pseudo-random permutation result T2(s), then processes the starting point s using a pseudo-random function F2 to obtain the starting point pseudo-random result F2(s), then processes the starting point s using a collision-resistant hash function h to obtain the starting point hash result h(s), and finally creates a starting point set I(s) to store the starting point pseudo-random permutation result T2(s), the starting point pseudo-random result F2(s), and the starting point hash result h(s).

[0040] In step 3.3, the user terminal processes the endpoint d using a pseudo-random permutation function T2 to obtain the endpoint pseudo-random permutation result T2(d), then processes the endpoint d using a pseudo-random function F2 to obtain the endpoint pseudo-random result F2(d), then processes the endpoint d using a collision-resistant hash function h to obtain the endpoint hash result h(d), and finally creates an endpoint set I(d) to store the endpoint pseudo-random permutation result T2(d), the endpoint pseudo-random result F2(d), and the endpoint hash result h(d).

[0041] Step 3.4 describes the user terminal using a pseudo-random permutation function T2 to arrange the k path points {V1, V2, ..., V...} k The process is performed to obtain a pseudo-random permutation of k path points, resulting in T2(V1), T2(V2), ..., T2(V... k ), where T2(V k ) represents the k-th waypoint V k The pseudo-random permutation results are obtained; then, the pseudo-random function F2 is used to process the k path points to obtain the pseudo-random results F2(V1), F2(V2), ..., F2(V) for the k path points. k ), where F2(V k ) represents the k-th waypoint V k The pseudo-random result is then used; a collision-resistant hash function h is then applied to the k path points to obtain the hash results h(V1), h(V2), ..., h(V) of the k path points. k ), where h(V k ) represents the k-th waypoint V k The hash result; create a set of k waypoints {I(V1),...,I(V i ),...I(V k )}, where the set of the i-th path points is I(V i ) is used to store the i-th path point V i The pseudo-random permutation result T2(V i ), pseudo-random result F2(V i ) and hash result h(V i );

[0042] Step 3.5 states that the user terminal will set the starting point set I(s), the ending point set I(d), and the k waypoint sets {I(V1),...,I(V2)}. i ),...I(V k The navigation request t is composed of )} q and will navigation request t q Send to the cloud service provider;

[0043] Step 4: Waypoint Planning

[0044] Step 4.1: The cloud service provider receives the corresponding encrypted map EG and navigation request t from the user's terminal. q ;

[0045] Step 4.2 describes the cloud service provider using a navigation request t. q The pseudo-random permutation result T2(s) of the starting set I(s), the pseudo-random permutation result T2(d) of the ending set I(d), and the set of k path points {I(V1),...,I(V i ),...I(V k The pseudo-random permutations of )} are T2(V1), T2(V2), ..., T2(V) k For each dictionary DX in the encrypted map EG, the set of XOR results α = {DX(q) | q ∈ {s, d, V1, V2, ..., V} is obtained. k}}, where DX(q) represents the dictionary XOR result of node q, and is compared with the navigation request t. q Given the starting point pseudo-random result F2(s) of the starting point set I(s), the ending point pseudo-random result F2(d) of the ending point set I(d), and the set of k path points {I(V1),...,I(V i ),...I(V k The pseudo-random results F2(V1), F2(V2), ..., F2(V)} are given by the given information. k Perform XOR operations on each q and K respectively to obtain the XOR result set β = {q||K} q |q∈{s,d,V1,V2,…,V k}}; where K q The key representing node q;

[0046] Step 4.3 describes the cloud service provider using the sequence ID of node q. q Obtain the ID-th element in the two-dimensional array Arr. q At row 0, column 0, position Arr[ID] q The random number r in ][0] q XOR the array with the result byte2, and use the random oracle function H to set the key K for node q. q and random number r q Process the data to obtain the random oracle result H(K). q ||r q Then XOR the array result byte2 with the random oracle result H(K). q ||r q Perform an XOR operation to obtain the identifier string X. q =(Enc(x)||Enc(y)), which represents the identifier string X of node q. q Split into ciphertext on the horizontal axis and ciphertext of the vertical axis

[0047] Step 4.4 describes the cloud service provider using a navigation request t q For k path points {V1,V2,…,V... k Grouping the nodes into sub-regions yields the set P of nodes in the next region. Low The set of nodes in the intermediate region P Mid and the set of nodes in the upper region P High ;

[0048] Initialize a list of result paths (List) R ;

[0049] Step 4.5 describes the cloud service provider obtaining data from the intermediate region node set P. Mid Select the point that is closest to the starting point s in perpendicular distance as the bridging point B1, and select the ending point d as the bridging point B2;

[0050] Step 4.6 describes the cloud service provider using the lower regional node set P. Low Find the path from the starting point s to the bridge point B1, passing through the set of nodes P in the next region. Low Optimal path for each waypoint:

[0051] Step 4.6.1 If the bridging point B1 is located to the right of the line connecting the start and end points, then the lower region node set P Low The nodes in the search path proceed clockwise. If the bridging point B1 is located to the left of the line connecting the start and end points, or is located on the line connecting the start and end points, then the set of nodes in the next region P is determined. Low The nodes in the search path are arranged in a counter-clockwise direction;

[0052] Step 4.6.2 Create a set of left nodes for the lower region. and a set of right nodes of the lower region and the set of nodes in the next region P Low Insert all path points into the left node set of the lower region respectively. and the set of right nodes in the lower region middle;

[0053] In step 4.7, the cloud service provider sets bridge point B1 as a temporary endpoint and starting point s as a temporary starting point, and then, according to the determined clockwise or counterclockwise path order, starts from the left node set of the lower region. and the set of right nodes in the lower region Find an optimal path point and add it to the result path list List. R ;

[0054] In step 4.8, the cloud service provider uses the optimal path point found in step 4.7 as a temporary starting point and then searches according to the process in step 4.7 until the set of nodes in the next region P has been traversed. Low Then, add all optimal waypoints and temporary endpoints B1 to the result path list List. R ;

[0055] In step 4.9, the cloud service provider sets temporary endpoint B1 as temporary starting point and bridging point B2 as temporary endpoint, thereby establishing a temporary endpoint in the intermediate region P. Mid Search for the optimal path point and add it to the result path list. R ;

[0056] In step 4.10, the cloud service provider uses the optimal path point found in step 4.9 as a temporary starting point and continues the search according to the process in step 4.9 until the intermediate region P has been traversed. Mid Then, add all optimal path points to the result path list List. R ;

[0057] In step 4.11, the cloud service provider uses the last optimal path point found as the temporary starting point P. s Bridge point B2 is set as the temporary endpoint; search for the starting point P. s When traveling from the starting point to the temporary destination B2, the node set P of the upper region is passed through. High The optimal path for each waypoint in the process;

[0058] Step 4.11.1 If the temporary starting point P s The upper region node set P is located to the right of the line connecting the start and end points. High The nodes in the search are arranged in a counter-clockwise direction. If the temporary starting point P is... s If a node is located to the left of the line connecting the start and end points, or on the line connecting the start and end points, then the set of nodes in the upper region P is... High The nodes are searched in a clockwise direction;

[0059] Step 4.11.2 describes the cloud service provider creating a set of left nodes in the upper region following the process described in step 4.6.2. and a set of right nodes of the upper region and the set of nodes in the upper region P High All path points are inserted into the left node set of the upper region. and the set of right nodes in the upper region middle;

[0060] Step 4.12 The cloud service provider, based on the aforementioned temporary starting point P s The determined clockwise or counterclockwise path order starts from the left node set of the upper region. and the set of right nodes in the upper region Find an optimal path point and add it to the result path list List. R ;

[0061] In step 4.13, the cloud service provider uses the optimal path point found in step 4.12 as a temporary starting point and continues the search according to the process in step 4.12 until the entire set of nodes in the upper region P has been traversed. High Then, add all optimal path points to the result path list List. R Then add the temporary endpoint B2 to the result path list List. R ;

[0062] Step 5: Navigation route search:

[0063] Step 5.1 describes the cloud service provider using the result path list. R Navigation request t q The set of starting points I(s), the set of ending points I(d), and the set of k waypoints {I(V1),...,I(V2)} are given. i ),...I(V k )}, initialize the navigation path Route; define variable i and initialize i = 1;

[0064] In step 5.2, the cloud service provider selects a starting point s as a temporary starting point and uses a navigation request t. q The pseudo-random permutation result T2(s) of the starting point set I(s) in the encrypted map EG is used to retrieve the dictionary DX in the encrypted map, obtain the corresponding dictionary XOR result set α′=DX(s) in the dictionary DX, and then compare it with the navigation request t. q Perform an XOR operation on the pseudo-random starting result F2(s) of the starting set I(s) to obtain the XOR result β′=s||K q Among them, K s The key representing the starting point s;

[0065] Step 5.3: The cloud service provider selects the result path list. R The i-th path point V i As a temporary endpoint; and using the sequence number ID of the starting point s. s and temporary endpoint V i The pseudo-random permutation result of the path points T2(V) i ), obtain the ID-th element in the two-dimensional array Arr. s row T2(V) i ) column position Arr[ID s ][T2(V i The random number r in )] s XOR the array with the result byte3, and use the random oracle function H to find the key K at the starting point s of the XOR result β′.s and random number r p Process the data to obtain the random oracle result H(K). s ||r p Then XOR the array result byte3 with the random oracle result H(K). s ||r p Perform an XOR operation to obtain the identifier string X. s ′, using a collision-resistant hash function h to hash random number r p Process the data to obtain the endpoint hash result h(r). p Then, use the pseudo-random function F1 to obtain the pseudo-random result F1(h(r)). p Meanwhile, a temporary endpoint V is also used. i The path point hash result h(V) i For the identifier string X s Divide the data into segments, obtaining the distance from the temporary starting point s to the temporary ending point V. i The best path And add the navigation path (Route);

[0066] Step 5.4 will V i As a temporary starting point, then from the list of result paths (List) R V, the (i+1)th path point i+1 As a temporary endpoint, return to step 5.2 and execute sequentially until i+1>k, finally obtaining the navigation path Route;

[0067] In step 5.5, the cloud service provider sends the navigation path (Route) to the user's device.

[0068] Step Six: Navigation Path Restoration

[0069] In step 6.1, the user terminal receives the navigation path Route from the cloud service provider and uses the key sk to decrypt the navigation path Route to obtain the navigation path.

[0070] The safety navigation method supporting k unordered waypoints described in this invention is also characterized by the following grouping method in section 4.4:

[0071] Let the starting point s be node V s The endpoint d is used as node V d Given k path points {V1, V2, ..., V...} k Each path point in the sequence is sequentially used as node V1 of interaction protocol one, thereby obtaining the interaction value {cb} using interaction protocol one. 1,1 ,cb 1,1 ,…,cb 1,k}; where cb 1,k V represents the k-th waypoint. kThe interaction value obtained after the first execution of interaction protocol one;

[0072] Let the endpoint d be node V. s The starting point s is used as node V d Given k path points {V1, V2, ..., V...} k Each path point in the sequence serves as node V1 of interaction protocol one, thereby using interaction protocol one to return the interaction value {cb}. 2,1 ,cb 2,1 ,…,cb 2,k}; where cb 2,k V represents the k-th waypoint. k The interaction value obtained after running the interaction protocol one for the second time;

[0073] The cloud service provider will use formula (1) to select the k-th path point V. k Insert into the corresponding node set P Low P Mid and P High Thus, the kth path point V is completed. k Grouping;

[0074]

[0075] The interaction protocol is performed according to the following process:

[0076] The cloud service provider, based on node V1, node V s Node V d Calculate the ciphertext vector E(V) s V1) and vector E(V s V d The included angle value Then select another random number r Num Calculate the projected value after offset The offset angle value and random number r Num Send to the agent; wherein, The ciphertext representing the x-coordinate of node V1, The ciphertext representing the y-coordinate of node V1, Represents node V s The ciphertext of the horizontal axis, Represents node V s The ciphertext of the vertical axis, Represents node V d The ciphertext of the horizontal axis, Represents node V d The ciphertext of the vertical axis, This represents ciphertext multiplication operations;

[0077] The agent uses the key sk to decrypt the offset angle value. Obtain the plaintext angle value and with random number r Num Compare sizes, if Returns an interactive value cb=0, otherwise returns an interactive value cb=1.

[0078] The bridging point B1 in step 4.5 is selected according to the following process:

[0079] Step a: Set the intermediate region nodes P Mid One waypoint is designated as node V1, and the other waypoint is designated as node V. d The starting point s is used as node V s The endpoint d is used as node V d Thus, the interaction value cb is obtained using interaction protocol two. Mid ;

[0080] Step b, if cb Mid =1, then node V1 is selected as bridge point B1, if cb Mid =0, then continue selecting the intermediate region P. Mid After identifying another path point as node V1, return to step a and continue execution until a bridge point B1 is found.

[0081] The second interaction protocol is performed as follows:

[0082] The cloud service provider retrieves node V1, node V2, and node V... s Node V d Calculate the ciphertext vector E(V1V2) in vector E(V s V d Projection values ​​on ) Then select another random number r Num Calculate the projected value after offset Offset projection value and random number r Num Send to the agent; wherein, The ciphertext representing the x-coordinate of node V1, The ciphertext representing the y-coordinate of node V1, The ciphertext representing the x-coordinate of node V2, The ciphertext representing the y-coordinate of node V2, Represents node V s The ciphertext of the horizontal axis, Represents node V s The ciphertext of the vertical axis, Represents node V d The ciphertext of the horizontal axis, Represents node V dThe ciphertext of the vertical axis, This represents ciphertext multiplication operations;

[0083] The agent uses the key sk to decrypt the offset projection value. Obtain plaintext projection value and with random number r Num Compare sizes, if Returns an interactive value cb=0, otherwise returns an interactive value cb=1.

[0084] The method for determining the position of bridge point B1 on the left or right side of the line connecting the start and end points in step 4.6.1 is as follows:

[0085] Let the bridging point B1 be node V1, and the starting point s be node V. s The endpoint d is used as node V d Thus, the interaction value cb is obtained using interaction protocol three. Orient ;

[0086] If cb Orient =1 indicates that the bridging point B1 is located to the right of the line connecting the start and end points; if cb Orient =0 indicates that the bridging point B1 is located to the left of the line connecting the start and end points or is located on the line connecting the start and end points.

[0087] The third interaction protocol is performed according to the following process:

[0088] The cloud service provider, based on node V1, node V s Node V d Calculate the ciphertext vector E(V1V2) in vector E(V s V d The projection value on the perpendicular vector of ) Then select another random number r Num Calculate the projected value after offset Offset projection value and random number r Num Send to the agent; wherein, The ciphertext representing the x-coordinate of node V1, The ciphertext representing the y-coordinate of node V1, Represents node V s The ciphertext of the horizontal axis, Represents node V s The ciphertext of the vertical axis, Represents node V d The ciphertext of the horizontal axis, Represents node V d The ciphertext of the vertical axis, This represents ciphertext multiplication operations;

[0089] The agent uses the key sk to decrypt the offset projection value. Obtain plaintext projection value and with random number r Num Compare sizes, if Returns an interactive value cb=0, otherwise returns an interactive value cb=1.

[0090] The insertion method in step 4.6.2 is as follows:

[0091] Let the starting point s be node V s The endpoint d is used as node V d Set the lower region node set P Low Each path point in the process is sequentially used as node V1 of interaction protocol one, thereby obtaining the interaction value {cb} using interaction protocol one. 3,1 ,cb 3,1 ,…,cb 3,m},(1≤m≤P Low ); where cb 3,m Let P represent the set of nodes in the lower region. Low The m-th path point V m The interaction value P obtained after running interaction protocol one Low Let P represent the set of nodes in the lower region. Low The total number of intermediate waypoints;

[0092] If cb 3,m =1, then the waypoint V m Insert into the right node set of the lower region If cb 3,m =0, then the waypoint V m Insert into the left node set of the lower region This completes the set of nodes P in the next region. Low The m-th path point V m Insertion.

[0093] The optimal path search process in step 4.7 includes:

[0094] Step a: If the search path is clockwise, then the right node set in the lower region... Randomly select a waypoint V1 Low,R As node V1, for the set of right nodes in the lower region Other pathway points V2 Low,R As node V2, the starting point s is node V s Bridge point B1 serves as node V d Thus, the interaction value can be obtained using the third interaction protocol.

[0095] Step b, if Then the waypoint V1Low,R As the optimal path point, if Then select the set of right nodes in the lower region. Another path point V3 Low,R After becoming node V1, return to step a and continue execution until the optimal path point is found;

[0096] Step c: If the path proceeds counterclockwise, then the set of left nodes in the lower region... Randomly select a waypoint V1 Low,L As node V1, for the set of left nodes in the lower region Other pathway points V2 Low,L As node V2, the starting point s is node V s Bridge point B1 serves as node V d Thus, the interaction value can be obtained using the third interaction protocol.

[0097] Step d, if Then the waypoint V1 Low,L As the optimal path point, if Then select the set of left nodes in the lower region. Another path point V3 Low,L After becoming node V1, return to step c and continue execution until the optimal path point is found.

[0098] The optimal path point in step 4.9 is searched using the following process:

[0099] Step a: Set the intermediate region nodes P Mid One waypoint is designated as node V1, and the other waypoint is designated as node V. d Temporary starting point B1 serves as node V s Bridge point B2 serves as node V d Thus, the interaction value cb′ is obtained using interaction protocol two. Mid ;

[0100] Step b, if cb′ Mid =1, then node V1 is selected as the optimal path point, if cb′ Mid =0, then continue selecting the intermediate region P. Mid After identifying another path point as node V1, return to step a and continue execution until the optimal path point is found.

[0101] Compared with the prior art, the present invention has the following beneficial effects:

[0102] 1. In this invention, the user calculates an encrypted map and submits a navigation request to a navigation service provider based on the original map, the selected start point, destination, and k unordered path points. The navigation service provider uses the navigation request to interact with an agent, searches the encrypted map, and returns the navigation path. This method solves the problem of shortest path navigation with k unordered path points, achieving shortest path navigation with k unordered path points while effectively protecting user privacy.

[0103] 2. This invention uses homomorphic encryption to enable users to generate encrypted maps, making it impossible for malicious navigation service providers to obtain users' encrypted map information, thus achieving strong map security. At the same time, addition, subtraction and multiplication operations can be performed on the ciphertext, which greatly reduces decryption overhead and improves system efficiency.

[0104] 3. This invention uses pseudo-random permutation functions and pseudo-random function methods to allow users to generate navigation requests, solving the problem of shortest path navigation for k unordered waypoints. It also prevents malicious navigation service providers from obtaining the user's selected node information and navigation path information, achieving strong privacy requirements. At the same time, it ensures that the user's navigation request is unintentional, making it impossible for navigation service providers to capture and crack it at any time.

[0105] 4. This invention enables low-cost computational operations on all parties, including users, cloud service providers, and agents, and achieves low-overhead communication among all parties. It effectively reduces navigation request response time, avoids complex interactive operations, and primarily uses local execution. The accuracy of the shortest path navigation for k unordered waypoints is not reduced. Attached Figure Description

[0106] Figure 1 This is a model diagram of the safe navigation system supporting k unordered waypoints according to the present invention;

[0107] Figure 2 This is an overview diagram of the safe navigation method supporting k unordered waypoints according to the present invention. Detailed Implementation

[0108] In this embodiment, a safe navigation system supporting k unordered waypoints is described, such as... Figure 1 As shown, it includes a user module, an agent module, and a cloud service module; wherein, the user module sends an encrypted map to the cloud service module, and at the same time, the user module sends the shortest path navigation of k unordered waypoints to the cloud service module. After the cloud service module interacts with the agent module, it returns the navigation result to the user module.

[0109] Taking cloud-based encrypted route navigation processing in a single navigation service as an example, the user module consists of users who encrypt the map and select a starting point, destination, and k unordered waypoints for navigation. The cloud service module is a third-party platform, and the agent module is an authoritative institution. Users submit their starting point, destination, and k unordered waypoints to the third-party platform, which then interacts with the authoritative institution to search for the shortest suitable route for navigation.

[0110] The user module includes: a system initialization unit, a map encryption module, a navigation request unit, and a path recovery unit;

[0111] The cloud service module includes: a map storage unit, a request receiving unit, and a route search unit;

[0112] The agent module includes: a key receiving unit and a protocol interaction unit;

[0113] The system initialization unit of the user module generates a pseudo-random permutation function, a pseudo-random function, a random oracle function, and a collision-resistant hash function, and publishes them to all units within the system. Then, it generates keys and sends them to the map encryption unit, the path recovery unit, and the key receiving unit of the agent module, respectively.

[0114] The key receiving unit of the proxy module receives the key and forwards it to its own protocol interaction unit;

[0115] The map encryption unit of the user module uses the received key, a pseudo-random permutation function, a pseudo-random function, a random oracle function, and a collision-resistant hash function to encrypt the original map data it stores, generating an encrypted map, and then sends the encrypted map to the map storage unit of the cloud service module.

[0116] The map storage unit of the cloud service module receives the encrypted map, stores it, and forwards it to its own path search unit;

[0117] The navigation request unit of the user module obtains the user-defined starting point, ending point, and k waypoints, and generates a navigation request using a pseudo-random permutation function, a pseudo-random function, and a collision-resistant hash function, before forwarding it to the request receiving unit of the cloud service module.

[0118] After receiving the navigation request, the request receiving unit of the cloud service module forwards it to its own path search unit;

[0119] The path search unit of the cloud service module interacts with the protocol interaction unit of the agent module according to the navigation request, and then searches the encrypted map according to the interaction result. If the search is successful, the corresponding navigation path is sent to the path recovery unit of the user module; if the search fails, an empty string is sent to the path recovery unit of the user module.

[0120] If the path recovery unit of the user module receives the navigation path, it uses the key to decrypt the navigation path to obtain the plaintext navigation path.

[0121] like Figure 2 As shown, the secure navigation method supporting k unordered waypoints allows users to send an encrypted map and a navigation request containing k unordered waypoints to the cloud service provider. After interaction between the cloud service provider and the agent, the shortest path navigation request is searched, and the final navigation result is sent to the user. After the user decrypts the navigation path result locally, they obtain the shortest navigation path from the starting point through k unordered waypoints to the destination.

[0122] In this embodiment, a safe navigation method using k unordered waypoints is applied to a network environment consisting of a user, an agent, and a cloud service provider, and is performed according to the following steps:

[0123] Step 1: System Initialization

[0124] Step 1.1 The user end uses a bilinear mapping-based cryptographic method to construct a homomorphic encryption system Ω, and constructs a key generation function Gen, a homomorphic encryption function Enc, and a homomorphic decryption function Dec. The public-key homomorphic encryption system Ω is a set of ciphertexts (c1, c2, ..., c...). n ) as input, where c i =Enc pk (m i The output is a ciphertext Dec. sk (c)=E(m1,m2,···,m n ), supports Enc pk (m1+m2)=Eval(+,Enc pk (m1),Enc pk (m2)), where Eval is the evaluation function. Then, the key generation function Gen is used to generate the key sk, and the key sk is sent to the agent;

[0125] The client generates two pseudo-random permutation functions T1 and T2, two pseudo-random functions F1 and F2, a random oracle function H, and a collision-resistant hash function h.

[0126] Step 2: Map Encryption

[0127] Step 2.1 The user client uses the Floyd-Warshall algorithm to process the original graph data G = {V, ε} consisting of a set of nodes V and a set of edges ε, where the node set V = {v1, v2, ..., v...}. n}, where ε is the set of edges, for example, (v i ,v j ,w ij ) is from vi to v j The weight is w ij The edges are used to calculate the path distance set PD, where, From v i to v j A series of waypoints on the shortest path are then randomly arranged in the path distance set PD, and a two-dimensional array Arr is initialized.

[0128] Step 2.2 The user terminal requests the i-th node v in the node set V. i Randomly generate a key A key and a set of random numbers r i Where 1≤i≤V; using a key v i The reason for using ∈V and a different key K1 is that the permutation of each path sequence for each node is different from the permutation in the dictionary DX. This protects the privacy of the structure.

[0129] With the i-th node v i Starting from v, for the path distance set PD, from the starting point v i From start to finish v j A shortest path The client uses a collision-resistant hash function h to hash the endpoint v. j The process is performed to produce a hash result h(v). j Using the key sk and the homomorphic encryption function Enc to encrypt the starting point v i From start to finish v j shortest distance Process to obtain the encrypted result. Use a collision-resistant hash function h to hash the random number r. j Process the data to generate a random number hash result h(r). j ); Use the pseudo-random function F1 to hash the random number result h(r) j After processing, it is compared with the shortest path. Perform an XOR operation to obtain the XOR result byte; then hash the result h(v) j XOR result byte and encryption result The concatenated result is obtained after splicing.

[0130] Use a random oracle function H to pair the key. and random number r j Process the data to obtain the result from the random oracle. The concatenation result is combined with the random oracle result. Perform an XOR operation to obtain the array XOR result byte0;

[0131] Use the pseudo-random permutation function T1 to test the endpoint v j After processing, the array index value T1(v) is obtained. j );

[0132] Finally, XOR the array result byte0 with the random number r. j Stored in the two-dimensional array Arr at the vth position i row T1(v) j The position of column Arr[v i ][T1(v j )]superior.

[0133] Using the key sk and the homomorphic encryption function Enc together, the starting point v is... i The x-coordinate and y-coordinate of the data are processed separately and then concatenated to form the encrypted link result Enc(x)||Enc(y);

[0134] Use a random oracle function H to pair the key. and random number r i Process the data to obtain the result from the random oracle. Combine the encrypted linking result Enc(x)||Enc(y) with the random oracle result Perform an XOR operation to obtain the XOR result byte1 of the array;

[0135] Finally, XOR the array result byte1 with the random number r. i Stored in the two-dimensional array Arr at the vth position i The position of row 0 and column 0: Arr[v i [0] on.

[0136] Step 2.3 The user terminal uses the pseudo-random permutation function T2 to permutate the i-th node v i The process is performed to obtain the pseudo-random permutation result T2(v) of the nodes. i Then, use the pseudo-random function F2 on the i-th node v. i Processing is performed to obtain the pseudo-random result F2(v) i ), for node v i and its key The splicing result and the pseudo-random result F2(v) i Perform XOR operation Get node v i The dictionary XOR result DX(v) i ).

[0137] Create a dictionary DX to store the pseudo-random permutation results T2(v) of the nodes. i ) and dictionary XOR result DX(v i ).

[0138] Step 2.4 The client sends the encrypted map EG, composed of the array Arr and the dictionary DX, to the cloud service provider.

[0139] Step 3: Navigation Request Generation

[0140] Step 3.1 The user selects the starting point s and the ending point d to be navigated to, and selects k waypoints {V1, V2, ..., V3} from the node set V. k}; where V k This represents the k-th waypoint.

[0141] Step 3.2 The user terminal processes the starting point s using the pseudo-random permutation function T2 to obtain the pseudo-random permutation result T2(s). Then, it processes the starting point s using the pseudo-random function F2 to obtain the pseudo-random result F2(s). Next, it processes the starting point s using the collision-resistant hash function h to obtain the hash result h(s). Finally, it creates a starting point set I(s) to store the pseudo-random permutation result T2(s), the pseudo-random result F2(s), and the hash result h(s).

[0142] Step 3.3 The user terminal processes the endpoint d using a pseudo-random permutation function T2 to obtain the endpoint pseudo-random permutation result T2(d), then processes the endpoint d using a pseudo-random function F2 to obtain the endpoint pseudo-random result F2(d), then processes the endpoint d using a collision-resistant hash function h to obtain the endpoint hash result h(d), and finally creates an endpoint set I(d) to store the endpoint pseudo-random permutation result T2(d), the endpoint pseudo-random result F2(d), and the endpoint hash result h(d).

[0143] Step 3.4 The user terminal then uses the pseudo-random permutation function T2 to arrange the k path points {V1,V2,…,V...} k The process is performed to obtain a pseudo-random permutation of k path points, resulting in T2(V1), T2(V2), ..., T2(V... k ), where T2(V k ) represents the k-th waypoint V k The pseudo-random permutation results are obtained; then, the pseudo-random function F2 is used to process the k path points to obtain the pseudo-random results F2(V1), F2(V2), ..., F2(V) for the k path points. k ), where F2(V k ) represents the k-th waypoint V k The pseudo-random result is then used; a collision-resistant hash function h is then applied to the k path points to obtain the hash results h(V1), h(V2), ..., h(V) of the k path points. k ), where h(V k ) represents the k-th waypoint Vk The hash result; create a set of k waypoints {I(V1),...,I(V i ),…I(V k )}, where the set of the i-th path points is I(V i ) is used to store the i-th path point V i The pseudo-random permutation result T2(V i ), pseudo-random result F2(V i ) and hash result h(V i ).

[0144] Step 3.5 The user terminal stores the starting point set I(s), the ending point set I(d), and the set of k waypoints {I(V1), ..., I(V2)}. i ),…I(V k The navigation request t is composed of )} q and will navigation request t q Send it to the cloud service provider.

[0145] Step 4: Waypoint Planning

[0146] Step 4.1 The cloud service provider receives the corresponding encrypted map EG and navigation request t from the user's terminal. q .

[0147] Step 4.2 The cloud service provider uses navigation request t q The pseudo-random permutation result T2(s) of the starting set I(s), the pseudo-random permutation result T2(d) of the ending set I(d), and the set of k path points {I(V1),…,I(V i ),…I(V k The pseudo-random permutations of )} are T2(V1), T2(V2), ..., T2(V) k For each dictionary DX in the encrypted map EG, the set of XOR results α = {DX(q) | q ∈ {s, d, V1, V2, ..., V} is obtained. k}}, where DX(q) represents the dictionary XOR result of node q, and is compared with the navigation request t. q Given the starting point pseudo-random result F2(s) of the starting point set I(s), the ending point pseudo-random result F2(d) of the ending point set I(d), and the set of k path points {I(V1),…,I(V2)}. i ),…I(V k The pseudo-random results F2(V1), F2(V2), ..., F2(V)} are given by the given information. k Perform XOR operations on each q and K respectively to obtain the XOR result set β = {q||K} q |q∈{s,d,V1,V2,…,V k}}; where K qThis represents the key of node q.

[0148] Step 4.3 The cloud service provider uses the sequence number ID of node q. q Obtain the ID-th element in the two-dimensional array Arr. q At row 0, column 0, position Arr[ID] q The random number r in ][0] q XOR the array with the result byte2, and use the random oracle function H to set the key K for node q. q and random number r q Process the data to obtain the random oracle result H(K). q ||r q Then XOR the array result byte2 with the random oracle result H(K). q ||r q Perform an XOR operation to obtain the identifier string X. q =(Enc(x)||Enc(y)), which represents the identifier string X of node q. q Split into ciphertext on the horizontal axis and ciphertext of the vertical axis

[0149] Step 4.4 The cloud service provider responds to the navigation request t q Group the nodes and calculate the start-end vector ESD and the end-start vector EDS, where Initialize three node sets P Low P Mid and P High Initialize a list of result paths (List). R .

[0150] For all k path points P i For i∈{1,2,…,k}, calculate the starting point and path vector ESP respectively. i ,in

[0151] Then, based on the origin-end vector ESD and the origin-path vector ESP... i Calculate the angle between two vectors. in, Then randomly select an offset number r, and calculate the angle between the vectors after the offset. in, and the angle between the offset vectors The offset random number r is sent to the agent;

[0152] The agent uses the key sk to decrypt the offset vector angle. get And compare its size with the offset random number r; if... Returns the interaction value cb1 = 0, otherwise returns the interaction value cb1 = 1.

[0153] The cloud service provider then uses the endpoint origin vector (EDS) and the origin path vector (ESP) to determine the endpoint origin vector. i Calculate the angle between the two vectors, then select a random number and calculate the offset value. Send the random number and the offset value to the agent, and the agent returns the interaction value cb2.

[0154] Based on these two interaction values ​​cb2 and cb2, the cloud service provider will route this path point P. i Insert into the corresponding P Low P Mid and P High The node region has the following rules:

[0155] Step 4.5 The cloud service provider determines the grouped node regions P Low P Mid and P High Select the bridging point, and select the middle region P. Mid The point that is perpendicularly closest to the starting point s is taken as the bridging point B1, and the ending point d is selected as the bridging point B2. The calculation method is as follows:

[0156] The cloud service provider is in the intermediate area P Mid A path point P is randomly selected from the middle. i Then, for the middle region P Mid Other pathways P j Calculate the path point vector EP j P i Projection value on the origin-endpoint vector ESD in, Then select another random number r Num Calculate the projected value after offset in, Offset projection value and random number r Num Send to the agent.

[0157] The agent uses the key sk to decrypt the offset projection value. get and with random number r Num Compare sizes, if Returns the interactive value cb Num =0, otherwise return the interactive value cb. Num =1.

[0158] The cloud service provider uses the interaction value cb Num Determine path point P i Is it the point that is perpendicularly closest to the starting point s? If the interaction value is cb Num=1, then the waypoint P i This is the point that is perpendicularly closest to the starting point s; otherwise, other path points P are considered. j Replacement path point P i Continue with step 4.5 until the point that is perpendicularly closest to the starting point s is found, and set it as the bridge point B1.

[0159] Step 4.6 The cloud service provider determines the next node region P based on the data. Low Find the region P along the path from the starting point s to the bridge point B1. Low The appropriate path is as follows:

[0160] The cloud service provider applies different strategies depending on the left and right positions of bridging point B1 on either side of the origin-endpoint vector ESD. If bridging point B1 is on the right side of the origin-endpoint vector ESD, then the entire downstream node region P... Low The path follows a clockwise direction; conversely, if the bridging point B1 is located to the left of the starting and ending vectors ESD, or is located on the line of the starting and ending vectors ESD, the entire next node region P... Low The path follows a counter-clockwise direction;

[0161] The cloud service provider sets bridging point B1 as the temporary endpoint and starting point s as the temporary starting point, and calculates the temporary starting point-end vector ESB1 and its perpendicular vector EOV, where, And create a set of left nodes in the lower region. and a set of right nodes of the lower region

[0162] The cloud service provider is in the next node region P Low A path point P is randomly selected from the middle. i Based on the perpendicular vector EOV of the temporary start and end point vectors and the temporary start path vector ESP i Calculate the angle between two vectors. in, Then randomly select an offset random number r Orient Calculate the angle between the offset vectors. in,

[0163] and the angle between the offset vectors and offset random number r Orient Send to the agent;

[0164] The agent uses the key sk to decrypt the offset vector angle. get and with random number r Orient Compare sizes, if Returns the interactive value cb Orient=0, otherwise return the interactive value cb. Orient =1.

[0165] The cloud service provider uses the interaction value cb Orient Determine the next node region P Low Internal path point P i At the left and right positions on both sides of the temporary start and end vector ESB1, if cb Orient =0, then the path point P will be... i Insert into the right node set of the lower region Conversely, insert it into the set of left nodes in the lower region.

[0166] Step 4.7 The cloud service provider selects a suitable path point and adds it to the result path list based on the clockwise or counterclockwise path order determined by bridging point B1. R And serve as the next temporary starting point:

[0167] If the path proceeds clockwise, then the right node set in the lower region is... Randomly select a path point P i For the set of right nodes in the lower region Other pathways P j Calculate the path point vector EP j P i The projection value onto the perpendicular vector EOV of the temporary start and end vectors. in, Then select another random number r Scan Calculate the projected value after offset in, Offset projection value and random number r Scan Send to the agent

[0168] The agent uses the key sk to decrypt the offset projection value. get and with random number r Scan Compare sizes, if Returns the interactive value cb Scan =0, otherwise return the interactive value cb. Scan =1;

[0169] The cloud service provider uses the interaction value cb Scan Determine path point P i Is it the most suitable path in the clockwise direction? If the interaction value is cb Scan =1, then the waypoint P i This is the most suitable path point in the clockwise direction; otherwise, other path points P are not considered. jReplacement path point P i Continue with step 4.7 until the most suitable waypoint in the clockwise direction is found, and add it to the resulting path list. R And serve as the next temporary starting point;

[0170] If the path proceeds counterclockwise, then the set of left nodes in the lower region... Perform step 4.7 to find the most suitable path point in the counter-clockwise direction and add it to the result path list. R And serve as the next temporary starting point.

[0171] Step 4.8 The cloud service provider traverses the next node region P based on the temporary starting point s and the temporary ending point B1. Low Then, add the temporary endpoint B1 to the result path list List. R And use it as the next temporary starting point, with the temporary ending point set as B2.

[0172] Step 4.9 The cloud service provider, based on the temporary starting point B1 and the temporary ending point B2, in the intermediate area P Mid A path point P is randomly selected from the middle. i Then, for the middle region P Mid Other pathways P j Calculate the path point vector EP j P i Projection value on the temporary start-end vector EB1B2 in, Then select another random number r VNH Calculate the projected value after offset in, Offset projection value and random number r VNH Send to the agent.

[0173] The agent uses the key sk to decrypt the offset projection value. get and with random number r VNH Compare sizes, if Returns the interactive value cb VNH =0, otherwise return the interactive value cb. VNH =1;

[0174] The cloud service provider uses the interaction value cb VNH Determine path point P i Is it the point that is perpendicularly closest to the temporary starting point B1? If the interaction value is cb Num =1, then the waypoint P i This is the point that is perpendicularly closest to the starting point B1; otherwise, other path points P are considered. jReplacement path point P i Continue with step 4.9 until the point that is perpendicularly closest to the starting point B1 is found, and add it to the resulting path list List. R And serve as the next temporary starting point.

[0175] Step 4.10 The cloud service provider traverses the intermediate region P based on the temporary starting point B1 and the temporary ending point B2. Mid Then, the current temporary starting point is P. s The current temporary destination is B2.

[0176] Step 4.11 The cloud service provider searches for a temporary starting point P. s From departure to temporary destination B2, passing through node region P High The appropriate path is as follows:

[0177] The cloud service provider bases its services on a temporary starting point P. s At the left and right positions on either side of the starting and ending vectors ESD, different strategies are executed. If the temporary starting point P... s If the starting and ending vectors ESD are located to the right of the entire upper node region P, then... High The path follows a counter-clockwise direction; conversely, if the temporary starting point P... s The entire upper node region P is located to the left of the start and end point vectors ESD, or directly on the line of the start and end point vectors ESD. High The path follows a clockwise direction.

[0178] The cloud service provider calculates the temporary origin-endpoint vector EP. s B2 and its perpendicular vector EOV′, where And create a set of left nodes for the upper region. and a set of right nodes of the upper region

[0179] The cloud service provider is in the upstream node region P High A path point P is randomly selected from the middle. i Based on the perpendicular vector EOV′ of the temporary start and end point vectors and the temporary start path vector EP s P i Calculate the angle between two vectors. in, Then randomly select an offset random number r Split Calculate the angle between the offset vectors. in,

[0180]

[0181] and offset random number r Split Send to the agent.

[0182] The agent uses the key sk to decrypt the offset vector angle. get and with random number r Split Compare sizes, if Returns the interactive value cb Split =0, otherwise return the interactive value cb. Split =1;

[0183] The cloud service provider uses the interaction value cb Split Determine the upper node region P High Internal path point P i At the temporary start and end vectors EP s If cb is located to the left and right of B2. Split =0, then the path point P will be... i Insert into the right node set of the upper region Conversely, insert it into the set of left nodes in the upper region.

[0184] Step 4.12 The cloud service provider, based on the aforementioned temporary starting point P, s Given a defined clockwise or counterclockwise path order, select a suitable waypoint and add it to the result path list. R And serve as the next temporary starting point:

[0185] If the path proceeds clockwise, then the left node set in the upper region is... Randomly select a path point P i For the set of left nodes in the upper region Other pathways P j Calculate the path point vector EP j P i The projection value onto the perpendicular vector EOV′ of the temporary start and end vectors. in,

[0186] Then select another random number r Pull Calculate the projected value after offset in,

[0187] Offset projection value and random number r Pull Send to the agent.

[0188] The agent uses the key sk to decrypt the offset projection value. get and with random number r Pull Compare sizes, if Returns the interactive value cb Pull=0, otherwise return the interactive value cb. Pull =1;

[0189] The cloud service provider uses the interaction value cb Pull Determine path point P i Is it the most suitable path in the clockwise direction? If the interaction value is cb Pull =1, then the waypoint P i This is the most suitable path point in the clockwise direction; otherwise, other path points P are not considered. j Replacement path point P i Continue with step 4.12 until the most suitable waypoint in the clockwise direction is found, and add it to the resulting path list. R And serve as the next temporary starting point.

[0190] If the path proceeds counterclockwise, then the set of right nodes in the upper region... Perform step 4.12 to find the most suitable path point in the counter-clockwise direction and add it to the result path list. R And serve as the next temporary starting point.

[0191] Step 4.13 The cloud service provider determines the temporary starting point P. s After traversing the upper node region P with the temporary endpoint B2, High Then, add the temporary endpoint B2 to the result path list List. R .

[0192] Step 5: Navigation route search:

[0193] Step 5.1 The cloud service provider uses the result path list (List) R Navigation request t q The set of starting points I(s), the set of ending points I(d), and the set of k waypoints {I(V1), ..., I(V2)} are given. i ),...I(V k )}, initialize the navigation path Route; define variable i and initialize i = 1.

[0194] Step 5.2 The cloud service provider selects the starting point s as the temporary starting point and uses navigation request t. q The pseudo-random permutation result T2(s) of the starting point set I(s) in the encrypted map EG is used to retrieve the dictionary DX in the encrypted map, obtain the corresponding dictionary XOR result set α′=DX(s) in the dictionary DX, and then compare it with the navigation request t. q Perform an XOR operation on the pseudo-random starting result F2(s) of the starting set I(s) to obtain the XOR result β′=s||K q Among them, K s The key representing the starting point s.

[0195] Step 5.3 Cloud service provider selects the result path list. R The i-th path point V i As a temporary endpoint; and using the sequence number ID of the starting point s. s and temporary endpoint V i The pseudo-random permutation result of the path points T2(V) i ), obtain the ID-th element in the two-dimensional array Arr. s row T2(V) i ) column position Arr[ID s ][T2(V i The random number r in )] s XOR the array with the result byte3, and use the random oracle function H to find the key K at the starting point s of the XOR result β′. s and random number r p Process the data to obtain the random oracle result H(K). s ||r p Then XOR the array result byte3 with the random oracle result H(K). s ||r p Perform an XOR operation to obtain the identifier string X. s ′, using a collision-resistant hash function h to hash random number r p Process the data to obtain the endpoint hash result h(r). p Then, use the pseudo-random function F1 to obtain the pseudo-random result F1(h(r)). p Meanwhile, a temporary endpoint V is also used. i The path point hash result h(V) i For the identifier string X s Divide the data into segments, obtaining the distance from the temporary starting point s to the temporary ending point V. i The best path And add the navigation path Route.

[0196] Step 5.4 will V i As a temporary starting point, then from the list of result paths (List) R V, the (i+1)th path point i+1 As a temporary endpoint, return to step 5.2 and execute sequentially until i+1>k, finally obtaining the navigation path Route.

[0197] Step 5.5 The cloud service provider sends the navigation route to the user's client.

[0198] Step Six: Navigation Path Restoration

[0199] Step 6.1 The user receives the navigation path Route from the cloud service provider and uses the key sk to decrypt the navigation path Route to obtain the navigation path;

[0200] In summary, this invention improves upon dense-state navigation services, solves the problem of shortest path navigation for k unordered waypoints, and realizes a safe navigation method and system that supports k unordered waypoints. It can effectively resist security threats from untrusted navigation service providers, thereby protecting users' privacy and travel safety.

Claims

1. A safe navigation system supporting k unordered waypoints, characterized by: User module, cloud service module and agent module; The user module includes: a system initialization unit, a map encryption module, a navigation request unit, and a path recovery unit; The cloud service module includes: a map storage unit, a request receiving unit, and a path searching unit; The proxy module includes: a key receiving unit and a protocol interaction unit; The system initialization unit of the user module generates a pseudo-random permutation function, a pseudo-random function, a random oracle function, and a collision-resistant hash function and discloses them to all units in the system, and then generates a key and sends it to the map encryption unit, the path recovery unit of the user module, and the key receiving unit of the proxy module respectively; The key receiving unit of the proxy module receives the key and forwards it to its own protocol interaction unit; The map encryption unit of the user module encrypts the original map data stored in itself according to the received key using the key, the pseudo-random permutation function, the pseudo-random function, the random oracle function and the collision-resistant hash function to generate an encrypted map, and then sends the encrypted map to the map storage unit of the cloud service module; The map storage unit of the cloud service module receives the encrypted map, stores it, and forwards it to its own path search unit; The navigation request unit of the user module obtains the starting point, the end point, and k waypoints selected by the user, and generates a navigation request using the pseudo-random permutation function, the pseudo-random function, and the anti-collision hash function, and then forwards it to the request receiving unit of the cloud service module; After receiving the navigation request, the request receiving unit of the cloud service module forwards it to its own path search unit; The path search unit of the cloud service module interacts with the protocol interaction unit of the proxy module according to the navigation request, thereby searching the encrypted map according to the interaction result, and if the search is successful, sending the corresponding navigation path to the path recovery unit of the user module, and if the search fails, sending an empty string to the path recovery unit of the user module; If the path recovery unit of the user module receives the navigation path, it uses the key to decrypt the navigation path to obtain a plain text navigation path.

2. A safe navigation method supporting k unordered waypoints, characterized by Applied in a network environment consisting of a user terminal, a cloud service provider, and an agent, the secure navigation method is performed in the following steps: Step 1: System initialization: Step 1.1: The user terminal uses a cryptographic method based on bilinear mapping to construct a homomorphic encryption system Ω, and constructs a key generation function Gen, a homomorphic encryption function Enc, and a homomorphic decryption function Dec, and then uses the key generation function Gen to generate a key sk, and sends the key sk to the agent; The user terminal generates two pseudo-random permutation functions T1, T2, two pseudo-random functions F1, F2, a random oracle function H, and a collision-resistant hash function h; Step 2: Map encryption: In step 2.1, the user end uses the Floyd-Warshall algorithm to calculate the original map data G = {V, ε} consisting of the node set V and the edge set ε to obtain a randomly arranged path distance set PD, and initialize a two-dimensional array Arr; Step 2.2 The user terminal performs a query on the ith node v in the node set V. i Generate a random key A key and a set of random numbers r i , where 1≤i≤|V|; |V| represents the total number of nodes; Take the i-th node v i As the starting point, for the path distance set PD from the starting point v i From start to finish j A shortest path The user terminal uses a collision-resistant hash function h to hash the endpoint v j Processing to generate a hash result h(v j );Use the key sk and homomorphic encryption function Enc to encrypt the starting point v i Departure to the end point j The shortest distance Process and obtain the encrypted result Use collision-resistant hash function h to hash the random number r j Processing to generate a random number hash result h(r j ); Use pseudo-random function F1 to hash the random number result h(r j ) is processed and the shortest path Perform XOR processing to obtain the XOR result byte; convert the hash result h(v j ), XOR result byte and encryption result After splicing, we get the concatenation result by; Use the random oracle function H to and a random number r j Process and obtain the random oracle result The concatenation result by and the random oracle result Perform XOR operation to obtain the array XOR result byte0; Use pseudo-random permutation function T1 to sort the endpoint v j Processing is performed to obtain the array index value T1(v j ); Finally, the array XOR result byte0 and the random number r j Stored in the two-dimensional array Arr i Row T1(v j ) column position Arr[v i ][T1(v j )]superior; Use the key sk and the homomorphic encryption function Enc to encrypt the starting point v i The horizontal coordinate x and the vertical coordinate y are processed separately and then concatenated into the encrypted link result Enc(x)||Enc(y); Use the random oracle function H to and a random number r i Process and obtain the random oracle result The encrypted link result Enc(x)||Enc(y) and the random oracle result Perform XOR operation to obtain the array XOR result byte1; Finally, the array XOR result byte1 and the random number r i Stored in the two-dimensional array Arr i The position of row 0 column Arr[v i ][0]Up; In step 2.3, the user terminal uses the pseudo-random permutation function T2 to sort the i-th node v i Processing is performed to obtain the pseudo-random arrangement result of nodes T2(v i ), and then use the pseudo-random function F2 to generate the i-th node v i Processing is performed to obtain a pseudo-random result F2(v i ), for node v i and its key The splicing result and the pseudo-random result F2(v i ) performs XOR operation Get node v i The dictionary XOR result DX(v i ); Create a dictionary DX to store the pseudo-random permutation results of nodes T2(v i ) and the dictionary XOR result DX(v i ); Step 2.4: The client sends the encrypted map EG composed of the array Arr and the dictionary DX to the cloud service provider; Step 3: Generate navigation request: Step 3.1 The user terminal selects the starting point s and the end point d to be navigated, and selects k waypoints {V1, V2, ..., V k }; where V k represents the kth waypoint; In step 3.2, the user terminal processes the starting point s using the pseudo-random permutation function T2 to obtain the starting point pseudo-random permutation result T2(s), and then processes the starting point s using the pseudo-random function F2 to obtain the starting point pseudo-random result F2(s), and then processes the starting point s using the collision-resistant hash function h to obtain the starting point hash result h(s), and finally creates a starting point set I(s) for storing the starting point pseudo-random permutation result T2(s), the starting point pseudo-random result F2(s) and the starting point hash result h(s); In step 3.3, the user terminal processes the end point d using the pseudo-random permutation function T2 to obtain the end point pseudo-random permutation result T2(d), and then processes the end point d using the pseudo-random function F2 to obtain the end point pseudo-random result F2(d), and then processes the end point d using the collision-resistant hash function h to obtain the end point hash result h(d), and finally creates an end point set I(d) for storing the end point pseudo-random permutation result T2(d), the end point pseudo-random result F2(d) and the end point hash result h(d); In step 3.4, the user terminal uses the pseudo-random permutation function T2 to sort the k waypoints {V1, V2, ..., V k } to obtain the pseudo-random arrangement results of k waypoints T2(V1), T2(V2),…, T2(V k ), where T2(V k ) represents the kth waypoint V k Then, the pseudo-random function F2 is used to process the k waypoints to obtain the pseudo-random results F2(V1), F2(V2),…, F2(V k ), where F2(V k ) represents the kth waypoint V k The pseudo-random result is obtained; then the collision-resistant hash function h is used to process the k waypoints to obtain the hash results h(V1), h(V2),…, h(V k ), where h(V k ) represents the kth waypoint V k The hash result of the method is: create a set of k waypoints {I(V1),…,I(V i ),…I(V k )}, where the i-th waypoint set I(V i ) is used to store the i-th waypoint V i The pseudo-random permutation result T2(V i ), pseudo-random result F2(V i ) and the hash result h(V i ); Step 3.5: The user terminal sets the starting point set I(s), the end point set I(d), and the k waypoint sets {I(V1),…,I(V i ),…I(V k )} forms a navigation request q , and the navigation request t q Sending to the cloud service provider; Step 4: Waypoint Planning: Step 4.1 The cloud service provider receives the corresponding encrypted map EG and navigation request t from the user terminal. q ; Step 4.2: The cloud service provider uses the navigation request t q The pseudo-random permutation result T2(s) of the starting point set I(s), the pseudo-random permutation result T2(d) of the end point set I(d), and the k waypoint sets {I(V1),…,I(V i ),…I(V k )} pseudo-random permutation results T2(V1), T2(V2),…, T2(V k ), search the dictionary DX in the encrypted map EG, and obtain the corresponding dictionary XOR result set α={DX(q)|q∈{s,d,V1,V2,…,V k }}, DX(q) represents the dictionary XOR result of node q and is combined with the navigation request t q The pseudo-random result F2(s) of the starting point set I(s), the pseudo-random result F2(d) of the end point set I(d), and the k waypoint sets {I(V1),…,I(V i ),…I(V k )} pseudo-random results F2(V1), F2(V2),…, F2(V k ) perform XOR operations on each of them, and obtain the XOR result set β = {q||K q |q∈{s,d,V1,V2,…,V k }}; Among them, K q represents the key of node q; Step 4.3: The cloud service provider receives the ID of node q according to its sequence number. q , get the ID in the two-dimensional array Arr q Row 0 column position Arr[ID q ][0] The random number r in q XOR the result byte2 with the array, and use the random oracle function H to calculate the key K of node q q and a random number r q Process and obtain the random oracle result H(K q ||r q ), and then XOR the array result byte2 with the random oracle result H(K q ||r q ) performs XOR operation to obtain the identification string X q =(Enc(x)||Enc(y)), the identifier string X of node q q Split into horizontal axis ciphertext and the ordinate ciphertext Step 4.4: The cloud service provider uses the navigation request t q For k waypoints {V1, V2, …, V k } to obtain the node set P in the next region Low , the set of nodes in the middle area P Mid and the set of nodes in the upper region P High ; Initialize a result path list List R ; Step 4.5: The cloud service provider obtains the node set P from the intermediate region. Mid Select the point with the shortest vertical distance to the starting point s as the bridge point B1, and select the end point d as the bridge point B2; Step 4.6: The cloud service provider calculates the node set P in the next region. Low and bridge point B1 to find the node set P from the starting point s to the bridge point B1 and pass through the next area node set P Low The optimal path for each waypoint in : Step 4.6.1 If the bridge point B1 is on the right side of the line connecting the start point and the end point, then the node set P in the lower region Low The nodes in the search path are clockwise. If the bridge point B1 is on the left side of the line connecting the starting point and the end point or on the line connecting the starting point and the end point, then the node set P in the lower area Low The nodes in search the path in a counter-clockwise direction; Step 4.6.2 Create a set of left nodes in the lower region and a set of right nodes in the lower region And the node set P in the next region Low All the waypoints are inserted into the left node set of the lower region and the right node set of the lower region middle; In step 4.7, the cloud service provider sets the bridge point B1 as the temporary end point, sets the starting point s as the temporary starting point, and selects the left node set of the lower area according to the determined clockwise or counterclockwise path sequence. and the right node set of the lower region Search for an optimal path point and add it to the result path list List R ; In step 4.8, the cloud service provider uses the optimal path point found in step 4.7 as a temporary starting point and searches according to the process in step 4.7 until the next regional node set P is traversed. Low Then, add all the optimal path points and temporary end point B1 to the result path list List R ; In step 4.9, the cloud service provider sets the temporary end point B1 as the temporary starting point and the bridge point B2 as the temporary end point, so that in the middle area P Mid Search for the best path point and add it to the result path list List R ; In step 4.10, the cloud service provider uses the optimal path point found in step 4.9 as a temporary starting point and searches according to the process in step 4.9 until the intermediate area P is traversed. Mid Then, add all the optimal path points to the result path list List R ; Step 4.11: The cloud service provider uses the last optimal path point found as the temporary starting point P s , the bridge point B2 is set as the temporary end point; find the s When starting to the temporary destination B2, it passes through the upper area node set P High The optimal path for each waypoint in ; Step 4.11.1 If the temporary starting point P s On the right side of the line connecting the starting point and the end point, the upper region node set P High The nodes in the search path in a counterclockwise direction. If the temporary starting point P s If the node set P is on the left side of the line connecting the starting point and the end point or on the line connecting the starting point and the end point, then High The nodes search for paths in a clockwise direction; In step 4.11.2, the cloud service provider creates a left node set in the upper region according to the process in step 4.6.

2. and a set of right nodes in the upper region And the upper region node set P High All the waypoints are inserted into the left node set of the upper region and the right node set of the upper region middle; Step 4.12: The cloud service provider calculates the temporary starting point P s The determined clockwise or counterclockwise path sequence starts from the left node set in the upper region and the right node set of the upper region Search for an optimal path point and add it to the result path list List R ; In step 4.13, the cloud service provider uses the optimal path point found in step 4.12 as a temporary starting point and searches according to the process in step 4.12 until the upper regional node set P is traversed. High Then, add all the optimal path points to the result path list List R , and then add the temporary end point B2 to the result path list List R ; Step 5: Navigation path search: In step 5.1, the cloud service provider lists the result paths according to List R , navigation request q The starting point set I(s), the end point set I(d) and the k waypoint sets {I(V1),...,I(V i ),...I(V k )}, initialize the navigation path Route; define the variable i and initialize i=1; In step 5.2, the cloud service provider selects the starting point s as the temporary starting point and uses the navigation request t q The pseudo-random permutation result T2(s) of the starting point set I(s) in the encrypted map EG is retrieved from the dictionary DX, and the corresponding dictionary XOR result set α′=DX(s) in the dictionary DX is obtained, and the result set α′=DX(s) is obtained and compared with the navigation request t q The starting point pseudo-random result F2(s) of the starting point set I(s) is XORed to obtain the XOR result β′=s||K q ; Among them, K s The key representing the starting point s; Step 5.3: The cloud service provider selects the result path list List R The i-th waypoint V i as a temporary end point; and use the sequence ID of the starting point s s and the temporary endpoint V i The pseudo-random arrangement result of the waypoints T2(V i ), get the ID in the two-dimensional array Arr s Row T2(V i )Column position Arr[ID s ][T2(V i )] in the random number r s And the array XOR result byte3, use the random oracle function H to XOR the result β′ with the key K of the starting point s s and a random number r p Process and obtain the random oracle result H(K s ||r p ), and then XOR the array result byte3 with the random oracle result H(K s ||r p ) performs XOR operation to obtain the identification string X s ′, use the collision-resistant hash function h to calculate the random number r p Process and obtain the end point hash result h(r p ), and then use the pseudo-random function F1 to obtain the pseudo-random result F1(h(r p )) and use the temporary endpoint V i The waypoint hash result h(V i ) for the identification string X s ′ is divided to obtain the temporary starting point s to the temporary end point V i The best path sp sVi , and add the navigation path Route; Step 5.4 Set V i As a temporary starting point, then from the result path list List R The i+1th path point V i+1 As a temporary end point, return to step 5.2 and execute sequentially until i+1>k, and finally obtain the navigation path Route; In step 5.5, the cloud service provider sends the navigation path Route to the user end; Step 6: Navigation path recovery: In step 6.1, the user terminal receives the navigation path Route from the cloud service provider, and uses the key sk to decrypt the navigation path Route to obtain the navigation path.

3. The safe navigation method supporting k unordered waypoints according to claim 2, characterized in that: The grouping method in 4.4 is as follows: Set the starting point s as node V s , the end point d is the node V d , k waypoints {V1,V2,…,V k Each path point in} is used as the node V1 of the interaction protocol 1 in turn, so that the interaction value {cb 1,1 ,cb 1,1 ,…,cb 1,k }; among them, cb 1,k represents the kth waypoint V k The interaction value obtained after the first run of interaction protocol one; Set the end point d as node V s , starting point s is the node V d , k waypoints {V1,V2,…,V k Each path point in} is used as the node V1 of the interaction protocol 1 in turn, so that the interaction value {cb 2,1 ,cb 2,1 ,…,cb 2,k }; among them, cb 2,k represents the kth waypoint V k The interaction value obtained after the second run of interaction protocol one; The cloud service provider converts the kth path point V into k Insert into the corresponding node set P Low , P Mid and P High Thus, the kth waypoint V is completed k Grouping; 4. The safe navigation method supporting k unordered waypoints according to claim 3, characterized in that: The interactive protocol 1 is performed as follows: The cloud service provider determines the node V1 and the node V s , node V d , calculate the ciphertext vector E(V s V1) and the vector E(V s V d ) Pick a random number r Num , calculate the projection value after offset The offset angle value and a random number r Num Sent to the agent; wherein, Represents the horizontal coordinate ciphertext of node V1, Represents the ordinate ciphertext of node V1, Represents node V s The horizontal axis ciphertext of Represents node V s The vertical coordinate ciphertext of Represents node V d The horizontal axis ciphertext of Represents node V d The vertical coordinate ciphertext of Represents ciphertext multiplication operation; The agent uses the key sk to decrypt the offset angle value. Get the plaintext angle value and with the random number r Num Compare the size, if The returned interaction value cb=0, otherwise, the returned interaction value cb=1.

5. The safe navigation method supporting k unordered waypoints according to claim 2, characterized in that: The bridge point B1 in step 4.5 is selected according to the following process: Step a: Set the middle area node set P Mid One waypoint is used as node V1, and the other waypoint is used as node V d , starting point s is the node V s , the end point d is the node V d , and then use the interaction protocol 2 to get the interaction value cb Mid ; Step b, if cb Mid =1, then select node V1 as bridge point B1. If cb Mid =0, then continue to select the middle area P Mid After selecting another waypoint as node V1, return to step a and continue until the bridge point B1 is found.

6. The safe navigation method supporting k unordered waypoints according to claim 5, characterized in that: The interactive protocol 2 is carried out according to the following process: The cloud service provider takes nodes V1, V2, and V s , node V d , calculate the ciphertext vector E(V1V2) in the vector E(V s V d ) Pick a random number r Num , calculate the projection value after offset The offset projection value and a random number r Num Sent to the agent; wherein, Represents the horizontal coordinate ciphertext of node V1, Represents the ordinate ciphertext of node V1, Represents the horizontal axis ciphertext of node V2, Represents the ordinate ciphertext of node V2, Represents node V s The horizontal axis ciphertext of Represents node V s The vertical coordinate ciphertext of Represents node V d The horizontal axis ciphertext of Represents node V d The vertical coordinate ciphertext of Represents ciphertext multiplication operation; The proxy uses the key sk to decrypt the offset projection value Get the plaintext projection value and with the random number r Num Compare the size, if The returned interaction value cb=0, otherwise, the returned interaction value cb=1.

7. The safe navigation method supporting k unordered waypoints according to claim 2, characterized in that: The method for determining the left and right positions of the bridge point B1 on the line connecting the starting point and the end point in step 4.6.1 is as follows: Set the bridge point B1 as node V1 and the starting point s as node V s , the end point d is the node V d , and then use the interaction protocol three to get the interaction value cb Orient ; If cb Orient =1 means that the bridge point B1 is on the right side of the line connecting the start and end points; if cb Orient =0 means that the bridge point B1 is on the left side of the line connecting the starting point and the end point or is located on the line connecting the starting point and the end point.

8. The safe navigation method supporting k unordered waypoints according to claim 7, characterized in that: The interactive protocol 3 is performed as follows: The cloud service provider determines the node V1 and the node V s , node V d , calculate the ciphertext vector E(V1V2) in the vector E(V s V d )'s projection value on the perpendicular vector Pick a random number r Num , calculate the projection value after offset The offset projection value and a random number r Num Sent to the agent; wherein, Represents the horizontal coordinate ciphertext of node V1, Represents the ordinate ciphertext of node V1, Represents node V s The horizontal axis ciphertext of Represents node V s The vertical coordinate ciphertext of Represents node V d The horizontal axis ciphertext of Represents node V d The vertical coordinate ciphertext of Represents ciphertext multiplication operation; The proxy uses the key sk to decrypt the offset projection value Get the plaintext projection value and with the random number r Num Compare the size, if The returned interaction value cb=0, otherwise, the returned interaction value cb=1.

9. The safe navigation method supporting k unordered waypoints according to claim 2, characterized in that: The insertion method of step 4.6.2 is as follows: Set the starting point s as node V s , the end point d is the node V d , the node set P in the next region Low Each path point in the interaction protocol is used as the node V1 of the interaction protocol 1, so that the interaction value {cb 3,1 ,cb 3,1 ,…,cb 3,m }, (1≤m≤|P Low |); among them, cb 3,m Represents the node set P in the lower region Low The mth waypoint V m The interaction value obtained after running the interaction protocol 1, |P Low | represents the node set P in the lower region Low The total number of waypoints; If cb 3,m =1, then the path point V m Insert into the right node set of the lower area If cb 3,m = 0, then the path point V m Insert into the left node set of the lower area Thus, the node set P in the next region is completed. Low The mth waypoint V m Insert.

10. The safe navigation method supporting k unordered waypoints according to claim 8, characterized in that: The optimal path point search process in step 4.7 includes: Step a: If you search the path clockwise, then the right node set in the lower area Randomly select a waypoint V1 Low,R As node V1, for the right node set in the lower region Other Waypoints V2 Low,R as node V2, and the starting point s as node V s , bridge point B1 is used as node V d , and then use the interaction protocol three to get the interaction value Step b: If Then the waypoint V1 Low,R As the optimal path point, if Then select the right node set in the lower region Another waypoint V3 Low,R After becoming node V1, return to step a and continue until the optimal path point is found; Step c: If the path is counterclockwise, then the left node set in the lower area Randomly select a waypoint V1 Low,L As node V1, for the left node set in the lower region Other Waypoints V2 Low,L as node V2, and the starting point s as node V s , bridge point B1 is used as node V d , and then use the interaction protocol three to get the interaction value Step d: If Then the waypoint V1 Low,L As the optimal path point, if Then select the left node set in the lower region Another waypoint V3 Low,L After becoming node V1, return to step c and continue executing until the optimal path point is found.

11. The safe navigation method supporting k unordered waypoints according to claim 6, characterized in that: The optimal path point in step 4.9 is searched according to the following process: Step a: Set the middle area node set P Mid One waypoint is used as node V1, and the other waypoint is used as node V d , the temporary starting point B1 is used as node V s , bridge point B2 is used as node V d , and then use the interactive protocol 2 to get the interactive value cb′ Mid ; Step b: If cb′ Mid =1, then select node V1 as the optimal path point. If cb′ Mid =0, then continue to select the middle area P Mid After selecting another waypoint as node V1, return to step a and continue executing until the optimal waypoint is found.