1. A computer implemented method to provide a secure data storage service in a cloud computing environment comprising: partitioning, at a resource of the cloud computing environment, a data resource received from a client for secure storage in the cloud computing environment into a plurality of data particles; changing, over time, a logical separation and a physical separation of the data particles in the data resource by performing the following operations on the data resource repeatedly over time while the data resource is stored in the cloud computing environment: assigning, at the data resource, a plurality of logic groups to the data particles, wherein each logic group includes one or more data particles including at least one communication data particle, wherein the one or more data particles in each of the logic groups is configured to communicate with any other data particle in that logic group, and wherein each communication data particle is configured to communicate with the resource; assigning, at the data resource, a plurality of physical storage groups to the data particles, wherein each of the physical storage groups includes one or more data particles; and storing each physical storage group at a corresponding storage resource of a plurality of storage resources of the cloud computing environment, wherein each storage resource is physically separate from the other storage resources; receiving a request for the data resource from the client; determining, at the resource, whether the request for the data resource is valid; and responsive to a determination that the request for the data resource is valid, transmitting the data particles of the data resource to the client, wherein changing, over time, a logical separation and a physical separation of the data particles in the data resource comprises changing the logical separation and the physical separation of the data particles at a frequency that varies as a function of a security level of the data resource.