  Ride-sharing allows multiple persons to share their trips together in one
vehicle instead of using multiple vehicles. This can reduce the number of
vehicles in the street, which consequently can reduce air pollution, traffic
congestion and transportation cost. However, a ride-sharing organization
requires passengers to report sensitive location information about their trips
to a trip organizing server (TOS) which creates a serious privacy issue. In
addition, existing ride-sharing schemes are non-flexible, i.e., they require a
driver and a rider to have exactly the same trip to share a ride. Moreover,
they are non-scalable, i.e., inefficient if applied to large geographic areas.
In this paper, we propose two efficient privacy-preserving ride-sharing
organization schemes for Non-transferable Ride-sharing Services (NRS) and
Transferable Ride-sharing Services (TRS). In the NRS scheme, a rider can share
a ride from its source to destination with only one driver whereas, in TRS
scheme, a rider can transfer between multiple drivers while en route until he
reaches his destination. In both schemes, the ride-sharing area is divided into
a number of small geographic areas, called cells, and each cell has a unique
identifier. Each driver/rider should encrypt his trip's data and send an
encrypted ride-sharing offer/request to the TOS. In NRS scheme, Bloom filters
are used to compactly represent the trip information before encryption. Then,
the TOS can measure the similarity between the encrypted trips data to organize
shared rides without revealing either the users' identities or the location
information. In TRS scheme, drivers report their encrypted routes, an then the
TOS builds an encrypted directed graph that is passed to a modified version of
Dijkstra's shortest path algorithm to search for an optimal path of rides that
can achieve a set of preferences defined by the riders.
