A secure carpool matching method

By encrypting passenger and driver trip data using a bilinear mapping function and a secure hash function, carpooling matching is transformed into a privacy-preserving intersection problem, which solves the problem of insufficient privacy protection in existing carpooling methods and achieves efficient privacy-preserving carpooling matching.

CN119251034BActive Publication Date: 2026-04-24JIAMUSI UNIVERSITY
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
JIAMUSI UNIVERSITY
Filing Date
2024-09-12
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

Existing ride-sharing matching methods fail to effectively protect the privacy of passengers and drivers, especially in the context of the sharing economy, where users' trip data is easily leaked.

Method used

A confidential carpooling matching method is adopted, which uses a bilinear mapping function and a secure hash function to encrypt the trip data of passengers and drivers, and transforms carpooling matching into a privacy intersection problem. A one-to-many privacy intersection scheme is used to achieve fast matching of passengers and drivers.

Benefits of technology

Without compromising user trip privacy, it achieves efficient matching of passengers and drivers, improves the efficiency and practicality of carpooling matching, and protects user privacy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119251034B_ABST
    Figure CN119251034B_ABST
Patent Text Reader

Abstract

The application discloses a secret carpool matching method, and belongs to the field of privacy protection. The application solves the problem that the existing passenger and driver matching method does not protect the privacy of users. The application converts the carpool matching into a privacy intersection problem, and realizes the rapid matching between the passengers and the drivers by using a one-to-many privacy intersection scheme, that is, the intersection of the trip data of the passengers and the drivers is calculated. The trip data of the passengers is composed of the space-time data of the starting point and the ending point, and the trip data of the drivers is composed of the space-time data of the locations where the passengers can get on and off the vehicles in the entire journey. If the trip data of the drivers contains the space-time data of the starting point and the ending point of the passengers, that is, the trip data of the drivers and the space-time data of the starting point and the ending point of the passengers all have intersections, then the drivers and the passengers meet the matching requirements. The application can enable a service provider to match the passengers and the drivers without knowing the trip privacy of the passengers and the drivers. The application method can be applied to carpool matching.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of privacy protection, specifically relating to a confidential carpooling matching method. Background Technology

[0002] Currently, with the rapid development of information technology, people's demand for privacy protection is gradually increasing. Especially in the context of the sharing economy, ordinary users must share private data with service providers and other users in order to use shared services, which poses a significant risk to user privacy. While carpooling services, as a sharing service, bring economic benefits and transportation convenience to users, they also expose users to the risk of trip data leakage. However, existing carpooling research mainly focuses on optimizing the matching of passengers and drivers, neglecting the protection of user privacy. Summary of the Invention

[0003] The purpose of this invention is to address the problem that existing passenger-driver matching methods do not protect user privacy, and to propose a confidential carpooling matching method to protect the privacy of both passengers and drivers.

[0004] The technical solution adopted by the present invention to solve the above-mentioned technical problems is: a confidential carpooling matching method, the method specifically including the following steps:

[0005] Step 1: The service provider generates parameters g1 and g2, where g1 and g2 are the generators of the multiplicative cyclic groups G1 and G2, respectively; and establishes a system that satisfies e(a x ,b y ) = e(a,b) xy =e(a y ,b x The bilinear mapping function e, a∈G1, b∈G2, x∈Z p y∈Z p Z p The integer is defined; a secure hash function H1(m) = g2 is defined. m ,

[0006] The service provider and passenger r pre-execute the vector inadvertent evaluation protocol. After the protocol is executed, passenger r, as the sender, obtains vector C and vector A, and the service provider, as the receiver, obtains vector B and data element Δ.

[0007] The service provider will send the generated g1 and secure hash function to each passenger and each driver;

[0008] Step 2: Each passenger generates a carpooling request based on their own carpooling requirements, and each driver generates a carpooling invitation based on their own carpooling requirements.

[0009] Step 3: Each passenger maps their origin and destination using the spatial overlap partitioning system, encrypts the mapping result using g1 and a secure hash function, and sends the encrypted result to the service provider; each driver maps their origin and destination using the spatial overlap partitioning system, encrypts the mapping result using g1 and a secure hash function, and sends the encrypted result to the service provider.

[0010] The service provider uses a bilinear mapping function to match the encrypted results of each passenger and each driver, and initially filters out matching drivers for each passenger;

[0011] Step 4: Passengers calculate the shared key with each of the initially selected matched drivers, and each initially selected matched driver calculates the shared key with the passenger.

[0012] Step 5: Process the carpooling requests and carpooling invitations generated in Step 2, transforming carpooling matching into a privacy intersection problem. Solve the privacy intersection problem using vectors C, A, B, data element Δ, and the shared key to obtain the final carpooling matching result.

[0013] Furthermore, the vector B and data element Δ obtained by the service provider satisfy the following condition with the vector C and vector A obtained by the passenger r: C = Δ * A + B. It is an integer field. It is an m-dimensional vector composed of elements within a given domain.

[0014] Furthermore, in step two, each passenger generates a carpooling request based on their own carpooling requirements, specifically as follows:

[0015] Let R denote the set of passengers, r∈R, and let Γ denote a carpooling request for passenger r. (r) , and Let R be the origin and the expected departure time of passenger r, respectively. and Let δ be the destination and expected arrival time of passenger r, respectively. (r) For passenger r, space relaxation, Time relaxation for passenger r.

[0016] Furthermore, in step two, each driver generates a carpooling invitation based on their own carpooling requirements, specifically as follows:

[0017] Let D denote the set of drivers, d∈D, and let Γ denote the carpooling invitation of driver d. (d) , and These are the starting point and estimated departure time for driver d, respectively. and These are the destination and estimated arrival time for driver d, respectively. This represents the k-th location where driver d picks up and drops off passengers, excluding the origin and destination. This indicates that driver d is at the location. Estimated pick-up and drop-off time, δ (d) For the driver d, space relaxation, τ (d) Let d be the time relaxation for the driver.

[0018] Furthermore, the specific process of step three is as follows:

[0019] Step 31: For passenger r, the starting point of passenger r is determined using a spatial overlap partitioning system. and the end point Mapped to L (r) , in, and It is the starting point The hexagon it is located in and It is the end point The hexagon it is located in, and a random value v is selected. (r) As passenger r's private key Using private key v (r) For L (r) Encryption is performed, and the encrypted result is obtained. And encrypt the result Send to the service provider;

[0020] Step 3.2: For driver d, the starting point of driver d is determined using a spatial overlap partitioning system. and the end point Mapped to L (d) , in, and It is the starting point The hexagon it is located in and It is the end point The hexagon it is located in, and a random value v is selected. (d) As driver d's private key Using private key v (d) For L (d) Encryption is performed, and the encrypted result is obtained. And encrypt the result Send to the service provider;

[0021] Step 33: The service provider determines whether the condition is satisfied based on the bilinear mapping function: or Among them, O (r) ∈{1,2,3},O (d) ∈{1,2,3};

[0022] If the conditions are met, then passenger r is matched with driver d;

[0023] If this condition is not met, then passenger r and driver d do not match;

[0024] Step 34: Repeat steps 31 to 33 to initially select a matching driver for each passenger.

[0025] Furthermore, the specific process of step four is as follows:

[0026] Let d1, d2, ..., d2 be the drivers initially matched by the service provider for passenger r. n ,Will Send to passenger r, Send to the n drivers who match passenger r;

[0027] Then passenger r calculates the match with the initially selected driver d. i Shared key Match driver d i Calculate the shared key with passenger r.

[0028] Furthermore, in step five, the carpooling requests and carpooling invitations generated in step two are processed, transforming carpooling matching into a privacy-preserving intersection problem; specifically:

[0029] Step 1: Spatial Data Processing

[0030] After dividing the entire space into a grid plane, each grid has a unique corresponding label; starting from passenger r... Centered on passenger r, spatial relaxation δ (r) A circle with radius is denoted as Circle The set of all grid labels within is denoted as .

[0031] The destination will be passenger r. Centered on passenger r, spatial relaxation δ (r) A circle with radius is denoted as Circle The set of all grid labels within is denoted as .

[0032] Driver d iCentered on the k-th location for picking up and dropping off passengers, and centered on driver d i Spatial relaxation δ (d) A circle with radius is denoted as Circle The set of all grid labels within is denoted as . Then use driver d i The driver's d is composed of the set of grid labels corresponding to the starting point, all locations where passengers are picked up and dropped off, and the destination. i Trip space data

[0033] Step 2: Time Data Processing

[0034] After dividing the entire timeline into segments of equal length, each segment has a unique corresponding label.

[0035] The departure time range of passenger r The set of all line segment labels within is denoted as . The arrival time range of passenger r The set of all line segment labels within is denoted as .

[0036] Driver D i exist The time range for picking up and dropping off passengers. The set of all line segment labels within is denoted as . Then driver d i The set consisting of the starting point, all locations where passengers are picked up and dropped off, and the corresponding line segment labels of the destination is denoted as .

[0037] Step 3, and Connect to obtain the starting point of passenger r. spatiotemporal data Will and Connect to obtain the destination of passenger r. spatiotemporal data Will and Connect and obtain driver d i exist Spatiotemporal data at the location Then driver d i Spatiotemporal data of the trip

[0038] like and Then passenger r and driver d i Meets the requirements for vehicle matching;

[0039] Otherwise, passenger r and driver d i The vehicle does not meet the matching requirements.

[0040] Furthermore, in step five, the privacy-preserving intersection problem is solved using vectors C, A, B, and data element Δ to obtain the final carpooling matching result; specifically:

[0041] Step 51: For passenger r, record passenger r's travel data as GS. (r) This will initially select matching drivers d for passenger r. i The itinerary data is recorded as

[0042] Step 5.2. Let m, ω, and λ represent the encoding size, band length, and statistical security parameters, respectively, and define the secure hash function H for each. 1 H 2 and H 3 Among them, the secure hash function H 1 ({0,1} λ ,k′)→{1,2,…,m-ω},{0,1} λ It is a number represented by a binary sequence of length λ, {0,1}. λ And k′ are secure hash functions H 1 The input, the secure hash function H 2 ({0,1} λ ,k′)→{0,1} ω {0,1} ω It is a number represented by a binary sequence of length ω, a secure hash function.

[0043] Passenger r selects random numbers s1, s2, s3 ∈ {0, 1} λ The function row(k′) → {0, 1} m This involves mapping the privacy input k′ to a binary string of length m, where the Hth integer in the binary string... 1 From position (s1,k′) to the Hth position 1 The ω bits between positions (s1,k′)+ω-1 are H 2 (s2,k′); the value corresponding to k′ is H. 3 (s3,k′);

[0044] Step 53, let GS (r) The number of elements in GS is q, and GS (r) The l-th element in is x l GS (r) Encode as a vector P = Encode({(x l H 3(s3,x l ))} 1≤l≤q Encode is the encoding function.

[0045] Passenger r calculates A′ = AP and represents A′ as the binary string (A′)2; then uses sk i Encrypt s1||s2||s3||(A′)2, where "||" represents a concatenation operation, and then share the encrypted result. Send it to the service provider, and the service provider will... Send to the initially matched driver d i ;

[0046] Driver D i Using sk i right Decrypt to obtain s1, s2, s3 and A′, calculate B′=B+Δ*A′, and then define And calculate Y i Send to the service provider;

[0047] The decoding function is Decode(P, x) l = row(x) l )*P=H 3 (s3,x l Passenger r defines F r (x) = Decode(C,x) = row(x) * C, calculate respectively. and And send X0′ and X1′ to the service provider;

[0048] Step 54, if and Then passenger r and driver d i Meet the carpooling matching requirements; otherwise, passenger r and driver d i The carpooling matching requirements are not met.

[0049] Step 55: For each driver initially selected as a match for passenger r, execute steps 51 to 54 respectively to obtain the final drivers who meet the carpooling matching requirements with passenger r.

[0050] Furthermore, the method also includes step six, whereby passengers prioritize selecting the driver with the highest matching degree as their intended driver, and drivers prioritize selecting passengers with the highest degree of trip overlap as their intended passengers.

[0051] Furthermore, the vector P satisfies:

[0052] M*P=[H 3(s3,x1),H 3 (s3,x2),…,H 3 (s3,x q )] T

[0053] Where M is an m*q dimensional binary matrix, and the l-th row of matrix M is composed of x l After the function row(x) l The binary sequence generated by the mapping.

[0054] The beneficial effects of this invention are:

[0055] This invention transforms carpooling matching into a privacy intersection problem. Based on OKVS and VOLE, a one-to-many privacy intersection scheme is designed to achieve rapid matching between passengers and drivers. Specifically, it finds the intersection of the passenger's and driver's trip data. The passenger's trip data consists of the spatiotemporal data of the origin and destination, while the driver's trip data consists of the spatiotemporal data of the locations along the entire route where passengers can be picked up and dropped off. If the driver's trip data includes the spatiotemporal data of the passenger's origin and destination, that is, if the driver's trip data intersects with the spatiotemporal data of the passenger's origin and destination, then the driver and passenger meet the matching requirements.

[0056] This invention constructs a carpooling matching scheme based on privacy set intersection technology, which protects privacy. It enables service providers to match passengers and drivers based on their individual carpooling requests without knowing their travel privacy, thus protecting user privacy. Furthermore, compared to existing methods, this invention improves the efficiency and practicality of carpooling matching. Attached Figure Description

[0057] Figure 1 This is an architectural diagram of the method of the present invention;

[0058] Figure 2 This is a schematic diagram illustrating the privacy intersection of one party and multiple parties in this invention;

[0059] Figure 3 This is a schematic diagram of a single partition;

[0060] Figure 4 This is a schematic diagram of a double partition;

[0061] Figure 5 This is a schematic diagram of the triple partitioning. Detailed Implementation

[0062] Specific Implementation Method 1: The confidential carpooling matching method described in this implementation method specifically includes the following steps:

[0063] Step 1: The service provider generates parameters g1 and g2, where g1 and g2 are the generators of the multiplicative cyclic groups G1 and G2, respectively, and the order of G1 and G2 is a prime number p; and establishes a system that satisfies e(a x ,b y ) = e(a,b) xy =e(a y ,b x The bilinear mapping function e, a∈G1, b∈G2, x∈Z p y∈Z p Z p If e(a) is an integer, then... x ,b y ) = e(a y ,d x If b = d, then b = d; define a secure hash function H1(m) = g2. m , For a given field, such as an integer field;

[0064] The service provider and passenger r pre-execute the Vector Unintentional Evaluation (VOLE) protocol. After the protocol is executed, passenger r, as the sender, obtains vector C and vector A, and the service provider, as the receiver, obtains vector B and data element Δ.

[0065] The service provider will send the generated g1 and secure hash function to each passenger and each driver;

[0066] Step 2: Each passenger generates a carpooling request based on their own carpooling requirements, and each driver generates a carpooling invitation based on their own carpooling requirements.

[0067] Step 3: Each passenger uses the spatial overlap partitioning system to map their own origin and destination, and encrypts the mapping result using g1 and a secure hash function before sending the encrypted result to the service provider; each driver uses the spatial overlap partitioning system to map their own origin and destination, and encrypts the mapping result using g1 and a secure hash function before sending the encrypted result to the service provider.

[0068] The service provider uses a bilinear mapping function to match the encrypted results of each passenger and each driver, and initially filters out matching drivers for each passenger;

[0069] Step 4: Passengers calculate the shared key with each of the initially selected matched drivers, and each initially selected matched driver calculates the shared key with the passenger.

[0070] Step 5: Process the carpooling requests and carpooling invitations generated in Step 2, transforming carpooling matching into a privacy intersection problem. Solve the privacy intersection problem using vector c, vector A, vector B, data element Δ, and the shared key to obtain the final carpooling matching result.

[0071] This invention designs a privacy-preserving intersection scheme for one-to-many parties based on Unintentional Key-Value Storage (OKVS) and Unintentional Vector Linear Evaluation (VOLE). This scheme supports the confidential computation of the intersection between one-party dataset and other multi-party datasets with the help of service providers, transforming the carpooling matching problem into a privacy-preserving intersection problem, and matching suitable passengers and drivers while protecting privacy.

[0072] Specific Implementation Method Two: This implementation method differs from Specific Implementation Method One in that the vector B and data element Δ obtained by the service provider and the vector C and vector A obtained by the passenger r satisfy the following condition: C = Δ*A + B. It is an integer field. It is an m-dimensional vector composed of elements within a given domain.

[0073] The other steps and parameters are the same as in Specific Implementation Method 1.

[0074] Each passenger pre-executes a vector inadvertent pre-evaluation agreement with the service provider. After the agreement is executed, each passenger may have a different vector, and the service provider holds a vector B and a data element Δ corresponding to each passenger. For a passenger, the vector inadvertent pre-evaluation agreement will not be executed again with the service provider before the current carpooling is successful. That is, a passenger only executes the vector inadvertent pre-evaluation agreement with the service provider once during a carpooling process.

[0075] Specific Implementation Method Three: This implementation method differs from Specific Implementation Method One or Two in that, in step two, each passenger generates a carpooling request based on their own carpooling requirements, specifically as follows:

[0076] Let R denote the set of passengers, r∈R, and let Γ denote a carpooling request for passenger r. (r) , and Let R be the origin and the expected departure time of passenger r, respectively. and Let δ be the destination and expected arrival time of passenger r, respectively. (r) Let spatial relaxation be defined as the maximum offset distance that passenger r can accept. Let s be the time relaxation for passenger r, which is the maximum offset duration that passenger r can accept.

[0077] Other steps and parameters are the same as in specific implementation method one or two.

[0078] Specific Implementation Method Four: This implementation method differs from Specific Implementation Methods One to Three in that, in step two, each driver generates a carpooling invitation based on their carpooling requirements, specifically as follows:

[0079] Let D denote the set of drivers, d∈D, and let Γ denote the carpooling invitation of driver d. (d) , and These are the starting point and estimated departure time for driver d, respectively. and These are the destination and estimated arrival time for driver d, respectively. This indicates the k-th location, excluding the origin and destination, where driver d is permitted to pick up and drop off passengers. This indicates that driver d is at the location. Estimated pick-up and drop-off time, δ (d) For the driver d, space relaxation, τ (d) Let d be the time relaxation for the driver.

[0080] The other steps and parameters are the same as those in one of the specific implementation methods one to three.

[0081] Specific Implementation Method Five: This implementation method differs from Specific Implementation Methods One to Four in that the specific process of step three is as follows:

[0082] Step 31: For passenger r, the starting point of passenger r is determined using a spatial overlap partitioning system. and the end point Mapped to L (r) , in, and It is the starting point The hexagon it is located in and It is the end point The hexagon it is located in, and a random value v is selected. (r) As passenger r's private key Using private key v (r) For L (r) Encryption is performed, and the encrypted result is obtained. And encrypt the result Send to the service provider;

[0083] Step 3.2: For driver d, the starting point of driver d is determined using a spatial overlap partitioning system. and the end point Mapped to L (d) , in, and It is the starting point The hexagon it is located in and It is the end point The hexagon it is located in, and a random value v is selected. (d) As driver d's private key Using private key v (d) For L (d) Encryption is performed, and the encrypted result is obtained. And encrypt the result Send to the service provider;

[0084] Step 33: The service provider determines whether the condition is satisfied based on the bilinear mapping function: or Among them, O (r) ∈{1,2,3},O (d) ∈{1,2,3};

[0085] If the conditions are met, then passenger r is matched with driver d;

[0086] If this condition is not met, then passenger r and driver d do not match;

[0087] Step 34: Repeat steps 31 to 33 to initially select a matching driver for each passenger.

[0088] The other steps and parameters are the same as those in one of the specific implementation methods one to four.

[0089] This invention assumes that passengers and drivers with a distance of less than Q km between their origin and destination have a chance of successfully carpooling (e.g., Q = 50 km, Q is greater than δ). (r) Q is greater than δ (d) If the length of the diagonal of a hexagonal partition in a spatial overlap partitioning system is Qkm, then the condition for passengers and drivers to successfully carpool is that their origin or destination is within the same hexagon.

[0090] like Figure 3 , Figure 4 and Figure 5As shown, the definition of a spatial overlapping partitioning system is: determining whether the distance between two points l1 and l2 is less than or equal to a given value Q is equivalent to determining whether these two points are within a circle of diameter Q. To facilitate spatial partitioning, a hexagon with a diagonal length of Q is used to approximate the circle of diameter Q, thus transforming the problem into determining whether two points are within the same hexagon with a diagonal length of Q. The spatial region is triple-divided using hexagons, with any point falling within one of three distinct hexagons. For example, determining whether the distance between two points l1 and l2 is less than or equal to Q is equivalent to determining whether l1 and l2 are within the same hexagon with a diagonal length of Q. Let O1(O2) be the O-th hexagon containing points l1(l2). If there exist O1, O2 ∈ {1, 2, 3} such that... This means that the distance between points l1 and l2 is less than or equal to Q.

[0091] If the starting point of passenger r and driver d is within the same hexagon, or if the ending point of passenger r and driver d is also within the same hexagon, then the passenger and driver have a chance to successfully carpool.

[0092] Specific Implementation Method Six: This implementation method differs from Specific Implementation Methods One to Five in that the specific process of step four is as follows:

[0093] Let d1, d2, ..., d2 be the drivers initially matched by the service provider for passenger r. n ,Will Send to passenger r, Send to the n drivers who match passenger r;

[0094] Then passenger r calculates the match with the initially selected driver d. i Shared key Match driver d i Calculate the shared key with passenger r.

[0095] The other steps and parameters are the same as those in one of the specific implementation methods one to five.

[0096] Specific Implementation Method Seven: This implementation method differs from Specific Implementation Methods One through Six in that, in step five, the carpooling requests and carpooling invitations generated in step two are processed, transforming carpooling matching into a privacy-based intersection problem; specifically:

[0097] Step 1: Spatial Data Processing

[0098] Assume the space is represented by a two-dimensional coordinate system. In this system, the space can be divided into multiple non-overlapping grids of equal size, each with a unique label. Details of space partitioning and grid labeling are described below. The grid size is represented by ssg (e.g., ssg = 500n). Starting from the origin, grids are generated sequentially along the x-axis and y-axis, with each grid having a side length of ssg. Each grid is assigned a unique label, a combination of its row and column numbers. For example, for coordinates (l... x ,l y For a given position l, the grid it belongs to is denoted as grid_l. We define... The row number of grid_l. Let `grid_l` be the column number. Clearly, `grid_l` can be uniquely identified by its row and column numbers. Therefore, using... Used as a tag for grid_l.

[0099] For a position l with spatial relaxation δ, the spatial extent of l can be represented as a circle centered at l and with radius δ, denoted as circle_l. Therefore, the spatial data of l is defined as the set of all grid labels in circle_l, denoted as G. l .

[0100] After dividing the entire space into a grid plane, each grid has a unique corresponding label; starting from passenger r... Centered on passenger r, spatial relaxation δ (r) A circle with radius is denoted as round The area where the passenger r is located is the range of his boarding position. The set of all grid labels within is denoted as .

[0101] The destination will be passenger r. Centered on passenger r, spatial relaxation δ (r) A circle with radius is denoted as round The area where the passenger r disembarks is defined as the range of locations within the circle. The set of all grid labels within is denoted as .

[0102] Driver d i Centered on the k-th location for picking up and dropping off passengers, and centered on driver d i Spatial relaxation δ (d) A circle with radius is denoted as round The area where the driver is located is d. i The range of locations for picking up and dropping off passengers at the k-th location will be circular. The set of all grid labels within is denoted as . Then use driver d i The driver's d is composed of the set of grid labels corresponding to the starting point, all locations where passengers are picked up and dropped off, and the destination. i Trip space data

[0103] If a circle exists ( (spatial range) and circle ( The spatial range has overlapping parts, that is... This means and Match within their spatial relaxation. Similarly, if a circle exists... ( (spatial range) and circle ( The spatial range has overlapping parts, that is... This means and Match within their space margins. Therefore, when and At that time, passenger r and driver d i The space meets the requirements for carpooling, driver d i The locations where passengers can be picked up and dropped off include the passenger r's starting point and destination.

[0104] Step 2: Time Data Processing

[0105] Assuming time is represented by a one-dimensional coordinate system, in which time can be divided into multiple non-overlapping time segments of equal size, each with a unique label. The details of time division and labeling are as follows: the size of a time segment is represented by `stg`. Starting from the origin, time segments of length `stg` are generated sequentially, and each time segment is assigned a unique label. For example, for coordinates `t`... z The time point t, the time period it falls within is marked as seg_t, and the label is...

[0106] For a time point t with a time relaxation of τ, the time range of t is from t-τ to t+τ. Therefore, the time data of t is defined as the set of all time period labels within the range of t-τ to t+τ, denoted as S. t ;

[0107] After dividing the entire timeline into segments of equal length, each segment has a unique corresponding label.

[0108] The acceptable departure time range for passenger r The set of all line segment labels within is denoted as . The acceptable arrival time range for passenger r The set of all line segment labels within is denoted as .

[0109] Driver D i exist The time range for picking up and dropping off passengers. The set of all line segment labels within is denoted as . Then driver d i The set consisting of the starting point, all locations where passengers are picked up and dropped off (excluding the starting and ending points), and the line segment labels corresponding to the ending point is denoted as .

[0110] Similar to spatial matching, when and At that time, passenger r and driver d i Matching in time.

[0111] Step 3, and Connect to obtain the starting point of passenger r. spatiotemporal data Will and Connect to obtain the destination of passenger r. spatiotemporal data Will and Connect and obtain driver d i exist Spatiotemporal data at the location Then driver d i Spatiotemporal data of the trip

[0112] like and Explanation of driver d i itinerary data Not only with passenger r's starting point data Intersecting, and also with the destination data of passenger r. If they intersect, then passenger r and driver d i Meets the requirements for vehicle matching;

[0113] Otherwise, passenger r and driver d i The vehicle does not meet the matching requirements.

[0114] The other steps and parameters are the same as those in one of the specific implementation methods one to six.

[0115] Service providers not only need to evaluate driversi Whether the locations where passengers can be picked up and dropped off include passenger r's origin and destination also requires evaluation of whether the corresponding times of their matched locations are the same. Therefore, we transform the safe ride-sharing matching calculation into a privacy intersection problem, that is, transform the carpooling matching problem into a problem of solving... The problem.

[0116] Specific implementation method eight: Combination Figure 2 This implementation method is described below. The difference between this implementation method and one of the specific implementation methods one through seven is that, in step five, the privacy intersection problem is solved based on vector C, vector A, vector B, and data element Δ to obtain the final carpooling matching result; specifically:

[0117] Step 51: For passenger r, record passenger r's travel data as GS. (r) The driver d will be initially selected for passenger r. i The itinerary data is recorded as

[0118] Step 5.2. Let m, ω, and λ represent the encoding size, band length, and statistical security parameters, respectively, and define the secure hash function H for each. 1 H 2 and H 3 Among them, the secure hash function H 1 ({0,1} λ ,k′)→{1,2,…,m-ω},{0,1} λ It is a number represented by a binary sequence of length λ, {0,1}. λ And k′ are secure hash functions H 1 The input, the secure hash function H 2 ({0,1} λ ,k′)→{0,1} ω {0,1} ω It is a number represented by a binary sequence of length ω, a secure hash function.

[0119] Passenger r selects random numbers s1, s2, s3 ∈ {0, 1} λ The function row(k′) → {0, 1} m This involves mapping the privacy input k′ to a binary string of length m, where the Hth integer in the binary string... 1 From position (s1,k′) to the Hth position 1 The ω bits between positions (s1,k′)+ω-1 are H 2 (s2,k′); the value corresponding to k′ is H. 3 (s3,k′);

[0120] Step 53, let GS(r) The number of elements in GS is q, and GS (r) The l-th element in is x l GS (r) Encode as a vector P = Encode({(x l H 3 (s3,x l ))} 1≤l≤q Encode is the encoding function.

[0121] Passenger r calculates A′ = AP and represents A′ as the binary string (A′)2; then uses sk i Encrypt s1||s2||s3||(A′)2 using direct XOR encryption, where "||" represents a concatenation operation, and then share the encrypted result. Send it to the service provider, and the service provider will Send to the initially matched driver d i ;

[0122] Driver D i Using sk i right Decrypt to obtain s1, s2, s3 and A′, calculate B′=B+Δ*A′, and then define And calculate Y i Send to the service provider;

[0123] The decoding function is Decode(P,x) l = row(x) l )*P=H 3 (s3,x l Passenger r defines F r (x) = Decode(C,x) = row(x) * C, calculate respectively. and And send X0′ and X1′ to the service provider;

[0124] Step 54, if and Then passenger r and driver d i Meet the carpooling matching requirements; otherwise, passenger r and driver d i The carpooling matching requirements are not met.

[0125] Step 55: For each driver initially selected as a match for passenger r, execute steps 51 to 54 respectively to obtain the final drivers who meet the carpooling matching requirements with passenger r.

[0126] The other steps and parameters are the same as those in any of the specific implementation methods one to seven.

[0127] Service providers compare X0′, X1′ and Y i ',if and mean and (F r (x)=Decode(C,x)=row(x)*C, for if (y and If some element in the array is equal to another element, then row(y)*P = H. 3 (s3,y), Therefore if mean Passenger r and driver d i According to X0′∩Y i 'Calculate Similarly, if mean Passenger r and driver d i According to X1′∩Y i 'Calculate This means that passenger r and driver d i The carpooling matching requirements are met. For passenger r and driver d who meet the carpooling matching requirements... i The service provider will intersect the part (X0′∩Y) i ′ and X1′∩Y i ′) sent to them, passenger r and driver d i Thus obtain and Right now Similarly, driver d i You can also get and Right now

[0128] Specific Implementation Method Nine: This implementation method differs from Specific Implementation Methods One to Eight in that it further includes step six, whereby passengers prioritize selecting the driver with the highest matching degree as their intended driver, and drivers prioritize selecting passengers with the highest overlap in their itineraries as their intended passengers.

[0129] The other steps and parameters are the same as those in one of the specific implementation methods one to eight.

[0130] If passenger r and driver d meet the carpooling requirements, it means that driver d must be able to pick up and drop off passengers at at least two locations. and The origin of passenger r respectively and the end point Matching in space and time, i.e. and Passengers will prioritize those with a high degree of matching ( Drivers with a high ba value are selected as potential carpooling drivers. Passengers can accept carpooling invitations from these drivers or send carpooling requests to them. If the driver agrees, the carpooling is successful. Drivers will also prioritize passengers with high overlap in their itineraries (high ba value) as potential carpooling passengers. Drivers can accept carpooling requests from these passengers or send carpooling invitations to them. If the passenger agrees, the carpooling is successful.

[0131] Specific Implementation Method Ten: This implementation method differs from Specific Implementation Methods One to Nine in that the vector P satisfies:

[0132] M*P=[H 3 (s3,x1),H(s3,x2),…,H 3 (s3,x q )] T

[0133] Where M is an m*q dimensional binary matrix, and the l-th row of matrix M is composed of x l After the function row(x) l The binary sequence generated by the mapping.

[0134] The other steps and parameters are the same as those in any of the specific implementation methods one to nine.

[0135] The above examples of the present invention are merely illustrative of the computational model and process of the present invention, and are not intended to limit the implementation of the present invention. Those skilled in the art will recognize that other variations or modifications can be made based on the above description. It is impossible to exhaustively list all possible implementations here. Any obvious variations or modifications derived from the technical solutions of the present invention are still within the scope of protection of the present invention.

Claims

1. A confidential carpooling matching method, characterized in that, The method specifically includes the following steps: Step 1: Service provider generates parameters and ,in, and They are multiplication cyclic groups and Generate elements; and establish the set of elements that satisfy the condition. bilinear mapping function , , , , For integers; define a secure hash function. , ; Service providers and passengers The pre-execution vector unintentionally evaluates the protocol; after the protocol is executed, the passenger... As the sender, obtain the vector sum vector The service provider, as the recipient, obtains the vector. and data elements ; The service provider will generate A secure hash function is sent to each passenger and each driver; Step 2: Each passenger generates a carpooling request based on their own carpooling requirements, and each driver generates a carpooling invitation based on their own carpooling requirements. Step 3: Each passenger maps their origin and destination using the spatial overlap partitioning system, and then uses... After encrypting the mapping result using a secure hash function, the encrypted result is sent to the service provider; each driver uses the spatial overlap partitioning system to map their own origin and destination, and uses... After encrypting the mapping result with a secure hash function, the encrypted result is sent to the service provider; The service provider uses a bilinear mapping function to match the encrypted results of each passenger and each driver, and initially filters out matching drivers for each passenger; Step 4: Passengers calculate the shared key with each of the initially selected matched drivers, and each initially selected matched driver calculates the shared key with the passenger. Step 5: Process the carpooling requests and invitations generated in Step 2, transforming carpooling matching into a privacy-preserving intersection problem, based on vector... ,vector ,vector Data elements The privacy intersection problem of the shared key is solved to obtain the final carpooling matching result.

2. The confidential carpooling matching method according to claim 1, characterized in that, The vector obtained by the service provider and data elements With passengers The obtained vector sum vector satisfy: , , It is an integer field. , , , It consists of elements within a given field. Dimensional vector.

3. The confidential carpooling matching method according to claim 2, characterized in that, In step two, each passenger generates a carpooling request based on their own carpooling requirements, specifically as follows: make Indicates a group of passengers. , will passengers The carpooling request is recorded as , , and Passengers The starting point and expected departure time, and Passengers The destination and expected arrival time, For passengers Spare space, For passengers The time is relaxed.

4. The confidential carpooling matching method according to claim 3, characterized in that, In step two, each driver generates a carpooling invitation based on their carpooling requirements, specifically as follows: make Represents a group of drivers. , the driver The carpooling invitation is recorded as , , and drivers The starting point and the expected departure time, and drivers The destination and estimated arrival time, This indicates that, in addition to the starting point and the destination, the driver... The first step in picking up and dropping off passengers One location, Indicates driver At the location The estimated pick-up and drop-off time, For the driver Spare space, For the driver The time is relaxed.

5. The confidential carpooling matching method according to claim 1, characterized in that, The specific process of step three is as follows: Step 31, for passengers Passengers are grouped through a spatial overlap partitioning system. The starting point and the end point Mapped to , ,in, It is the starting point The hexagon it is located in It is the end point The hexagon it is located in, and a random value is selected. As a passenger private key, Using private key right Encryption is performed, and the encrypted result is obtained. , and encrypt the result Send to the service provider; Step 32, for the driver By using a spatial overlap partitioning system, drivers The starting point and the end point Mapped to , ,in, It is the starting point The hexagon it is located in It is the end point The hexagon it is located in, and a random value is selected. As a driver private key, Using private key right Encryption is performed, and the encrypted result is obtained. , and encrypt the result Send to the service provider; Step 33: The service provider determines whether the condition is satisfied based on the bilinear mapping function: or ,in, ; If satisfied, then the passenger With the driver match; If not satisfied, then the passenger With the driver Mismatch; Step 34: Repeat steps 31 to 33 to initially select a matching driver for each passenger.

6. The confidential carpooling matching method according to claim 5, characterized in that, The specific process of step four is as follows: Service provider for passengers The initially selected matching drivers are denoted as follows: ,Will Send to passengers ,Will Send to passengers Matching One driver; Then passengers Calculate the drivers matched with the initial screening Shared key Match drivers Calculate the relationship with passengers Shared key .

7. The confidential carpooling matching method according to claim 6, characterized in that, In step five, the carpooling requests and carpooling invitations generated in step two are processed, transforming carpooling matching into a privacy-preserving intersection problem; specifically: Step 1: Spatial Data Processing After dividing the entire space into a grid plane, each grid has a unique corresponding label; this will be based on passengers. The starting point Centered on passengers Spatial relaxation A circle with radius is denoted as , will circle The set of all grid labels within is denoted as . ; Passengers The End Centered on passengers Spatial relaxation A circle with radius is denoted as , will circle The set of all grid labels within is denoted as . ; will be the driver The first step in picking up and dropping off passengers Centered on a location, with the driver Spatial relaxation A circle with radius is denoted as , will circle The set of all grid labels within is denoted as . Then use the driver The driver's origin, all locations for picking up and dropping off passengers, and the destination are represented by a set of grid tags corresponding to these locations. Trip space data , ; Step 2: Time Data Processing After dividing the entire timeline into segments of equal length, each segment has a unique corresponding label. Passengers Departure time range ( , The set of all line segment labels within a given range is denoted as . , will passengers Arrival time range ( , The set of all line segment labels within a given range is denoted as . ; driver exist The time range for picking up and dropping off passengers ( , The set of all line segment labels within a given range is denoted as . Then the driver The set consisting of the starting point, all locations where passengers are picked up and dropped off, and the corresponding line segment labels of the destination is denoted as . ; Step 3, and Connect and get passengers starting point spatiotemporal data ,Will and Connect and get passengers end spatiotemporal data ,Will and Connect and get the driver exist Spatiotemporal data at the location Then the driver Spatiotemporal data of the trip ; like Then the passenger With the driver Meets the requirements for vehicle matching; Otherwise, passengers With the driver The vehicle does not meet the matching requirements.

8. The confidential carpooling matching method according to claim 7, characterized in that, In step five, based on the vector ,vector ,vector and data elements Solve the privacy intersection problem to obtain the final carpooling matching result; Specifically: Step 51, for passengers , will passengers The itinerary data is recorded as This will be for passengers Initially selected matched drivers The itinerary data is recorded as ; Step 52, Order , and These represent the encoding size, band length, and statistical security parameters, respectively, and define the secure hash function for each. and Among them, secure hash function , It is a length of The number represented by the binary sequence, and It is a secure hash function Input, secure hash function , It is a length of The binary sequence representing the number, a secure hash function. ; passenger Select random number ,function Immediately entering privacy information Mapped to a length of The binary string, the first one in the binary string Position 1 to 2 Between positions bits are ; The corresponding value is ; Step 53, Order The number of elements in is ,and The first in The elements are ,Will Encode as a vector = , It is an encoding function. ; passenger calculate and will Represented as a binary string Reuse right Encryption is required. This indicates a connection operation, and the result will be encrypted. Send it to the service provider, and the service provider will Send to initially matched drivers ; driver use right Decryption and ,calculate redefining and calculate ,Will Send to the service provider; The decoding function is passenger r definition Calculate separately and and will and Send to the service provider; Step 54, if and Then the passenger driver Meet the carpooling matching requirements; otherwise, passengers driver The carpooling matching requirements are not met. Step 55: For each driver initially matched with passenger r, execute steps 51 to 54 respectively to obtain the final match with passenger r. Drivers who meet the carpooling matching requirements.

9. A confidential carpooling matching method according to claim 8, characterized in that, The method also includes a sixth step: passengers prioritize selecting the driver with the highest matching degree as their intended driver, and drivers prioritize selecting passengers with the highest overlap in their itineraries as their intended passengers.

10. A confidential carpooling matching method according to claim 8, characterized in that, The vector satisfy: in, for A binary matrix of dimension 1, a matrix The The line is formed by After function The binary sequence generated by the mapping.

Citation Information

Patent Citations

  • Driver-passenger matching mechanism oriented to privacy protection

    CN112752232A

  • Online car-hailing privacy protection method based on third-party operation privacy set intersection technology

    CN116055058A