LocX is a system that provides improved location privacy for users of geo-social applications. It decouples a user's real-world location from the location data shared with servers through the use of coordinate transformations and encryption. Users generate mappings between transformed locations and encrypted indexes (L2I) that are stored on an index server via proxies, as well as mappings between indexes and encrypted location data (I2D) stored directly on a data server. This allows users to query for friends' location data based on transformed coordinates while preserving the privacy of their real locations.