A method comprising: accessing a communication stream at a terminal device within a communications system, wherein the communication stream comprises communications data records arranged in a communication stream time order; organizing the communication stream into a plurality of epochs, wherein each epoch is associated with a particular epoch timeframe having a start time and an end time within the communication stream time order, and wherein each epoch is further associated with at least one data page of the communications data records; classifying each of the at least one data page as one of a historical page and a current page; maintaining at least one current data page on the terminal device; applying a shard distribution scheme to each historical data page, wherein applying the shard distribution scheme comprises: encrypting the historical data page to generate an encrypted data page; generating an encrypted data page address for the encrypted data page based on a terminal device identifier sourced from a hardware component or identifier of the terminal device, and based on an epoch address associated with the encrypted data page; dividing the encrypted data page into a plurality of data shards; outputting, for each data shard, a page shard count identifying the data shard; generating, for each data shard, an anonymous address by using the page shard count and the encrypted data page address as inputs to a cryptographic function pre-pending, for each data shard, the anonymous address to the data-shard to form a data shard unit, wherein the anonymous address is known only to the terminal device and eliminates correlation among the shard units for an external entity; and transmitting the shard units to remote servers for storage. accessing a communication stream at a terminal device within a communications system, wherein the communication stream comprises communications data records arranged in a communication stream time order; organizing the communication stream into a plurality of epochs, wherein each epoch is associated with a particular epoch timeframe having a start time and an end time within the communication stream time order, and wherein each epoch is further associated with at least one data page of the communications data records; classifying each of the at least one data page as one of a historical page and a current page; maintaining at least one current data page on the terminal device; applying a shard distribution scheme to each historical data page, wherein applying the shard distribution scheme comprises: encrypting the historical data page to generate an encrypted data page; generating an encrypted data page address for the encrypted data page based on a terminal device identifier sourced from a hardware component or identifier of the terminal device, and based on an epoch address associated with the encrypted data page; dividing the encrypted data page into a plurality of data shards; outputting, for each data shard, a page shard count identifying the data shard; generating, for each data shard, an anonymous address by using the page shard count and the encrypted data page address as inputs to a cryptographic function pre-pending, for each data shard, the anonymous address to the data-shard to form a data shard unit, wherein the anonymous address is known only to the terminal device and eliminates correlation among the shard units for an external entity; and transmitting the shard units to remote servers for storage. encrypting the historical data page to generate an encrypted data page; generating an encrypted data page address for the encrypted data page based on a terminal device identifier sourced from a hardware component or identifier of the terminal device, and based on an epoch address associated with the encrypted data page; dividing the encrypted data page into a plurality of data shards; outputting, for each data shard, a page shard count identifying the data shard; generating, for each data shard, an anonymous address by using the page shard count and the encrypted data page address as inputs to a cryptographic function pre-pending, for each data shard, the anonymous address to the data-shard to form a data shard unit, wherein the anonymous address is known only to the terminal device and eliminates correlation among the shard units for an external entity; and transmitting the shard units to remote servers for storage.