1. A computer-implemented method comprising: authenticating an authentication system, a user, and a service provider; generating an access code based on a combination of data related to the authenticated user and data related to the authenticated service provider, the access code providing information for locating one or more data storage locations; using the access code to access at least some of the data storage locations; and retrieving the data from the accessed data storage locations.