Caching is an efficient way to reduce network traffic congestion during peak hours by storing some content at the user's local cache memory without knowledge of later demands. For the sharedlink caching model, Maddah-Ali and Niesen (MAN) proposed a two-phase (placement and delivery phases) coded caching strategy, which is order optimal within a constant factor. However, in the MAN scheme, each user can obtain the information about the demands of other users, i.e., the MAN scheme is inherently prone to tampering and spying the activity/demands of other users. In this paper, we formulate a shared-link caching model with private demands. Our goal is to design a two-phase private caching scheme with minimum load while preserving the privacy of the demands of each user with respect to other users. Two private caching schemes are proposed with some (order) optimality results for high memory regime. We also propose a private scheme to further reduce the transmitted load for the case where each user has a distinct request, e.g., in practical asynchronous streaming users always have distinct demands. Finally, this scheme is extended to the general demand case, which is order optimal for any memory size, but with an extremely high sub-packetization level. While the ensemble of our results essentially close the problem of (order) optimal coded caching subject to the privacy of users' demands, the problem of how to achieve this optimality in the small memory regime without an exponentially large expansion of the sub-packetization order remains as an interesting open problem for future investigation.
I. INTRODUCTION
A. Brief Review of Coded CachingRecent years have witnessed a steep increase of wireless devices connected to the Internet, leading to a heavy network traffic because of multimedia streaming, web-browsing and social networking. Furthermore, the high temporal variability of network traffic results in congestions K. Wan and G. Caire are with the Electrical Engineering and