In general, the invention features methods by which more-than one client
program connected to a network stores the same data item on a storage
device of a data repository connected to the network. In one aspect, the
method comprises encrypting the data item using a key derived from the
content of the data item, determining a digital fingerprint of the data
item, and storing the data item on the storage device at a location or
locations associated with the digital fingerprint. In a second aspect,
the method comprises determining a digital fingerprint of the data item,
testing for whether the data item is already stored in the repository by
comparing the digital fingerprint of the data item to the digital
fingerprints of data items already in storage in the repository, and
challenging a client that is attempting to deposit a data item already
stored in the repository, to ascertain that the client has the full data
item.