Disclosure of Invention
The invention aims to provide a network bus agreement with cloud supervision, which can protect identity information of drivers and passengers and travel data of the passengers while meeting travel demands of people, and realize privacy protection of the drivers and the passengers.
In the system designed by the invention, the safety of the system and the information storage of the user are responsible by the supervision cloud, and the matching calculation of the driver and the passengers is born by the service provider.
After the supervision cloud completes the system initialization setting, the service provider, the driver and the passenger need to use real identity registration at the supervision cloud, so that a public and private key pair is obtained, in addition, the supervision cloud negotiates a symmetric key with the passenger for encrypting the communication content, and then the service provider performs road network embedding setting. In the early stage of matching, the driver needs to periodically query its own position coordinates and calculate its own high-dimensional distance vector, and then encrypt the calculated vector and send it to the service provider along with the information of the area where the driver is located, and the service provider stores the information.
When a passenger needs to take a car, the passenger needs to calculate and encrypt a high-dimensional distance vector according to own getting-on and getting-off places, and sends the located area information to a service provider. After receiving the request of the passengers, the service provider matches the vehicles according to the areas, then homomorphism calculation is carried out on the high-dimensional distance vector of each driver and the high-dimensional distance vector of the boarding place of the passengers, and the result is sent to the supervision cloud for decryption after calculation is completed. The supervisory cloud obtains the appropriate vehicles from the decrypted results and returns information to the passengers through the service provider for confirmation, and after the passenger confirms, the selected vehicles are returned, and the boarding and alighting places are encrypted by using the secret key negotiated with the driver. The service provider sends the encrypted boarding and alighting places to the corresponding drivers according to the confirmation information, the drivers decrypt the boarding and alighting places of the passengers and calculate high-dimensional distance vectors according to the boarding and alighting places, after the passengers get on the bus, the drivers send the calculated high-dimensional distance vectors and verification codes informed by the passengers to the service provider, the service provider sends results to the supervision cloud after homomorphic calculation, the supervision cloud verifies and charges the passengers, and the service flow of the network bus is completed.
The achievement of the object of the invention is that an inventive charging phase is provided in the protocol, said charging phase comprising the steps of:
(1) Monitoring cloud operationDecrypting and unpacking the result and then according to +.>Selecting a suitable driver;
(2) The supervisory cloud obtains the corresponding information of the selected driver according to the pseudonym, then selects an authentication code for the passenger, and encrypts the information using a key negotiated with the passenger, [ info ] d ,code] sym =E sym ((info d ,code),k r ) Then { AID d ,AID r ,[info d ,code] sym Send { AID } to service provider, and then the service provider sends { AID }, which is then used to send { AID }, to the service provider d ,A d ,[info d ,code] sym Transmitting the information to a passenger client for confirmation;
(3) Passenger client pass through run D sym ([info d ,code] sym ,k r ) After decrypting the information for the passenger, if the passenger confirms the riding, the passenger client estimates the price according to the journey of the passenger, and encrypts the getting-on and getting-off information and the estimated price respectively, [ l ] r ] sym =E sym ((l r ),H 4 (b r A d ) (wherein)Randomly generated by passenger clients, after which B is calculated r =b r P),E pa (cost r ,pk pa ) Last passenger client pair m' r ={AID r ,AID d ,[l r ] sym ,[cost r ],B r Signature and send { m' r ,φ r ',t' r -providing the service provider;
(4) Service provider save [ cost ] r ]Will { [ l ] r ] sym ,B r Transmit to AID d Corresponding driver client, driver client run (l r )=D sym ([l r ] sym ,a d B r ) Decrypting the information of getting on or off the passenger for the driver, and then calculatingEncrypted high-dimensional distance vector of getting-on and getting-off positions of passengersThe driver client then evaluates the passenger's journey and encrypts the estimated price [ cost ]' r ]=E pa (cost' r ,pk pa ) Driver client sends->To service provider->Homomorphic calculation is carried out and submitted to a supervision cloud to verify whether the getting-on and getting-off places of the two parties are corresponding and whether the valuation exceeds the error, and if the places are wrong or the valuation exceeds the error, the two parties are informed to cancel the order; after waiting for the passenger to get on, the driver informs the verification code of the code, encrypts the code through the client of the driver, [ code ]']=E pa (code',pk pa ) And for m' d ={AID d ,[code']Signed and then send the message { m' d ,φ' d ,t' d -forwarding to a service provider, the service provider to a supervisory cloud;
(5) Supervisory cloud decryption [ code ]']Judging and storing [ code ]]Whether equal. When the passenger arrives at the destination, the driver calculates the encrypted high-dimensional distance vector again according to the coordinates of the current passenger getting-off placeAnd transmitting to a service provider the encrypted high-dimensional distance vector of the departure place coordinates transmitted when matching with the passenger>Homomorphic calculation is carried out, then the service provider gives the calculation result to the supervision cloud for decryption and verification, and if the calculation result passes, the passenger is charged.
The invention also provides a preferred registration phase comprising the steps of:
(1) Service provider registration:
the service provider will be true identity information RID sp Is sent to a supervision cloud, which stores information and runs PartialKeyGen (params, s, RID) i )→(AID i ,T i ,D i ) Generating pseudonym AID for service provider sp Kana validity period T sp Partial public and private key D sp =(d sp ,R sp ) The method comprises the steps of carrying out a first treatment on the surface of the The supervisory cloud then transmits (AID) over the secure channel sp ,T sp ,D sp ) Is sent to the service provider who rerun userkegen (params, D) i ,AID i )→(sk i ,pk i ) Generating a complete public-private key pair (pk sp ,sk sp )。
(2) Driver registration:
the driver will be true identity information and vehicle information info d Is sent to the supervision cloud, thereby obtaining the pseudonym and part of public and private keys generated by the supervision cloud for the driver, and the driver receives (AID d ,T d ,D d ) After which a complete public-private key pair (pk) is generated d ,sk d )。
(3) Passenger registration:
the passenger will be true identity information and vehicle information info r Transmitting to the supervision cloud to obtain the pseudonym, partial public and private keys and symmetric encryption key k generated by the supervision cloud for the passengers r The supervisory cloud will (AID r ,T r ,D r ,k r ) Is sent to the passenger, and the passenger generates a complete public and private key pair (pk r ,sk r )。
Detailed Description
Further details of the implementation of the present invention are provided below.
Functional function description:
this section describes the functional functions used in the system, which are mainly divided into 4 aspects: paillier encryption, signature verification (ECC), road network embedding, and matching computation.
Paillier encryption:
(1)KeyGen pa (1 λ )→(pk,sk):
description of the function: and inputting the security parameters, and generating public and private key pairs by the running function.
Description of the shape parameters:
Return value description:
| pk
|
a public key.
|
| sk
|
A private key. |
Description of algorithm:
(a) Two primes p, q are chosen and n=p×q, λ=lcm (p-1, q-1) is calculated.
(b) Random selectionMeet gcd (L #)g λ modN 2 ) N) =1, where L (x) = (x-1)/N.
(c) A public key pk= (N, g) is generated, and a private key sk=λ.
(2)E pa (m,pk)→c:
Description of the function: the plaintext and the public key are input, and the running function returns the ciphertext.
Description of the shape parameters:
| m
|
the message is in plain text.
|
| pk
|
Slightly omitted |
Return value description:
Description of algorithm:
a) Let m.epsilon.Z N Randomly select
b) Calculating ciphertext
(3)D pa (c,sk)→m:
Description of the function:
and inputting the ciphertext and the private key, and returning the decrypted plaintext by the running function.
Description of the shape parameters:
| c
|
slightly omitted
|
| sk
|
Slightly omitted |
Return value description:
Description of algorithm:
calculation of
2. Signature verification (ECC):
(1)MasterKeyGen(1 λ )→(params,s):
description of the function:
and inputting security parameters, performing security initialization setting on the system by the running function, and returning the public parameters and the main private key of the system by the running function.
Description of the shape parameters:
Return value description:
(2)PartialKeyGen(params,s,RID i )→(AID i ,T i ,D i ):
description of the function:
the public parameters, the system master key and the true identity of the driver or passenger are entered and the running function returns the pseudonym, the validity period of the pseudonym and part of the private key.
Description of the shape parameters:
| params
|
slightly omitted
|
| s
|
Slightly omitted
|
| RID i |
True identity information of the driver or passenger. |
Return value description:
(3)UserKeyGen(params,D i ,AID i )→(sk i ,pk i ):
description of the function:
and inputting public parameters, partial private keys and pseudonyms, and returning the complete public and private key pairs by the running function.
Description of the shape parameters:
| params
|
slightly omitted
|
| D i |
Slightly omitted
|
| AID i |
Slightly omitted |
Return value description:
(4)Sign(params,sk i ,m i ||t i )→(φ i ):
description of the function:
the public parameters, private key, message to be sent, and timestamp are entered, and then the run function returns a signature of the message.
Description of the shape parameters:
| params
|
slightly omitted
|
| sk i |
Slightly omitted
|
| m i ||t i |
A message that needs to be sent and a timestamp. |
Return value description:
| φ i |
signature of the message. Phi (phi) i =(Y i ,w i )。 |
Description of algorithm:
(a) Random selectionAnd calculate Y i =y i P。
(b) Calculation u i =H 2 (m i ,AID i ,pk i ,t i ,Y i ) And h 3i =H 3 (m i ,AID i ,pk i ,t i )。
(c) Then calculate w i =[u i y i +h 3i (x i +d i )]modq。
(d) Most preferably, the first to fourthPost output phi i =(Y i ,w i ) As a signature for messages and timestamps.
(5)Verify(φ i ,m i ||t i ,pk i ,AID i )→(true or false):
Description of the function:
the received message is input and the running function verifies the validity of the signature.
Description of the shape parameters:
| φ i |
slightly omitted
|
| m i ||t i |
Slightly omitted
|
| pk i |
Slightly omitted
|
| AID i |
Slightly omitted |
Return value description:
description of algorithm:
(a) Calculate h 1i =H 1 (AID i ,R i ,P pub )、u i =H 2 (m i ,AID i ,pk i ,t i ,Y i ) H 3i =H 3 (m i ,AID i ,pk i ,t i )。
(b) Judging w i P-u i Y i =h 3i (X i +R i +h 1i P pub ) Whether or not it is.
3. Road network embedding:
(1)GenDimensionalSet(n,V,E)→(R):
description of the function:
and inputting the size n of the intersection and road end set V and the road section set E, and returning the running function to the high-dimensional embedded network space.
Description of the shape parameters:
| n
|
the size of set V.
|
| V
|
Intersection and collection of road segments.
|
| E
|
And connecting the road section collection of two intersections (ends) in V. |
Return value description:
(2)GenEembedRoadNet(V,R)→(S):
description of the function:
the method comprises the steps of inputting a set of intersections (ends) and embedding the high-dimension into a network space, and returning a high-dimension distance vector of each intersection (end) in the set V by an operation function.
Description of the shape parameters:
| V
|
slightly omitted
|
| R
|
Slightly omitted |
Return value description:
| S
|
the high-dimensional distance vectors for each intersection (end) in set V. |
Description of algorithm:
(a) For V ε V, V i,j E R, V to V i,j Is defined as
(b)s v ∈S,s v =<dist R (v,V 1,1 ),...,dist R (v,V i,j ),...,dist R (v,V α,β )>,S={s v |v∈V}。
4. Matching calculation:
(1)GenEncryptedsl(l,S,pk)→([s l ]):
description of the shape parameters:
| l
|
and (5) position coordinates.
|
| S
|
Slightly omitted
|
| pk
|
A public key for encryption. |
Return value description:
Description of algorithm:
(a) Inputting a position coordinate l, if l is V, s l =s v (l=v); if it isl belongs to road section (v) s ,v d ) E a point on E, then calculate s l 。
s l =<...,dist R (l,V i,j )=min{dist R (l,v s )+dist R (v s ,V i,j ),dist R (l,v d )
+dist R (v d ,V i,j )},...>。
(b) Encryption s l Is [ s ] l ],[s l ]=E pa (dist R (l,V i,j ),pk)。
(2)
Description of the function:
inputting encryption s of multiple drivers and one passenger l And the number of bits occupied by the distance value, the function will calculate and return a set of distance vectors between each driver and passenger based on the homomorphism of the Paillier encryption system.
Description of the shape parameters:
return value description:
description of algorithm:
wherein 2 is μ So that the distance calculation value is a positive number.
(3)
Description of the function:
and inputting the distance vector set, the bit length of the system parameter N and the bit number occupied by the distance value, and returning the packed ciphertext by the running function.
Description of the shape parameters:
return value description:
description of algorithm:
(a) Calculate the cipher text number p=nbitlen/μ that a slot can pack.
(b) From the slaveSelecting tau (tau is more than or equal to 0 and less than or equal to rho) ciphertext and packaging by the following method:
(c) Final output of function and packing result
(4)
Description of the function:
and inputting the packed ciphertext set and the number of the ciphertext packed in one slot, and returning the plaintext of the unpacked distance value by the running function.
Description of the shape parameters:
return value description:
description of algorithm:
(a) DecryptionAnd obtaining the packed distance value.
(b) According toUnpacking the distance value to obtain +.>
Second, detailed flow description:
the section introduces a network taxi-closing protocol of cloud supervision, and the introduction is divided into five stages according to the execution sequence of the protocol: (1) an initialization Phase (Setup Phase); (3) a registration phase (Registration Phase); (3) A road network embedding stage (Road Network Embedding Phase); (4) a matching stage (Ride Matching Phase); (5) charging Phase (Charge Phase).
(1) An initialization stage:
supervision cloud run MasterKeyGen (1) λ ) Generating public parameter params and system public-private key pair (pk pa ,sk pa ) The method comprises the steps of carrying out a first treatment on the surface of the The supervisory cloud then selects a symmetric encryption algorithm and uses E sym (m,k)→(c),D sym (c, k) → (m) respectively represent symmetric encryption and decryption processes.
(2) Registration:
(a) Service provider registration:
the service provider will be true identity information RID sp Is sent to a supervision cloud, which stores information and runs PartialKeyGen (params, s, RID) i )→(AID i ,T i ,D i ) Generating pseudonym AID for service provider sp Kana validity period T sp Partial public and private key D sp =(d sp ,R sp ). The supervisory cloud then transmits (AID) over the secure channel sp ,T sp ,D sp ) Is sent to the service provider who rerun userkegen (params, D) i ,AID i )→(sk i ,pk i ) Generating a complete public-private key pair (pk sp ,sk sp )。
(b) Driver registration:
the driver will be true identity information and vehicle information info d Is sent to the supervision cloud, thereby obtaining the pseudonym and part of public and private keys generated by the supervision cloud for the driver, and the driver receives (AID d ,T d ,D d ) After which a complete public-private key pair (pk) is generated d ,sk d )。
(c) Passenger registration:
the passenger will be true identity information and vehicle information info r Transmitting to the supervision cloud to obtain the pseudonym, partial public and private keys and symmetric encryption key k generated by the supervision cloud for the passengers r The supervisory cloud will (AID r ,T r ,D r ,k r ) Is sent to the passenger, and the passenger generates a complete public and private key pair (pk r ,sk r )。
(3) Road network embedding stage:
the service provider converts the road network (V, E) into a distance vector set s= { S about V by running gendimension set (n, V, E) → (R) and geneembeddroadnet (V, R) → (S) v V e V; the service provider then divides the road network (V, E) into different sets of regions g= { z i } 1≤i≤n And publishes (S, G).
(4) Matching:
(a) The driver waiting for a match first acquires his own position coordinates l driver GenEncryptedsl (l, S, pk) was run → ([ S) l ]) Obtaining an encrypted high-dimensional distance vector of its own coordinates(use of pk) pa Encryption) and then select the area z where the user is currently located d E G, last driver random choice ∈G>Calculation A d =a d P. The driver periodically performs the above operation and constructs a message +.>Generating a time stamp t d Run Sign (params, sk) i ,m i ||t i )→(φ i ) Signature it and finally send { m } d ,φ d ,t d And to the service provider.
(b) Service providers operate by running Verify (phi) i ,m i ||t i ,pk i ,AID i ) The (true or false) verifies the information sent by the driver, if the message is correct, stores the update m d 。
(c) When a passenger needs to take a car, the passenger first selects the getting-on and getting-off position l of the passenger r =(l r_up ,l r_down ) GenEncryptedsl (l, S, pk) was run → ([ S) l ]) Encrypted high-dimensional distance vector for calculating on-off positions respectivelyThe passenger then selects the zone z in which the passenger is currently located r E G, and constructs a message ∈G>Generating a time stamp t r Run Sign (params, sk) i ,m i ||t i )→(φ i ) Generating signature, and finally sending bus taking matching request { m } to service provider r ,φ r ,t r }。
(d) The service provider checks the validity of the signature of the request sent by the passenger and if it passes, it is determined according to z r (z r =z d ) Extracting the corresponding driver transmission from the databaseAnd obtain the bit number mu occupied by the distance value, runInputting the passenger boarding position and the encrypted distance vector of the driverHomomorphism meterCalculating the distance vector +.>Last service provider store m r And run +.>And Verify (phi) i ,m i ||t i ,pk i ,AID i ) The → (true or false) pair +.>Carry out the package signature and then will ∈ ->And sending the information to the supervision cloud.
(5) Charging stage:
(a) Monitoring cloud operationDecrypting and unpacking the result and then according to +.>A suitable driver is selected.
(b) The supervisory cloud obtains the corresponding information of the selected driver according to the pseudonym, then selects an authentication code for the passenger, and encrypts the information using a key negotiated with the passenger, [ info ] d ,code] sym =E sym ((info d ,code),k r ) Then { AID d ,[info d ,code] sym Send { AID } to service provider, and then the service provider sends { AID }, which is then used to send { AID }, to the service provider d ,A d ,[info d ,code] sym And (c) sending the confirmation to the passenger.
(c) Passenger passing D sym ([info d ,code] sym ,k r ) After decrypting the information, if the riding is confirmed, the journey of the driver is estimated, the information of getting on or off the driver and the estimated price are encrypted, [ l ] r ] sym =E sym ((l r ),H 4 (b r A d ) (wherein)Randomly selected by the passenger, the passenger recalculates B r =b r P),E pa (cost r ,pk pa ) And for m' r ={AID r ,AID d ,[l r ] sym ,[cost r ]Signed and then sent { m' r ,φ r ',t' r And to the service provider.
(d) The service provider will { [ l ] r ] sym ,B r Is sent to the driver, who decrypts the information (l r )=D sym ([l r ] sym ,a d B r ) Estimating price and encrypting E pa (cost d ,pk pa ) Then respectively calculating the encrypted high-dimensional distance vectors of the getting-on and getting-off positions of the passengersSend->To service provider->And carrying out homomorphic calculation and delivering the homomorphic calculation to the supervision cloud to verify whether the getting-on and getting-off places of the two parties are corresponding and whether the valuation exceeds the error, and if the places are wrong or the valuation exceeds the error, informing the two parties to cancel the order. After waiting for the passenger to get on the bus and informing the verification code, the driver gives a corresponding m' d ={AID d ,[code]}([code]=E pa (code,pk pa ) Signed and send message { m' d ,φ' d ,t' d And the information is sent to the service provider and then sent to the supervision cloud by the service provider. Supervision cloud decryption [ code ]]Judging whether the codes are equal to the stored codes, after the passenger arrives at the destination, calculating a distance vector according to the coordinates by the driver again, sending the distance vector to a service provider for homomorphic calculation, if the distance vector is matched with the stored codes, carrying out supervision cloud verification, and if the distance vector is matched with the stored codes, charging the passenger。
The invention has the technical characteristics and beneficial effects that:
the invention utilizes the addition homomorphism of the Paillier encryption algorithm to ensure that the service provider cannot know the calculated content when carrying out the matching calculation, thereby effectively protecting the privacy security of drivers and passengers. In addition, the protocol also uses a road network embedding technology to convert the road network into a high-dimensional space, and the shortest distance calculation of two points in the network can be converted into simple calculation supported by the existing encryption primitives.