A method of securely deleting data from a storage medium includes
generating a bitmap that corresponds to unused locations on the storage
medium; initiating a background process that wipes the unused locations,
where the background process runs asynchronously with a user application;
wiping the unused locations; and updating the bitmap to reflect that the
unused locations have been wiped. The wiping can also replace data at the
unused locations with random sequences, with pseudo-random sequences,
with data generated by a secure deletion algorithm, with application data
from the user application, or with all zeros. The wiping can also include
repeated writing of predetermined sequences to the unused locations. The
unused locations correspond to blocks, clusters and/or sectors. The
wiping can also replace data at unused locations that represent portions
of any of blocks, clusters and sectors. The wiping can also include
wiping any metadata associated with files previously stored at any of the
unused locations. The bitmap can correspond to all unused locations on
the storage medium. Upon a request for access of data from a wiped
location, data that does not correspond to data originally stored at the
wiped location can be returned. The bitmap can identify deleted files,
and/or inline files, and/or temporary files that are not used by user
applications.