Patent Description:
Users of computing devices often require the deletion of data for a variety of reasons, such as to remove old, unwanted data, to prepare a storage device for gifting or sale, etc., see for example patent application <CIT>. Traditionally, typical methods for the erasure of data in a computing storage device focus on maximizing throughput while overwriting all storage locations. In cases where the storage device has a large maximum capacity, this can be a long, time consuming process. In such cases, interruption of the process can result in the data that is being destroyed to remain recoverable.

In emergency situations, time may be of the essence with respect to deletion of data. In the cases where the erasure process may be time consuming, the ability for a nefarious party to be able to recover data if interrupting the process may be detrimental to the owner of the data. Thus, there is a need for a technological solution to improve the speed and efficiency of the destruction of data from computing storage devices.

The present disclosure provides a description of systems and methods for the emergency destruction of data. Data that is used in the recovery of deleted data is targeted first prior to deletion of the underlying data, to restrict the ability to recover the data. As a result, data may be unrecoverable even if the deletion process is not completed, which may be beneficial in emergency situations when the time able to be expended for the process is limited.

The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments when read in conjunction with the accompanying drawings. Included in the drawings are the following figures:.

Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description of exemplary embodiments are intended for illustration purposes only and are, therefore, not intended to necessarily limit the scope of the disclosure.

<FIG> illustrates a process <NUM> for the emergency destruction of data in one or more data storage devices interfaced with a computing device to minimize the ability for recovery of data.

The process <NUM> may performed by a computing device, such as the computing device <NUM> illustrated in <FIG> and discussed in more detail below, that is specifically configured to perform the functions discussed herein. The process <NUM> may be used to destroy data files that are stored in one or more storage devices interfaced with or otherwise accessible by a computing device in a manner that reduces the ability for recovery of the data files targeted for destruction even in instances where the process <NUM> may be interrupted.

In step <NUM>, the computing device may detect storage devices interfaced therewith that may store data files eligible for destruction. In some embodiments, the computing device may use commands and/or functions that are native to the operating system used to operate the computing device and/or computing devices through which the storage devices are interfaced. The computing device may detect the storage devices and, as part of the detection, may identify a file system utilized by each of the storage devices. In some cases, the computing device may also identify the location of a file record for each of the storage devices and/or generate an index of data files on each of the storage devices.

In step <NUM>, the computing device may identify data files on the storage device(s) to be deleted using the process <NUM>. In one embodiment, the process <NUM> may be initiated by a user of the computing device. In such an embodiment, the user may be prompted to select one or more data files for destruction using an interface of the computing device. In some cases, the computing device may be configured to delete all data files not necessary for the execution of the operating system of the computing device. In other embodiments, the computing device may identify a predetermined number of data files (e.g., or folders of data files) based on the operating system, such as default temporary file storage locations, personal folders, system settings, etc. In some instances, step <NUM> may include the identification of a priority ranking for each of the data files identified for deletion. For instance, the computing device may utilize one or more priority levels (e.g., low, medium, high) for data files for use in prioritizing the execution of one or more steps in the process <NUM> as part of the destruction process for each of the identified data files.

In step <NUM>, the computing device may clear metadata from each of the identified data files. In some embodiments, the clearing of the metadata may include the deletion of a header of each of the identified data files, which may be included therein or stored in an alternative location, which may be based on the file system for the corresponding storage device. In other embodiments, metadata for data files in a storage device may be stored in a centralized or other predetermined location of that storage device, such as based on the associated file system, and may be cleared therefrom by the computing device.

In step <NUM>, the computing device may truncate the file sizes for each of the identified data files. In some instances, file size information may be stored in the header of a data file, and may be truncated accordingly. In other instances, the file size information may be stored in the file record for the corresponding storage device. In such instances, the computing device may truncate the file size for each of the identified data files in the respective file record. In some embodiments, truncating of the file size may include updating the file size of the data file to be zero. In other embodiments, the file size may be set to a predetermined number (e.g., based on file system) that is different from the original file size for the respective data file.

In step <NUM>, the computing device may rename each of the identified data files. In some embodiments, step <NUM> may be an optional step and may not be performed. In some cases, the user initiating the process <NUM> may select whether or not to include step <NUM> in the process <NUM>. Renaming of the data files may include modification of both the file name and the file extension for the data file. In some cases, the file extension may be changed to an extension for a different file type. In other cases, the file extension may be changed to an arbitrary extension, including one that is not recognizable by the operating system. For instance, a file named "family. jpg" may be changed to "file.

In step <NUM>, the computing device may delete or otherwise clear the file record for each of the storage devices from which data files are to be deleted. In some cases, the computing device may clear or delete only data in the file record that pertains to each of the identified files. In other cases, the computing device may only clear a file record if all data files on a given storage device are being destroyed. In some embodiments, step <NUM> may be an optional step and may not be performed. In some instances, the user initiating the process <NUM> may select whether or not to include step <NUM> in the process <NUM>. In such instances, the user may also select to perform step <NUM> with respect to only a portion of the storage devices from which files are being destroyed. For instance, the user may select files for deletion where a majority reside on an external hard drive of the computing system, and may request that the file record for the external hard drive be cleared, but not the file record on the computing device's internal hard drive. In some cases, the ability to clear or delete from a file record may be based on the corresponding storage device's file system, and/or the native functions of the operating system of the computing device.

In cases where priorities may be assigned to data files for destruction, steps <NUM>-<NUM> may be performed on a priority basis. In one embodiment, the computing device may perform each of steps <NUM>-<NUM> for all of the data files of one priority level before performing steps <NUM>-<NUM> for the next priority level, and so on. In another embodiment, the computing device may perform a step (e.g., step <NUM>) for each of the data files for one priority level, and then perform the same step for the data files of the next priority level, and so on, and wait to proceed to the next step in the process <NUM> until the step has been completed for all of the data files being destroyed. In some cases, the user may select how the steps of the process <NUM> are performed on the priority basis.

In step <NUM>, the computing device may delete the identified data files. In an exemplary embodiment, the computing device may use native functions of the operating system to perform the deletion of the data files. By performing steps <NUM>-<NUM> prior to deletion of the data files, if the process <NUM> is interrupted, the ability for an entity to recover the data may be restricted if not made impossible due to the removal of metadata and other data necessary for use in data recovery. As such, the earlier steps are performed prior to the deletion of the data files in step <NUM> in the emergency destruction of data as, in most emergency situations, time is of the essence.

In step <NUM>, the computing device may destroy the file data corresponding to the identified data files. For instance, in some file systems, deletion of data files in step <NUM> may not delete the underlying data from the storage device, but rather result in the file system flagging the corresponding data locations in the storage device as being available for future use. In such instances, step <NUM> may be used to ensure that the underlying data is also destroyed in an effort to make recovery impossible. In an exemplary embodiment, the computing device may generate a new data file in each of the storage devices from which data files were deleted. The computing device may generate the new data file, and may then incrementally increase the size of the data file using an arbitrary data pattern. The computing device may continue to increase the size of the data file until the size of the data file has filled all of the free space of the respective storage device. At this time, the computing device may delete the new data files, which may result in destruction of all of the underlying data for the deleted data files.

The methods and systems discussed herein enable a computing device to destroy data in an emergency situation. By removing metadata and other data used in file recovery situations first, the underlying data may be rendered unrecoverable even in instances where the complete destruction process may be interrupted. As a result, the methods discussed herein may have a higher success rate than traditional methods, even in cases where the full process <NUM> may not be completed. In addition, the performance of the steps prior to the deletion of the data files may be significantly faster than the overwriting processes used in traditional erasure methods, ensuring that the data is unrecoverable significantly faster than in traditional methods, further increasing efficiency, which may be paramount in emergency situations. Furthermore, the speed at which steps <NUM>-<NUM> may be performed in a computing device may be based on the number of data files being deleted, without regard for the size of the underlying data, ensuring that the data is made unrecoverable with greater speed and efficiency even in cases where the underlying data size is significant. For instance, the steps <NUM>-<NUM> may be performed just as quickly for destroying data used to recover <NUM>,<NUM> files that take up <NUM> megabytes of storage space as for destroying data used to recover <NUM>,<NUM> files that take up <NUM> terabytes of storage space.

<FIG> illustrates an embodiment of a computing device <NUM> in the system <NUM>. It will be apparent to persons having skill in the relevant art that the embodiment of the computing device <NUM> illustrated in <FIG> is provided as illustration only and may not be exhaustive to all possible configurations of the computing device <NUM> suitable for performing the functions as discussed herein. For example, the computer system <NUM> illustrated in FIG. <NUM> and discussed in more detail below may be a suitable configuration of the computing device <NUM>.

The computing device <NUM> may include a communication module <NUM>. The communication module <NUM> may be configured to transmit data between modules, engines, databases, memories, and other components of the computing device <NUM> for use in performing the functions discussed herein. The communication module <NUM> may be comprised of one or more communication types and utilize various communication methods for communications within a computing device. For example, the communication module <NUM> may be comprised of a bus, contact pin connectors, wires, etc. In some embodiments, the communication module <NUM> may also be configured to communicate between internal components of the computing device <NUM> and external components of the computing device <NUM>, such as externally connected databases, display devices, input devices, etc. The computing device <NUM> may also include a processing device. The processing device may be configured to perform the functions of the computing device <NUM> discussed herein as will be apparent to persons having skill in the relevant art. In some embodiments, the processing device may include and/or be comprised of a plurality of engines and/or modules specially configured to perform one or more functions of the processing device, such as a data identification module <NUM>, data generation module <NUM>, data modification module <NUM>, data destruction module <NUM>, etc. As used herein, the term "module" may be software or hardware particularly programmed to receive an input, perform one or more processes using the input, and provides an output. The input, output, and processes performed by various modules will be apparent to one skilled in the art based upon the present disclosure.

The communication module <NUM> may also be configured to perform communications with one or more external computing systems or devices using suitable communication networks, methods, and protocols, such as radio frequency, local area networks, wireless area networks, cellular communication networks, Bluetooth, the Internet, etc. In some embodiments, the communication module <NUM> may be comprised of multiple modules, devices, or interfaces, such as different devices for transmitting and/or receiving data over different networks, such as a first device or module for transmitting/receiving data over a local area network and a second device or module for transmitting/receiving data via the Internet. The communication module <NUM> may transmit and receive electronically transmitted data signals, where data may be superimposed or otherwise encoded on the data signal and decoded, parsed, read, or otherwise obtained via receipt of the data signal by the computing device <NUM> or respective recipient. In some instances, the communication module <NUM> may include a parsing module for parsing of received data signals to obtain data superimposed thereon.

The computing device <NUM> may include a data storage device <NUM>. The data storage device <NUM> may be configured to store data for use by the computing device <NUM> in performing the functions discussed herein, such as an operating system having one or more native commands used to perform the steps of the process <NUM>, as discussed above. The data storage device <NUM> may be configured to store data using a file system and suitable data formatting methods and schema and may be any suitable type of memory, such as read-only memory, random access memory, etc. The data storage device <NUM> may include, for example, encryption keys and algorithms, communication protocols and standards, data formatting standards and protocols, program code for modules and application programs of the processing device, and other data that may be suitable for use by the computing device <NUM> in the performance of the functions disclosed herein as will be apparent to persons having skill in the relevant art. In some embodiments, the data storage device <NUM> may be comprised of or may otherwise include a relational database that utilizes structured query language for the storage, identification, modifying, updating, accessing, etc. of structured data sets stored therein.

In some embodiments, the data storage device <NUM> may be configured to store data files that are to be deleted via the process <NUM>. In other embodiments, the computing device <NUM> may include additional data storage devices <NUM> from which data files may be deleted. In some cases, the computing device <NUM> may be configured to delete data files from data storage devices <NUM> that are external to the computing device <NUM>, which may be interfaced therewith or may be interfaced with other computing devices or systems in communication with the computing device <NUM>, such as via the communication module <NUM>. In some cases, different data storage devices <NUM> accessible by the computing device <NUM> may utilize different file systems.

The computing device <NUM> may also include or be otherwise interfaced with one or more input devices <NUM>. The input devices <NUM> may be internal to the computing device <NUM> or external to the computing device <NUM> and connected thereto via one or more connections (e.g., wired or wireless) for the transmission of data to and/or from. The input devices <NUM> may be configured to receive input from a user of the computing device <NUM>, which may be provided to another module or engine of the computing device <NUM> (e.g., via the communication module <NUM>) for processing accordingly. Input devices <NUM> may include any type of input device suitable for receiving input for the performing of the functions discussed herein, such as a keyboard, mouse, click wheel, scroll wheel, microphone, touch screen, track pad, camera, optical imager, etc. The input device <NUM> may be configured to, for example, receive input of instructions by a user for selection of one or more data files to be deleted or for deletion in a future emergency data destruction process (e.g., the process <NUM>). The input device <NUM> may also be configured to receive an instruction from the user for initiating an emergency data destruction process.

The computing device <NUM> may also include or be otherwise interfaced with a display device <NUM>. The display device <NUM> may be internal to the computing device <NUM> or external to the computing device <NUM> and connected thereto via one or more connections (e.g., wired or wireless) for the transmission of data to and/or from. The display device <NUM> may be configured to display data to a user of the computing device <NUM>. The display device <NUM> may be any type of display suitable for displaying data as part of the functions discussed herein, such as a liquid crystal display, light emitting diode display, thin film transistor display, capacitive touch display, cathode ray tube display, light projection display, etc. In some instances, the computing device <NUM> may include multiple display devices <NUM>. The display device <NUM> may be configured to, for example, display an interface to the user for the selection of data files for emergency destruction, the prioritization of data files for destruction, the initiation of the emergency data destruction process, etc. The display device <NUM> may also be configured to display notifications regarding an ongoing data destruction process, such as process of each of the steps <NUM>-<NUM> in the process <NUM>, and a notification when the process <NUM> is completed.

The computing device <NUM> may also include a data identification module <NUM>. The data identification module <NUM> may be configured to identify data for use in performing the functions of the computing device <NUM> as discussed herein. For instance, the data identification module <NUM> may be configured to identify all data storage devices <NUM> accessible by the computing device <NUM> and the data files stored therein that are eligible for destruction. The data identification module <NUM> may also be configured to identify the file system of each detected data storage device <NUM>, as well as the location of each file record thereof. In an exemplary embodiment, the data identification module <NUM> may be configured to utilize native commands of an operating system in performing the functions associated therewith.

The computing device <NUM> may also include a data generation module <NUM>. The data generation module <NUM> may be configured to generate data for use in performing the functions of the computing device <NUM> as discussed herein. The data generation module <NUM> may be configured to overwrite data, such as the overwriting of header information or metadata for existing data files. The data generation module <NUM> may also be configured to generate new data files and incrementally increase the file size of existing data files via an arbitrary data pattern. Any suitable type of arbitrary data pattern may be utilize by the data generation module <NUM>, and may be used by the data generation module <NUM> to incrementally increase a newly generated data file until the available space in a target data storage device <NUM> is fully consumed. In an exemplary embodiment, the data generation module <NUM> may be configured to utilize native commands of an operating system in performing the functions associated therewith.

The computing device <NUM> may also include a data modification module <NUM>. The data modification module <NUM> may be configured to modify data for performing the functions of the computing device <NUM> as discussed herein. The data modification module <NUM> may be configured to modify data files, file headers, file records, and other data as discussed herein. For instance, the data modification module <NUM> may be configured to modify file sizes of data files that are queued for destruction, such as part of step <NUM>, as discussed above. The data modification module <NUM> may also be configured to rename data files, such as by modifying the file name and file extension for a data file to an arbitrary file name and file extension, respectively. In an exemplary embodiment, the data modification module <NUM> may be configured to utilize native commands of an operating system in performing the functions associated therewith.

The computing device <NUM> may also include a data destruction module <NUM>. The data destruction module <NUM> may be configured to destroy data for performing the functions of the computing device <NUM> as discussed herein. The data destruction module <NUM> may be configured to delete data files, delete data included in file records, delete file records, delete metadata, delete file headers, or destroy other data as part of the data destruction processes discussed herein. In an exemplary embodiment, the data destruction module <NUM> may be configured to utilize native commands of an operating system in performing the functions associated therewith.

<FIG> illustrates data that may be included in a data storage device <NUM> included in or otherwise accessible by the computing device <NUM>, which may include one or more data files for destruction using the process <NUM>.

As illustrated, the data storage device <NUM> may be comprised of a plurality of data files <NUM> and a data record <NUM>. Each of the data files <NUM> may include at least a header <NUM> and file data <NUM>. The header <NUM> may include metadata about the respective data file <NUM> and its contents. The header <NUM> may be included at the beginning of the data file <NUM>, at the end of the data file <NUM>, or at another predefined location, which may be based on the file system of the data storage device <NUM>, the operating system of the computing device <NUM>, the file format of the data file <NUM>, or other consideration. The header <NUM> may include, for instance, file size information, image format data, authoring information, date information, etc. The data <NUM> may be the underlying data corresponding to the data file <NUM>.

As discussed above, during the process <NUM>, the modules of the computing device <NUM> may be used to modify data stored in the header <NUM> for identified data files <NUM> and/or delete the header <NUM>. For instance, in step <NUM>, the data generation module <NUM> of the computing device <NUM> may be configured to overwrite the header <NUM> or data included therein to remove or otherwise obscure the metadata for targeted data files <NUM>, or the data destruction module <NUM> may be configured to delete the header <NUM> entirely. In another example, in step <NUM>, the data modification module <NUM> of the computing device <NUM> may be configured to truncate the file size for each of the data files <NUM> identified for destruction, which may be included in the header <NUM> of the respective data files <NUM>.

The data record <NUM>, also referred to herein as a file record, may be a record stored in the data storage device <NUM> that includes data regarding the data files <NUM> stored therein. Also referred to in the art as a data run list, file run list, etc. the data record <NUM> may include a listing of the data files <NUM> and data associated therewith, such as file sizes <NUM>, underlying physical locations in the data storage device <NUM> for the corresponding data, etc. In some cases, the data included in a data record <NUM> and the location of the data record <NUM> may be based on the file system of the data storage device <NUM>. As discussed above, the data record <NUM> may be modified or deleted as part of the process <NUM>. For example, in step <NUM>, the data modification module <NUM> of the computing device <NUM> may be configured to truncate the file sizes <NUM> for each of the data files <NUM> targeted for destruction. In another example, in step <NUM>, the data destruction module <NUM> of the computing device <NUM> or the data modification module <NUM> may delete the data record <NUM> for a data storage device <NUM> or delete entries therein corresponding to data files <NUM> targeted for destruction, respectively.

<FIG> illustrates a table <NUM> that illustrates the assignment of priority levels to data file locations for destruction as part of the emergency destruction of data as discussed herein, such as in the process <NUM> discussed above.

As illustrated in the table <NUM>, a priority level may be assigned to each data file or data file location that is selected for deletion as part of the emergency data destruction process. In the illustrated example, three priority levels are used: low, medium, and high. In this example, data files included in locations with a high priority will be processed first, followed by data files included in locations with a medium priority, and finishing with data files included in locations with a low priority. In some embodiments, each of the steps <NUM>-<NUM> may be performed first for data files having a high priority before the performance of steps <NUM>-<NUM> for data files having a medium priority and then again for the data files having a low priority. In other embodiments, each step (e.g., steps <NUM>, <NUM>, and <NUM>) may first be performed for all of the data files going in order of priority. For instance, step <NUM> may be performed first for data files having high priority, then data files having medium priority, and lastly data files having low priority, before continuing on to step <NUM>.

In some embodiments, the user may select the priority level for each of the data file locations and may identify the data file locations to be destroyed as part of the emergency data destruction process. In other embodiments, the computing device <NUM> may identify data file locations and associated priority levels based on predefined information. For instance, the computing device <NUM> may have default data file locations and associated priorities based on the operating system of the computing device <NUM> and/or the file systems of detected data storage devices <NUM>. For example, folders used by the operating system for storage of user information (e.g., "C:\Users\Jefferson\My Documents" in the illustrated example) may be predefined by the computing device <NUM> for default inclusion in an emergency data destruction process.

<FIG> illustrates a method <NUM> for the emergency destruction of data by a computing device that targets rendering data files unrecoverable prior to full deletion of the underlying data.

In step <NUM>, one or more data files (e.g., data files <NUM>) for emergency destruction is identified by a data identification module (e.g., the data identification module <NUM>) of a computing device (e.g., the computing device <NUM>), wherein the one or more data files are stored in one or more data storage devices (e.g., data storage devices <NUM>). In one embodiment, identifying the one or more data files may include receiving, by an input device (e.g., input device <NUM>) interfaced with the computing device, user instructions selecting each of the one or more data files for destruction. In some embodiments, the one or more data storage devices may be one of: interfaced directly with the computing device or interfaced with a separate computing device.

In step <NUM>, at least one file system utilized by the one or more storage devices is identified by the data identification module of the computing device. In one embodiment, the method <NUM> may also include detecting, by the data identification module of the computing device, the one or more storage devices prior to identification of the at least one file system. In step <NUM>, a header (e.g., header <NUM>) of each of the one or more data files may be overwritten by a data generation module (e.g., the data generation module <NUM>) of the computing device, wherein the header of each of the one or more data files is identified based on the at least one file system. In some embodiments, the header of each of the one or more data files may be overwritten using an arbitrary data pattern.

In step <NUM>, a file size (e.g., file size <NUM>) of each of the one or more data files is truncated by a data modification module (e.g., the data modification module <NUM>) may be truncated. In one embodiment, the file size of each of the one or more data files may be truncated to zero. In step <NUM>, each of the one or more data files is deleted by a data destruction module (e.g., the data destruction module <NUM>) of the computing device, wherein the overwriting and truncating steps are performed prior to deletion of each of the one or more data files. In some embodiments, the method <NUM> also includes renaming, by the data modification module of the computing device, a file name of each of the one or more data files, wherein renaming the file name includes changing a file extension of the respective data file, and renaming is performed prior to deletion of the respective data file.

In one embodiment, the method <NUM> further includes deleting, by the data destruction module of the computing device, a file record (e.g., data record <NUM>) associated with each of the one or more data storage devices, wherein the respective file record is identified based on the file system utilized by the corresponding data storage device. In some embodiments, the data identification module, data generation module, data modification module, and data destruction module may be configured to use native commands of an operating system of the computing device. In one embodiment, the method <NUM> also includes generating, by the data generation module of the computing device, a new data file in each of the one or more data storage devices after deletion of the one or more data files; incrementally increasing, by the data generation module of the computing device, a file size of each new data file using an arbitrary data pattern until the corresponding data storage device has reached a maximum capacity; and deleting, by the data destruction module of the computing device, each new data file.

<FIG> illustrates a computer system <NUM> in which embodiments of the present disclosure, or portions thereof, may be implemented as computer-readable code. For example, the computing device <NUM> of <FIG> may be implemented in the computer system <NUM> using hardware, software, firmware, non-transitory computer readable media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems. Hardware, software, or any combination thereof may embody modules and components used to implement the methods of <FIG> and <FIG>.

If programmable logic is used, such logic may execute on a commercially available processing platform configured by executable software code to become a specific purpose computer or a special purpose device (e.g., programmable logic array, application-specific integrated circuit, etc.). A person having ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device. For instance, at least one processor device and a memory may be used to implement the above described embodiments.

A processor unit or device as discussed herein may be a single processor, a plurality of processors, or combinations thereof. Processor devices may have one or more processor "cores. " The terms "computer program medium," "non-transitory computer readable medium," and "computer usable medium" as discussed herein are used to generally refer to tangible media such as a removable storage unit <NUM>, a removable storage unit <NUM>, and a hard disk installed in hard disk drive <NUM>.

Various embodiments of the present disclosure are described in terms of this example computer system <NUM>. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the present disclosure using other computer systems and/or computer architectures. Although operations may be described as a sequential process, some of the operations may in fact be performed in parallel, concurrently, and/or in a distributed environment, and with program code stored locally or remotely for access by single or multi-processor machines. In addition, in some embodiments the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.

Processor device <NUM> may be a special purpose or a general purpose processor device specifically configured to perform the functions discussed herein. The processor device <NUM> may be connected to a communications infrastructure <NUM>, such as a bus, message queue, network, multi-core message-passing scheme, etc. The network may be any network suitable for performing the functions as disclosed herein and may include a local area network (LAN), a wide area network (WAN), a wireless network (e.g., WiFi), a mobile communication network, a satellite network, the Internet, fiber optic, coaxial cable, infrared, radio frequency (RF), or any combination thereof. Other suitable network types and configurations will be apparent to persons having skill in the relevant art. The computer system <NUM> may also include a main memory <NUM> (e.g., random access memory, read-only memory, etc.), and may also include a secondary memory <NUM>. The secondary memory <NUM> may include the hard disk drive <NUM> and a removable storage drive <NUM>, such as a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, etc..

The removable storage drive <NUM> may read from and/or write to the removable storage unit <NUM> in a well-known manner. The removable storage unit <NUM> may include a removable storage media that may be read by and written to by the removable storage drive <NUM>. For example, if the removable storage drive <NUM> is a floppy disk drive or universal serial bus port, the removable storage unit <NUM> may be a floppy disk or portable flash drive, respectively. In one embodiment, the removable storage unit <NUM> may be non-transitory computer readable recording media.

In some embodiments, the secondary memory <NUM> may include alternative means for allowing computer programs or other instructions to be loaded into the computer system <NUM>, for example, the removable storage unit <NUM> and an interface <NUM>. Examples of such means may include a program cartridge and cartridge interface (e.g., as found in video game systems), a removable memory chip (e.g., EEPROM, PROM, etc.) and associated socket, and other removable storage units <NUM> and interfaces <NUM> as will be apparent to persons having skill in the relevant art.

Data stored in the computer system <NUM> (e.g., in the main memory <NUM> and/or the secondary memory <NUM>) may be stored on any type of suitable computer readable media, such as optical storage (e.g., a compact disc, digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage (e.g., a hard disk drive). The data may be configured in any type of suitable database configuration, such as a relational database, a structured query language (SQL) database, a distributed database, an object database, etc. Suitable configurations and storage types will be apparent to persons having skill in the relevant art.

The computer system <NUM> may also include a communications interface <NUM>. The communications interface <NUM> may be configured to allow software and data to be transferred between the computer system <NUM> and external devices. Exemplary communications interfaces <NUM> may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via the communications interface <NUM> may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals as will be apparent to persons having skill in the relevant art. The signals may travel via a communications path <NUM>, which may be configured to carry the signals and may be implemented using wire, cable, fiber optics, a phone line, a cellular phone link, a radio frequency link, etc..

The computer system <NUM> may further include a display interface <NUM>. The display interface <NUM> may be configured to allow data to be transferred between the computer system <NUM> and external display <NUM>. Exemplary display interfaces <NUM> may include high-definition multimedia interface (HDMI), digital visual interface (DVI), video graphics array (VGA), etc. The display <NUM> may be any suitable type of display for displaying data transmitted via the display interface <NUM> of the computer system <NUM>, including a cathode ray tube (CRT) display, liquid crystal display (LCD), light-emitting diode (LED) display, capacitive touch display, thin-film transistor (TFT) display, etc..

Computer program medium and computer usable medium may refer to memories, such as the main memory <NUM> and secondary memory <NUM>, which may be memory semiconductors (e.g., DRAMs, etc.). These computer program products may be means for providing software to the computer system <NUM>. Computer programs (e.g., computer control logic) may be stored in the main memory <NUM> and/or the secondary memory <NUM>. Such computer programs, when executed, may enable computer system <NUM> to implement the present methods as discussed herein. In particular, the computer programs, when executed, may enable processor device <NUM> to implement the methods illustrated by <FIG> and <FIG>, as discussed herein. Accordingly, such computer programs may represent controllers of the computer system <NUM>. Where the present disclosure is implemented using software, the software may be stored in a computer program product and loaded into the computer system <NUM> using the removable storage drive <NUM>, interface <NUM>, and hard disk drive <NUM>, or communications interface <NUM>.

The processor device <NUM> may comprise one or more modules or engines configured to perform the functions of the computer system <NUM>. Each of the modules or engines may be implemented using hardware and, in some instances, may also utilize software, such as corresponding to program code and/or programs stored in the main memory <NUM> or secondary memory <NUM>. In such instances, program code may be compiled by the processor device <NUM> (e.g., by a compiling module or engine) prior to execution by the hardware of the computer system <NUM>. For example, the program code may be source code written in a programming language that is translated into a lower level language, such as assembly language or machine code, for execution by the processor device <NUM> and/or any additional hardware components of the computer system <NUM>. The process of compiling may include the use of lexical analysis, preprocessing, parsing, semantic analysis, syntax-directed translation, code generation, code optimization, and any other techniques that may be suitable for translation of program code into a lower level language suitable for controlling the computer system <NUM> to perform the functions disclosed herein. It will be apparent to persons having skill in the relevant art that such processes result in the computer system <NUM> being a specially configured computer system <NUM> uniquely programmed to perform the functions discussed above.

Claim 1:
A method (<NUM>) for emergency data destruction, comprising:
identifying (<NUM>), by a processing device of a computing device (<NUM>), one or more data files for emergency destruction stored in one or more data storage devices (<NUM>);
identifying (<NUM>), by the processing device of the computing device (<NUM>), at least one file system utilized by the one or more data storage devices (<NUM>);
overwriting (<NUM>), by the processing device of the computing device, a header (<NUM>) of each of the one or more data files, wherein the header of each of the one or more data files is identified based on the at least one file system;
truncating (<NUM>), by the processing device of the computing device, a file size (<NUM>) of each of the one or more data files;
renaming, by the processing device of the computing device, a file name of each of the one or more data files, where renaming the file name includes changing a file extension of the respective data file;
deleting (<NUM>), by the processing device of the computing device, each of the one or more data files, wherein the overwriting, truncating, and renaming steps are performed prior to deletion of each of the one or more data files;
generating, by the processing device of the computing device, a new data file in each of the one or more data storage devices after deletion of the one or more data files;
incrementally increasing, by the processing device of the computing device, a file size of each new data file using an arbitrary data pattern until the corresponding data storage device has reached a maximum capacity; and
deleting, by the processing device of the computing device, each new data file.