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 replaces 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 includes repeated writing
of predetermined sequences to the unused locations. The wiping replaces
data at unused locations that represent portions of any of blocks,
clusters and sectors, and can wipe any metadata associated with files
previously stored at any of the unused locations. 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.