With the increasing growth of cloud computing and the resulting outsourcing of data, concerns of data integrity, security, and privacy are also on the rise. Among these, evidence of data integrity - being tamper-evident and up-to-date, seem to be of immediate concern. While several integrity techniques currently exist, most result in significant storage overhead at the data owner site. For clients with large data sets, these are not viable solutions. In this paper, we propose a space-efficient alternative - data integrity using Bloom filters. We propose the basic method and discuss different alternatives to implement the scheme based on the trust/threat model and processing/storage capacity at the server and the client. For one of these alternatives, we present a detailed analysis and experimental results. These results are compared with the traditional security hash functions such as SHA-1 and MD5. The Bloom filter implementations are shown to be highly space-efficient at the expense of additional computational overhead. To overcome this bottleneck, we have implemented the schemes on multiprocessor systems. The multicore implementations have significantly reduced the execution time. Our results clearly demonstrate the feasibility and efficacy of employing Bloom filters to enforce data integrity for outsourced data in cloud environments.