This project is developing new foundational cryptographic techniques for outsourcing data and computations on it, which fully preserve data privacy. The focus is on real-world settings involving multiple users where privacy with respect to all other users is required, as well as privacy from the service provider. The project will aim to minimize the interaction between users in the system, making the computational complexity for each client independent of the total number of users. The investigators are developing protocols that allow many users to outsource their data to a cloud provider and later access it obliviously with respect to both the provider and other users while achieving as closely as possible the above efficiency requirements. This enables not only access but also computation over the outsourced data using a more efficient computational model called random access machines. These techniques aim to minimize the work performed by the users as well as the communication between users and the service provider. The project develops cryptographic techniques that protect data privacy while enabling its use in cloud computing. Resolving these issues is of increasing importance due to the explosion of data produced by people and machines. The investigators are committed to the dissemination of research results and education of students in this area.