Confidential car-pooling matching method
The confidential carpooling method addresses privacy concerns in carpooling by using cryptographic techniques to encrypt and match itineraries, ensuring efficient and practical carpooling without exposing user data.
Patent Information
- Application Number
- CN202411278190.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-12
- Publication Date
- 2025-01-03
- Estimated Expiration
- 2044-09-12
AI Technical Summary
Existing carpooling methods prioritize passenger and driver matching over privacy protection, exposing users to trip data leakage risks.
A confidential carpooling method that uses cryptographic techniques and spatial partitioning to encrypt and match passenger and driver itineraries without revealing privacy, employing bilinear mapping functions and secure hash functions to ensure privacy-protected intersections.
Enables efficient and practical carpool matching while protecting user privacy by transforming the process into a privacy intersection problem, ensuring that service providers can match users without knowing their itineraries.
Smart Images

Figure CN119251034A_ABST
Abstract
Description
Technical Field
[0001] The invention belongs to the field of privacy protection, and in particular relates to a confidential carpooling matching method. Background Art
[0002] At present, 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 sharing services, which brings great risks to users' privacy. As a sharing service, carpooling services bring economic benefits and transportation convenience to users, but also expose users to the risk of trip data leakage. However, existing carpooling research mainly focuses on optimizing the matching of passengers and drivers, while ignoring the protection of user privacy. Summary of the invention
[0003] The purpose of the present invention is to solve the problem that the existing passenger and driver matching method does not protect the privacy of users, and propose a confidential carpool matching method for protecting the privacy of passengers and drivers.
[0004] The technical solution adopted by the present invention to solve the above technical problems is: a confidential carpooling matching method, which specifically includes the following steps:
[0005] Step 1: The service provider generates parameters g1 and g2, where g1 and g2 are generators of multiplication cycle groups G1 and G2 respectively; and establishes a condition that satisfies e(a x ,b y )=e(a,b) xy =e(a y ,b x ) bilinear mapping function e, a∈G1, b∈G2, x∈Z p , y∈Z p , Z p is an integer; define a secure hash function H1(m)=g2 m ,
[0006] The service provider and passenger r pre-execute the vector oblivious prior 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 sends the generated g1 and secure hash function to each passenger and each driver;
[0008] Step 2: Each passenger generates a carpooling request according to his / her carpooling requirements, and each driver generates a carpooling invitation according to his / her carpooling requirements;
[0009] Step 3: Each passenger uses the spatial overlapping partition system to map his / her starting point and end point, and uses g1 and the secure hash function to encrypt the mapping result, and then sends the encrypted result to the service provider; each driver uses the spatial overlapping partition system to map his / her starting point and end point, and uses g1 and the secure hash function to encrypt the mapping result, and then 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 preliminarily selects a matching driver for each passenger;
[0011] Step 4: The passenger calculates a shared key with each matching driver initially screened out, and each matching driver initially screened out calculates a shared key with the passenger;
[0012] Step 5: Process the carpooling request and carpooling invitation generated in step 2, transform the carpooling matching into a privacy intersection problem, solve the privacy intersection problem according to vector C, vector A, vector B, data element Δ and shared key, and obtain the final carpooling matching result.
[0013] Furthermore, the vector B and data element Δ obtained by the service provider and the vector C and vector A obtained by the passenger r satisfy: C = Δ*A + B, is the domain of integers, is an m-dimensional vector consisting of elements in the given domain.
[0014] Furthermore, in step 2, each passenger generates a carpooling request according to his / her carpooling requirement, specifically:
[0015] Let R denote the set of passengers, r∈R, and denote the carpooling request of passenger r as Γ (r) , and are the starting point and expected departure time of passenger r, and are the destination and expected arrival time of passenger r, respectively, (r) To provide space for passengers r, Time relaxation for passengers r.
[0016] Furthermore, in step 2, each driver generates a carpool invitation according to his / her carpooling requirements, specifically:
[0017] Let D denote the set of drivers, d∈D, and denote the carpool invitation of driver d as Γ (d) , and are the starting point and estimated departure time of driver d, and are the destination and estimated arrival time of driver d, represents the kth location where driver d picks up and drops off passengers, in addition to the starting point and the end point. Indicates that the driver is at location The estimated pick-up time, δ (d) is the spatial relaxation of driver d, τ (d) Time slack for driver d.
[0018] Furthermore, the specific process of step three is:
[0019] Step 31: For passenger r, use the spatial overlapping partition system to divide the starting point of passenger r into and end point Mapping to L (r) , in, and It is the starting point The hexagon where and It is the end The hexagon where the random value v is located (r) As the private key of passenger r, Using private key v (r) For L (r) Encrypt and get the encrypted result And encrypt the result to service providers;
[0020] Step 32: For driver d, use the spatial overlapping partition system to divide the starting point of driver d into and end point Mapping to L (d) , in, and It is the starting point The hexagon where and It is the end The hexagon where the random value v is located (d) As the private key of driver d, Using private key v (d) For L (d) Encrypt and get the encrypted result And encrypt the result to service providers;
[0021] Step 3. The service provider determines whether the following conditions are met based on the bilinear mapping function: or Among them, O (r) ∈{1,2,3},O (d) ∈{1,2,3};
[0022] If satisfied, passenger r matches driver d;
[0023] If not, then passenger r and driver d do not match;
[0024] Step 34: Repeat the process from step 31 to step 33 to preliminarily screen out matching drivers for each passenger.
[0025] Furthermore, the specific process of step 4 is as follows:
[0026] The matching drivers initially selected by the service provider for passenger r are denoted as d1, d2, …, d n ,Will Send to passenger r, Send to n drivers matching passenger r;
[0027] Then passenger r calculates the matching driver d i Shared key Matching driver d i Calculate the shared key with passenger r
[0028] Furthermore, in step 5, the carpooling request and carpooling invitation generated in step 2 are processed to transform carpooling matching into a privacy intersection problem; specifically:
[0029] Step 1: Spatial data processing
[0030] After dividing the entire space into grid planes, each grid has a unique corresponding label; the starting point of passenger r The spatial relaxation δ of passenger r is centered (r) The circle with radius Will round The set of all grid labels in is recorded as
[0031] The destination of passenger r The spatial relaxation δ of passenger r is centered (r) The circle with radius Will round The set of all grid labels in is recorded as
[0032] The driver will iThe kth location where passengers are picked up and dropped off is the center, with driver d i The spatial relaxation of (d) The circle with radius Will round The set of all grid labels in is recorded as Then use the driver d i The grid labels corresponding to the starting point, all the places where passengers are picked up and dropped off, and the destination constitute the driver d i Travel 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] Set the departure time range of passenger r The set of all line segment labels in is recorded as The arrival time range of passenger r The set of all line segment labels in is recorded as
[0036] Driver i exist The time range for picking up and dropping off passengers The set of all line segment labels in is recorded as The driver d i The set of line segment labels corresponding to the starting point, all the places where passengers get on and off the bus, and the end point is recorded as
[0037] Step 3: and Connect and get the starting point of passenger r Spatiotemporal data Will and Connect and get the destination of passenger r Spatiotemporal data Will and Connect, get the driver i exist Spatiotemporal data The driver d i Spatiotemporal data of travel
[0038] like and Then passenger r and driver d i Meet the ride matching requirements;
[0039] Otherwise, passenger r and driver d i Failure to meet ride matching requirements.
[0040] Furthermore, in step 5, the privacy intersection problem is solved according to vector C, vector A, vector B and data element Δ to obtain the final carpooling matching result; specifically:
[0041] Step 51: For passenger r, record the trip data of passenger r as GS (r) , the matching driver d is initially screened for passenger r i The travel data is recorded as
[0042] Step 52: Let m, ω and λ represent the encoding size, band length and statistical security parameter respectively, and define the secure hash function H 1 , H 2 and H 3 , where the secure hash function H 1 ({0,1} λ ,k′)→{1,2,…,m-ω},{0,1} λ is the number represented by a binary sequence of length λ, {0,1} λ and k′ is the secure hash function H 1 Input, secure hash function H 2 ({0,1} λ ,k′)→{0,1} ω , {0,1} ω Is the number represented by the binary sequence of length ω, the secure hash function
[0043] Passenger r chooses random numbers s1,s2,s3∈{0,1} λ , function row(k′)→{0,1} m , that is, mapping the privacy input k′ into a binary string of length m, where the Hth 1 (s1,k′) position to Hth 1 The ω bits between (s1,k′)+ω-1 positions are H 2 (s2,k′); the value corresponding to k′ is H 3 (s3,k′);
[0044] Step 53: Set GS (r) The number of elements in is q, and GS (r) The lth element in is x l , GS (r) Encoded 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 a binary string (A′)2; then uses sk i Encrypt s1||s2||s3||(A′)2, “||” indicates the concatenation operation, and the encrypted result is The service provider will send Sent to the initially matched driver i ;
[0046] Driver i Using sk i right Decrypt to get s1, s2, s3 and A′, calculate B′=B+Δ*A′, and define And calculate Y i 'Sent 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, respectively calculate and And send X0′ and X1′ to the service provider;
[0048] Step 54: If and Then passenger r and driver d i Satisfy the carpooling matching requirements; otherwise, passenger r and driver d i Failure to meet the carpool matching requirements;
[0049] Step 55: Execute steps 51 to 54 for each driver preliminarily screened and matched with the passenger r, and finally obtain the driver who meets the carpooling matching requirements with the passenger r.
[0050] Furthermore, the method also includes step six, the passenger gives priority to selecting the driver with the highest matching degree as the intended matching driver, and the driver gives priority to selecting the passenger with the highest itinerary overlap as the intended matching passenger.
[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 a binary matrix of m*q dimensions, and the lth row of the matrix M is composed of x l After the function row(x l ) mapping generates a binary sequence.
[0054] The beneficial effects of the present invention are:
[0055] The present invention transforms carpooling matching into a privacy intersection problem, designs a one-to-many privacy intersection scheme based on OKVS and VOLE, and realizes fast matching between passengers and drivers by using the one-to-many privacy intersection scheme, that is, the itinerary data of passengers and drivers are intersected, the itinerary data of passengers consists of the spatiotemporal data of the starting point and the end point, and the itinerary data of drivers consists of the spatiotemporal data of the places where passengers can be picked up and dropped off during the entire journey. If the itinerary data of the driver contains the spatiotemporal data of the starting point and the end point of the passenger, that is, the itinerary data of the driver and the spatiotemporal data of the starting point and the end point of the passenger have an intersection, then the driver and the passenger meet the matching requirements.
[0056] The present invention constructs a carpool matching scheme based on privacy-protecting set intersection technology, which enables service providers to match passengers and drivers according to their respective carpooling requirements without knowing the privacy of their itineraries, while protecting user privacy. Moreover, compared with the existing methods, the present invention improves the efficiency and practicality of carpool matching. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] Figure 1 is a structural diagram of the method of the present invention;
[0058] Figure 2 A schematic diagram of the privacy intersection of one party to multiple parties of the present invention;
[0059] Figure 3 It is a schematic diagram of a heavy partition;
[0060] Figure 4 It is a schematic diagram of double partitioning;
[0061] Figure 5 A schematic diagram of triple partitioning. DETAILED DESCRIPTION
[0062] Specific implementation method 1: A confidential carpool 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 generators of multiplicative cyclic groups G1 and G2 respectively, and the orders of G1 and G2 are both prime numbers p; and establishes a condition that satisfies e(a x ,b y )=e(a,b) xy =e(a y ,b x ) bilinear mapping function e, a∈G1, b∈G2, x∈Z p , y∈Z p , Z p is an integer, if e(a x ,b y )=e(a y ,d x ), then b=d; define secure hash function H1(m)=g2 m , is a given domain, for example, an integer domain;
[0064] The service provider and passenger r pre-execute the Vector Oblivious Lead 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 sends the generated g1 and secure hash function to each passenger and each driver;
[0066] Step 2: Each passenger generates a carpooling request according to his / her carpooling requirements, and each driver generates a carpooling invitation according to his / her carpooling requirements;
[0067] Step 3: Each passenger uses the spatial overlapping partition system to map his / her starting point and end point, and uses g1 and the secure hash function to encrypt the mapping result, and then sends the encrypted result to the service provider; each driver uses the spatial overlapping partition system to map his / her starting point and end point, and uses g1 and the secure hash function to encrypt the mapping result, and then sends 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 preliminarily selects a matching driver for each passenger;
[0069] Step 4: The passenger calculates a shared key with each matching driver initially screened out, and each matching driver initially screened out calculates a shared key with the passenger;
[0070] Step 5: Process the carpooling request and carpooling invitation generated in step 2, transform the carpooling matching into a privacy intersection problem, solve the privacy intersection problem according to vector c, vector A, vector B, data element Δ and shared key, and obtain the final carpooling matching result.
[0071] The present invention designs a one-to-many private intersection scheme based on oblivious key-value storage (OKVS) and vector oblivious linear evaluation (VOLE). The scheme supports the confidential calculation of the intersection between one party's data set and other multi-party data sets with the help of a service provider, transforms the carpooling matching problem into a private intersection problem, and matches suitable passengers and drivers under the premise of protecting privacy.
[0072] Specific implementation method 2: This implementation method is different from the specific implementation method 1 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: C = Δ * A + B, is the domain of integers, is an m-dimensional vector consisting of elements in the given domain.
[0073] The other steps and parameters are the same as those in the first embodiment.
[0074] Each passenger performs the vector oblivious prior evaluation protocol with the service provider in advance. After the protocol is executed, the vector held by each passenger can be different, and the service provider holds the vector B and data element Δ corresponding to each passenger. For a passenger, the passenger will no longer perform the vector oblivious prior evaluation protocol with the service provider before the current carpooling is successful, that is, a passenger only performs the vector oblivious prior evaluation protocol with the service provider once in advance during a carpooling process.
[0075] Specific implementation method three: This implementation method is different from specific implementation methods one or two in that, in step two, each passenger generates a carpooling request according to his / her carpooling requirements, specifically:
[0076] Let R denote the set of passengers, r∈R, and denote the carpooling request of passenger r as Γ (r) , and are the starting point and expected departure time of passenger r, and are the destination and expected arrival time of passenger r, respectively, (r) is the spatial relaxation of passenger r, that is, the maximum displacement distance that passenger r can accept, is the time relaxation of passenger r, that is, the maximum offset duration that passenger r can accept.
[0077] The other steps and parameters are the same as those in the first or second embodiment.
[0078] Specific implementation method 4: This implementation method is different from the specific implementation methods 1 to 3 in that, in step 2, each driver generates a carpooling invitation according to his / her carpooling requirements, specifically:
[0079] Let D denote the set of drivers, d∈D, and denote the carpool invitation of driver d as Γ (d) , and are the starting point and estimated departure time of driver d, and are the destination and estimated arrival time of driver d, represents the kth location where driver d is allowed to pick up and drop off passengers, in addition to the starting point and the end point. Indicates that the driver is at location The estimated pick-up time, δ (d) is the spatial relaxation of driver d, τ (d) Time slack for driver d.
[0080] The other steps and parameters are the same as those in Specific Embodiments 1 to 3.
[0081] Specific implementation method 5: This implementation method is different from the specific implementation methods 1 to 4 in that the specific process of step 3 is as follows:
[0082] Step 31: For passenger r, use the spatial overlapping partition system to divide the starting point of passenger r into and end point Mapping to L (r) , in, and It is the starting point The hexagon where and It is the end The hexagon where the random value v is located (r) As the private key of passenger r, Using private key v (r) For L (r) Encrypt and get the encrypted result And encrypt the result to service providers;
[0083] Step 32: For driver d, use the spatial overlapping partition system to divide the starting point of driver d into and end point Mapping to L (d) , in, and It is the starting point The hexagon where and It is the end The hexagon where the random value v is located (d) As the private key of driver d, Using private key v (d) For L (d) Encrypt and get the encrypted result And encrypt the result to service providers;
[0084] Step 3. The service provider determines whether the following conditions are met based on the bilinear mapping function: or Among them, O (r) ∈{1,2,3},O (d) ∈{1,2,3};
[0085] If satisfied, passenger r matches driver d;
[0086] If not, then passenger r and driver d do not match;
[0087] Step 34: Repeat the process from step 31 to step 33 to preliminarily screen out matching drivers for each passenger.
[0088] The other steps and parameters are the same as those in Specific Embodiments 1 to 4.
[0089] The present invention assumes that passengers and drivers whose starting or ending distance is less than Q km have the possibility of successful carpooling (for example, Q = 50 km, Q is greater than δ (r) , Q is greater than δ (d) ), the length of the diagonal of the hexagonal partition in the spatial overlapping partition system is set to Qkm, then the condition for the passenger and the driver to successfully share a ride is that their starting point or end point is in the same hexagon.
[0090] like Figure 3 , Figure 4 and Figure 5As shown in the figure, the definition of the spatial overlapping partitioning system is: judging whether the distance between two points l1 and l2 is less than or equal to a given value Q is equivalent to judging whether the two points are in the same circle with a diameter of Q. In order to facilitate spatial division, a hexagon with a diagonal length of Q is used to approximate a circle with a diameter of Q, thereby converting the problem into judging whether two points are in the same hexagon with a diagonal length of Q. The spatial area is divided into three parts using hexagons, and any point falls in three different hexagons. For example, to judge whether the distance between two points l1 and l2 is less than or equal to Q, that is, to judge whether l1 and l2 are in the same hexagon with a diagonal length of Q, use Denotes the O1(O2)th hexagon where the point l1(l2) is located, if there exists O1,O2∈{1,2,3} such that It means that the distance between point l1 and point l2 is less than or equal to Q.
[0091] When the starting point of passenger r and driver d is in the same hexagon, or the destination of passenger r and driver d is also in the same hexagon, the passenger and driver have the possibility of successful carpooling.
[0092] Specific implementation method 6: This implementation method is different from the specific implementation methods 1 to 5 in that the specific process of step 4 is as follows:
[0093] The matching drivers initially selected by the service provider for passenger r are denoted as d1, d2, …, d n ,Will Send to passenger r, Send to n drivers matching passenger r;
[0094] Then passenger r calculates the matching driver d i Shared key Matching driver d i Calculate the shared key with passenger r
[0095] The other steps and parameters are the same as those in Specific Implementation Methods 1 to 5.
[0096] Specific implementation method 7: This implementation method is different from any one of specific implementation methods 1 to 6 in that, in step 5, the carpooling request and carpooling invitation generated in step 2 are processed to convert carpooling matching into a privacy intersection problem; specifically:
[0097] Step 1: Spatial data processing
[0098] Assume that the space is represented by a two-dimensional coordinate system in which the space can be divided into multiple non-overlapping grids of the same size, each with a unique label. The details of dividing the space and labeling the grids are described below. The size of the grid is denoted by ssg (e.g., ssg=500n). Starting from the origin of the coordinate system, grids are generated sequentially along the x-axis and y-axis directions, and the side length of each grid is ssg. Each grid is assigned a unique label, which is a combination of its row number and column number. For example, for the coordinate (l x ,l y ), the grid it is in is represented as grid_l. We define is the row number of grid_l, is the column number of grid_l. Obviously, grid_l can be uniquely represented by its row number and column number. Therefore, using As the label of grid_l.
[0099] For a location l with spatial relaxation δ, the spatial range of l can be represented as a circle with l as the center and δ as the 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 grid planes, each grid has a unique corresponding label; the starting point of passenger r The spatial relaxation δ of passenger r is centered (r) The circle with radius round The area where the passenger r is located is the boarding position range. The set of all grid labels in is recorded as
[0101] The destination of passenger r The spatial relaxation δ of passenger r is centered (r) The circle with radius round The area where the passenger r is located is the range of the passenger r's getting off position. The set of all grid labels in is recorded as
[0102] The driver will i The kth location where passengers are picked up and dropped off is the center, with driver d i The spatial relaxation of (d) The circle with radius round The area where the driver is located is i The location range of picking up and dropping off passengers at the kth location will be The set of all grid labels in is recorded as Then use the driver d i The grid labels corresponding to the starting point, all the places where passengers are picked up and dropped off, and the destination constitute the driver d i Travel space data
[0103] If there is a circle ( The spatial range of ( The spatial range of This means and match within their spatial relaxation. Similarly, if there exists a circle ( The spatial range of ( The spatial range of This means and match within their spatial margin. Therefore, when and When passenger r and driver d i In terms of space, the requirements for carpooling are met, and the driver d i The places where passengers can be picked up and dropped off include the starting point and the end point of passenger r.
[0104] Step 2: Time data processing
[0105] Assume that 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 dividing time and labeling time segments are described as follows: The size of the time segment is represented by stg. Starting from the origin of the coordinate system, time segments of length stg are generated one by one, and each time segment is assigned a unique label. For example, for a coordinate system with length t z At time point t, the time period it is in is marked as seg_t, and the label is
[0106] For a time point t with a time slack 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 from t-τ to t+τ, denoted by S t ;
[0107] After dividing the entire timeline into segments of equal length, each segment has a unique corresponding label;
[0108] Set the departure time range acceptable to passenger r The set of all line segment labels in is recorded as Set the acceptable arrival time range for passenger r The set of all line segment labels in is recorded as
[0109] Driver i exist The time range for picking up and dropping off passengers The set of all line segment labels in is recorded as The driver d i The starting point, all the places where passengers get on and off the bus (not the starting point and the end point), and the set of line segment labels corresponding to the end point are recorded as
[0110] Similar to spatial matching, when and When passenger r and driver d i Match in time.
[0111] Step 3: and Connect and get the starting point of passenger r Spatiotemporal data Will and Connect and get the destination of passenger r Spatiotemporal data Will and Connect, get the driver i exist Spatiotemporal data The driver d i Spatiotemporal data of travel
[0112] like and Description Driver i Trip data Not only the starting point data of passenger r intersects with the destination data of passenger r intersect, then passenger r and driver d i Meet the ride matching requirements;
[0113] Otherwise, passenger r and driver d i Failure to meet ride matching requirements.
[0114] The other steps and parameters are the same as those in Specific Embodiments 1 to 6.
[0115] Service providers need to assess not only the driveri Whether the places where passengers can be picked up and dropped off include the starting point and the end point of passenger r, and whether the corresponding time of their matching locations is the same, we also need to evaluate whether the corresponding time of their matching locations is the same. Therefore, we transform the safe ride matching calculation into a privacy intersection problem, that is, transform the carpool matching problem into a solution problem.
[0116] Specific implementation method eight: Combination Figure 2 This embodiment is different from the first to seventh embodiments in that, in step 5, the privacy intersection problem is solved according to vector C, vector A, vector B and data element Δ to obtain the final carpooling matching result; specifically:
[0117] Step 51: For passenger r, record the trip data of passenger r as GS (r) , will be the matching driver d initially screened for passenger r i The travel data is recorded as
[0118] Step 52: Let m, ω and λ represent the encoding size, band length and statistical security parameter respectively, and define the secure hash function H 1 , H 2 and H 3 , where the secure hash function H 1 ({0,1} λ ,k′)→{1,2,…,m-ω},{0,1} λ is the number represented by a binary sequence of length λ, {0,1} λ and k′ is the secure hash function H 1 Input, secure hash function H 2 ({0,1} λ ,k′)→{0,1} ω , {0,1} ω Is the number represented by the binary sequence of length ω, the secure hash function
[0119] Passenger r chooses random numbers s1,s2,s3∈{0,1} λ , function row(k′)→{0,1} m , that is, mapping the privacy input k′ into a binary string of length m, where the Hth 1 (s1,k′) position to Hth 1 The ω bits between (s1,k′)+ω-1 positions are H 2 (s2,k′); the value corresponding to k′ is H 3 (s3,k′);
[0120] Step 53: Set GS(r) The number of elements in is q, and GS (r) The lth element in is x l , GS (r) Encoded 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 a binary string (A′)2; then uses sk i Encrypt s1||s2||s3||(A′)2 (direct XOR encryption), “||” indicates the connection operation, and the encrypted result is The service provider will send Sent to the initially matched driver i ;
[0122] Driver i Using sk i right Decrypt to get s1, s2, s3 and A′, calculate B′=B+Δ*A′, and define And calculate Y i 'Sent 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, respectively calculate and And send X0′ and X1′ to the service provider;
[0124] Step 54: If and Then passenger r and driver d i Satisfy the carpooling matching requirements; otherwise, passenger r and driver d i Failure to meet carpool matching requirements.
[0125] Step 55: Execute steps 51 to 54 for each driver preliminarily screened and matched with the passenger r, and finally obtain the driver who meets the carpooling matching requirements with the passenger r.
[0126] The other steps and parameters are the same as those in Specific Embodiments 1 to 7.
[0127] The service provider compares X0′, X1′ and Y i ',if and mean and (F r (x)=Decode(C,x)=row(x)*C, for if (y and If an element in is equal), then row(y)*P=H 3 (s3,y), So 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 ), which means that passenger r and driver d i Meet the carpooling matching requirements. For passengers r and drivers d who meet the carpooling matching requirements i , the service provider will be the intersection part (X0′∩Y i ′ and X1′∩Y i ′) to them, passenger r and driver d i Thus obtaining and Right now Likewise, the driver i You can also get and Right now
[0128] Specific implementation method nine: This implementation method is different from any one of specific implementation methods one to eight in that the method further includes step six, the passenger gives priority to selecting the driver with the highest matching degree as the intended matching driver, and the driver gives priority to selecting the passenger with the highest itinerary overlap as the intended matching passenger.
[0129] The other steps and parameters are the same as those in Specific Embodiments 1 to 8.
[0130] If passenger r and driver d meet the carpooling requirements, there must be two locations where driver d can pick up and drop off passengers. and The starting point of passenger r and end point Match in space and time, i.e. and Passengers will give priority to those with high matching degree ( The driver will select drivers with high trip overlap (large value of ba) as intended matching drivers, accept the carpooling invitation of intended matching drivers or send carpooling requests to intended matching drivers. If the intended matching drivers agree to match, the carpooling is successful. The driver will give priority to passengers with high trip overlap (large value of ba) as intended matching passengers, accept the carpooling request of intended matching passengers or send carpooling invitations to intended matching passengers. If the intended matching passengers agree to match, the carpooling is successful.
[0131] Specific implementation method 10: This implementation method is different from any one of specific implementation methods 1 to 9 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 a binary matrix of m*q dimensions, and the lth row of the matrix M is composed of x l After the function row(x l ) mapping generates a binary sequence.
[0134] The other steps and parameters are the same as those in Specific Embodiments 1 to 9.
[0135] The above calculation examples of the present invention are only used to explain the calculation model and calculation process of the present invention in detail, and are not intended to limit the implementation methods of the present invention. For ordinary technicians in the relevant field, other different forms of changes or modifications can be made based on the above description. It is impossible to list all the implementation methods here. All obvious changes or modifications derived from the technical solution of the present invention are still within the scope of protection of the present invention.
Claims
1. A confidential carpool matching method, characterized in that: The method specifically comprises the following steps: Step 1: The service provider generates parameters g1 and g2, where g1 and g2 are generators of multiplication cycle groups G1 and G2 respectively; and establishes a condition that satisfies e(a x , b y ) = e(a, b) xy =e(a y , b x ) bilinear mapping function e, a∈G1, b∈G2, x∈Z p , y∈Z p , Z p is an integer; define a secure hash function H1(m)=g2 m , The service provider and passenger r pre-execute the vector oblivious prior 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 Δ. The service provider sends the generated g1 and secure hash function to each passenger and each driver; Step 2: Each passenger generates a carpooling request according to his / her carpooling requirements, and each driver generates a carpooling invitation according to his / her carpooling requirements; Step 3: Each passenger uses the spatial overlapping partition system to map his / her starting point and end point, and uses g1 and the secure hash function to encrypt the mapping result, and then sends the encrypted result to the service provider; each driver uses the spatial overlapping partition system to map his / her starting point and end point, and uses g1 and the secure hash function to encrypt the mapping result, and then sends the encrypted result to the service provider; The service provider uses a bilinear mapping function to match the encrypted results of each passenger and each driver, and preliminarily selects a matching driver for each passenger; Step 4: The passenger calculates a shared key with each matching driver initially screened out, and each matching driver initially screened out calculates a shared key with the passenger; Step 5: Process the carpooling request and carpooling invitation generated in step 2, transform the carpooling matching into a privacy intersection problem, solve the privacy intersection problem according to vector C, vector A, vector B, data element Δ and shared key, and obtain the final carpooling matching result.
2. A confidential carpooling matching method according to claim 1, characterized 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: C = Δ*A + B, is the domain of integers, is an m-dimensional vector consisting of elements in the given domain.
3. A confidential carpooling matching method according to claim 2, characterized in that: In step 2, each passenger generates a carpooling request according to his / her carpooling requirements, specifically: Let R denote the set of passengers, r∈R, and denote the carpooling request of passenger r as Γ (r) , and are the starting point and expected departure time of passenger r, and are the destination and expected arrival time of passenger r, respectively, ( r ) To provide space for passengers r, Time relaxation for passengers r.
4. A confidential carpooling matching method according to claim 3, characterized in that: In step 2, each driver generates a carpool invitation according to his / her carpooling requirements, specifically: Let D denote the set of drivers, d∈D, and denote the carpool invitation of driver d as Γ (d) , and are the starting point and estimated departure time of driver d, and are the destination and estimated arrival time of driver d, represents the kth location where driver d picks up and drops off passengers, in addition to the starting point and the end point. Indicates that the driver is at location The estimated pick-up time, δ ( d ) is the spatial relaxation of driver d, τ( d ) is the time slack of driver d.
5. A confidential carpooling matching method according to claim 1, characterized in that: The specific process of step three is: Step 31: For passenger r, use the spatial overlapping partition system to divide the starting point of passenger r into and end point Mapping to L ( r ) , in, and It is the starting point The hexagon where and It is the end The hexagon where the random value v is located ( r ) As the private key of passenger r, Using private key v ( r ) For L ( r ) Encrypt and get the encrypted result And encrypt the result to service providers; Step 32: For driver d, use the spatial overlapping partition system to divide the starting point of driver d into and end point Mapping to L ( d ) , in, and It is the starting point The hexagon where and It is the end The hexagon where the random value v is located (d) As the private key of driver d, Using private key v ( d ) For L ( d ) Encrypt and get the encrypted result And encrypt the result to service providers; Step 3. The service provider determines whether the following conditions are met based on the bilinear mapping function: or Among them, O (r) ∈{1, 2, 3}, O (d) ∈{1, 2, 3}; If satisfied, passenger r matches driver d; If not, then passenger r and driver d do not match; Step 34: Repeat the process from step 31 to step 33 to preliminarily screen out matching drivers for each passenger.
6. A confidential carpool matching method according to claim 5, characterized in that: The specific process of step 4 is as follows: The matching drivers initially selected by the service provider for passenger r are denoted as d1, d2, ..., d n ,Will Send to passenger r, Send to n drivers matching passenger r; Then passenger r calculates the matching driver d i Shared key Matching driver d i Calculate the shared key with passenger r 7. A confidential carpool matching method according to claim 6, characterized in that: In step 5, the carpooling request and carpooling invitation generated in step 2 are processed to transform carpooling matching into a privacy intersection problem; specifically: Step 1: Spatial data processing After dividing the entire space into grid planes, each grid has a unique corresponding label; the starting point of passenger r The spatial relaxation δ of passenger r is centered ( r ) The circle with radius Will round The set of all grid labels in is recorded as The destination of passenger r The spatial relaxation δ of passenger r is centered ( r ) The circle with radius Will round The set of all grid labels in is recorded as The driver will i The kth location where passengers are picked up and dropped off is the center, with driver d i The spatial relaxation of (d) The circle with radius Will round The set of all grid labels in is recorded as Then use the driver d i The grid labels corresponding to the starting point, all the places where passengers are picked up and dropped off, and the destination constitute the driver d i Travel space data Step 2: Time data processing After dividing the entire timeline into segments of equal length, each segment has a unique corresponding label; Set the departure time range of passenger r The set of all line segment labels in is recorded as The arrival time range of passenger r The set of all line segment labels in is recorded as Driver i exist The time range for picking up and dropping off passengers The set of all line segment labels in is recorded as The driver d i The set of line segment labels corresponding to the starting point, all the places where passengers get on and off the bus, and the end point is recorded as Step 3: and Connect and get the starting point of passenger r Spatiotemporal data Will and Connect and get the destination of passenger r Spatiotemporal data Will and Connect, get the driver i exist Spatiotemporal data The driver d i Spatiotemporal data of travel like Head Then passenger r and driver d i Meet the ride matching requirements; Otherwise, passenger r and driver d i Failure to meet ride matching requirements.
8. A confidential carpool matching method according to claim 7, characterized in that: In the step 5, the privacy intersection problem is solved according to vector C, vector A, vector B and data element Δ to obtain the final carpooling matching result; specifically: Step 51: For passenger r, record the trip data of passenger r as GS (r) , the matching driver d is initially screened for passenger r i The travel data is recorded as Step 52: Let m, ω and λ represent the encoding size, band length and statistical security parameter respectively, and define the secure hash function H 1 , H 2 and H 3 , where the secure hash function H 1 ({0, 1} λ ,k′)→{1,2,…,m-ω},{0,1} λ is the number represented by a binary sequence of length λ, {0, 1} λ and k′ is the secure hash function H 1 Input, secure hash function H 2 ({0, 1} λ , k′)→{0,1} ω , {0, 1} ω Is the number represented by the binary sequence of length ω, the secure hash function Passenger r chooses random numbers s1,s2,s3∈{0,1} λ , function row(k′)→{0,1} m , that is, mapping the privacy input k′ into a binary string of length m, where the Hth 1 (s1, k′)th position to Hth 1 The ω bits between (s1, k′)+ω-1 positions are H 2 (s2, k′); the value corresponding to k′ is H 3 (s3, k′); Step 53: GS (r) The number of elements in is q, and GS (r) The lth element in is x l , GS (r) Encoded as a vector P = Encode({(x l , H 3 (s3, x l ))} 1≤l≤q ), Encode is the encoding function, Passenger r calculates A′=AP and represents A′ as a binary string (A′)2; then uses sk i Encrypt s1||s2||s3||(A′)2, "||" indicates the concatenation operation, and the encrypted result The service provider will send Sent to the initially matched driver i ; Driver i Using sk i right Decrypt to get s1, s2, s3 and A′, calculate B′=B+Δ*A′, and define And calculate Y i 'Sent to the service provider; 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, respectively calculate and And send X0′ and X1′ to the service provider; Step 54: If Head Then passenger r and driver d i Satisfy the carpooling matching requirements; otherwise, passenger r and driver d i Failure to meet the carpool matching requirements; Step 55: Execute steps 51 to 54 for each driver preliminarily screened and matched with the passenger r, and finally obtain the driver who meets the carpooling matching requirements with the passenger r.
9. A confidential carpool matching method according to claim 8, characterized in that: The method also includes step 6, in which the passenger gives priority to selecting the driver with the highest matching degree as the intended matching driver, and the driver gives priority to selecting the passenger with the highest itinerary overlap as the intended matching passenger.
10. A confidential carpool matching method according to claim 8, characterized in that: The vector P satisfies: <h2 style=";text-align:left;direction:ltr">M*P=[H<h2 style=";text-align:left;direction:ltr"> 3 <h2 style=";text-align:left;direction:ltr"> (s3, x1), H<h2 style=";text-align:left;direction:ltr"> 3 <h2 style=";text-align:left;direction:ltr"> (s3, x2),…,H<h2 style=";text-align:left;direction:ltr"> 3 <h2 style=";text-align:left;direction:ltr"> (s3, x<h2 style=";text-align:left;direction:ltr"> q <h2 style=";text-align:left;direction:ltr"> )]<h2 style=";text-align:left;direction:ltr"> T Where M is a binary matrix of m*q dimensions, and the lth row of the matrix M is composed of x i After the function row(x l ) mapping generates a binary sequence.
Citation Information
Patent Citations
Driver-passenger matching mechanism oriented to privacy protection
CN112752232A
Conciseness multi-party privacy set intersection algorithm based on enhanced VOLE
CN115314194A
Online car-hailing privacy protection method based on third-party operation privacy set intersection technology
CN116055058A
Multi-party privacy set intersection method based on matrix key
CN116996293A
Device and method for recommending ride sharing group, recording medium for performing the method
KR102064376B1
