Removable devices

Information

  • Patent Grant
  • 8612671
  • Patent Number
    8,612,671
  • Date Filed
    Wednesday, March 14, 2012
    12 years ago
  • Date Issued
    Tuesday, December 17, 2013
    11 years ago
Abstract
Methods and removable devices are provided. Some such removable devices may include a secure partition and a public partition. The secure partition is not accessible by an operating system of a host for some embodiments. The secure partition is configured to store information so that formatting/reformatting does not alter the stored information for other embodiments.
Description
FIELD

The present invention relates generally to devices and particularly to removable devices.


BACKGROUND

As part of increased security measures, digital storage devices, such as those used with Personal Computers (PC) and otherwise, rightfully deserve their fair share of additional security, particularly when used in an Internet environment.


That is, files saves for all sorts of usage, such as photography, passwords, data in general, at times, need to be securely handled without any threat of invasion, manipulation or simply theft. Currently, digital storage devices, such as a Jumpdrive made by Lexar Media, Inc. of Fremont, Calif., does not include safety measure features to avoid wrongful manipulation of data stored therein. The important reason for implementing security on a secure removable storage device is that such devices are prone to getting lost because they are small and portable.


Thus, the need arises for a secure removable storage device for storing data or information in a safe and secure manner thereby avoiding wrongful manipulation or deletion of the stored data while allowing further secure application of the removable storage device in the environment of the Internet.


There is an additional need to personalize the storage device so that user-selected or program settings are automatically executed regardless of which host the storage device is connected thereto.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 shows a secure storage system 10 in accordance with an embodiment of the present invention;



FIG. 2 shows further aspects of the system 10 of FIG. 1;



FIG. 3 shows an example of the contents of the ‘autorun.inf’ file in accordance with an embodiment of the present invention;



FIG. 4 illustrates an example of a response from the device 12 to the host 24;



FIG. 5 shows the system 10 including the structures of FIG. 2 except that the monitor 28 is shown to display, at 56, a question posed to the user as to what application the user would like to launch and next, at 58;



FIG. 6 shows the system 10 but when the user connects the device 12 to the host 24, the software program that was listed in the autorun.inf file as being ‘autorun’ causes the user-selected application to be executed;



FIG. 7 shows the way in which a user selects the user-selected application;



FIG. 8 shows the system 10 for automatically checking the health of the device 12 when it is plugged into or connected to the host 24;



FIG. 9 shows a flow chart of the steps performed for checking the health of a storage device, such as the device 12;



FIG. 10 shows a storage device 100, in accordance with another embodiment of the present invention;



FIG. 11 shows a flow chart 110 listing the steps performed for creating the secure partition 102 of FIG. 10;



FIG. 12 shows the device 100 with further details of the allocation of the storage locations thereof;



FIG. 13 shows an allocation structure to include an application layer 130, which is in contact with a file system or FAT 132, which is, in turn, in contact with an encryption device driver 134, which is in contact with a storage driver 136, which is in contact with a flash storage device 138;



FIG. 14 depicts a storage device 140 in accordance with yet another embodiment of the present invention;



FIG. 15 shows an example of an application of the device 12 in accordance with an embodiment of the present invention;



FIGS. 16-20 relate to another embodiment of the present invention, namely a double or two-key encryption process.



FIG. 21 shows a flow chart of the steps performed when performing step 182 of FIG. 20.



FIG. 22 shows a flow chart of the steps performed when performing step 186 of FIG. 20.





DETAILED DESCRIPTION

Referring now to FIG. 1, a secure storage system 10 is shown to include a removable (or portable) storage device 12 having two partitioned storage areas, a secure storage area 14 and a public storage area 16, and a device port 18, in accordance with an embodiment of the present invention. The port 18 couples the device 12 to a host (not shown in FIG. 1) and in one embodiment of the present invention is a Universal Serial Bus (USB) connector although other types of connectors may be employed without departing from the scope and spirit of the present invention. In one embodiment of the present invention, the device 12 is a removable (or portable) flash storage device or a removable nonvolatile storage device.


Also shown in FIG. 1, is a display 20 appearing on a monitor of a host (not shown) for displaying the contents of an ‘autorun.inf’ file, which is a file used by Microsoft operating systems, such as Windows, for automatically executing files that are indicated as being automatically executed, by the operating systems, at start-up. For example, in FIG. 1, the file that is being indicated to automatically start at, start-up, is the file ‘SafeGuard20.exe’ and it will be executed automatically when the device 12 is connected, though the port 18, to a host. It should be noted that the file ‘SDSSecure20.exe’ merely serves as an example, other files may be indicated and are actually specified by a user of the device 12.


In one embodiment of the present invention, the device 12 includes flash or nonvolatile memory and particularly in the secure area 14 and the public area 16.


While the ‘autorun.inf’ file is known to Windows operating systems, the concept of executing, automatically, files listed in the ‘autorun.inf’ for removable devices is not known. That is, in prior art systems, Microsoft operating systems do not support the ‘autorun’ feature for devices that are removably connected to a host.


The way in which the ‘autorun’ feature supports the device 12 is by making the device 12 appear as a ‘non-removable’ device rather than a ‘removable’ device to the operating system. This entails changing the firmware that resides or is stored within the device 12 so that it returns the properties of the device 12 as that of a ‘non-removable’ device. Particularly, upon a Small Computer Systems Interface (SCSI) inquiry from a host, a response thereto, from the device 12, indicates that the latter is ‘non-removable’.


A further change is to create an ‘autorun.inf’ file in a root directory, or at 22 in FIG. 1, of the device 12, specifying the name of the program to be executed automatically, which in the example of FIG. 1 is the program ‘SafeGuard20.exe’.



FIG. 2 shows further aspects of the system 10, particularly, a host 24 including a host port 26 through which the host 24 is coupled to the device 12. That is, the port 26 is connected to the port 18 for causing communication between the host 24 and the device 12. In one embodiment of the present invention, the port 26 is a USB connector but other types of connectors may be readily employed.


The host 24 is shown to be coupled to a monitor 28 through the connection 34 and to a mouse device 32 through the connection 38 and to a keyboard device 30 through the connection 36. Following the example of FIG. 1, the ‘SafeGuard20.exe’ software is opened and displayed on the monitor 28 in FIG. 2. It should be noted that the ‘SafeGuard20.exe’ software was automatically started when the device 12 was plugged into the host 24 through the ports 18 and 26 because such an automatic action is effectuated through the ‘autorun.inf’ program, as discussed above.


Another example of the contents of the ‘autorun.inf’ program is presented in FIG. 3 in accordance with an embodiment of the present invention. In FIG. 3, the program that is slated for automatic execution thereof upon a removable storage device being coupled to a host is ‘JDSecure20.exe’ and in fact, an icon representing this program will also appear on a monitor displayed to the user, as the same is programmed into the ‘autorun.inf’ file. In operation, the user chooses to have or have not an icon represent the program to be automatically opened upon start-up and the storage device then adds this feature to the user's start-up procedure by programming the ‘autorun.inf’ file as shown in FIG. 3.


When a user connects a removable storage device, such as the device 12, to a host, such as the host 24 of FIG. 2, the operating system, such as Windows, being executed by the host 24, discovers that the device 12 supports ‘autorun’ because the device 12 includes an ‘autorun.inf’ file and it is being represented as a non-removable device to the host 24. Windows then invokes the program listed in the autorun.inf file under the “open” section, at 50 in FIG. 3 and creates an icon representing the listed program, as the same is indicated under the “icon” section, at 52 in FIG. 3, of the ‘autorun.inf’ file.


This relieves the user from determining which program to execute and at the same time, a setup program is automatically invoked.



FIG. 4 shows an example of a response from the device 12 to host 24 (in FIG. 2). In particular, as the device 12 falsely leads the host 24 to believe that it is non-removable, at 54 in FIG. 4, the removable data is indicated as being ‘0’, thus, to the host 24, the device 12 is non-removable.



FIG. 5 shows the system 10 including the structures of FIG. 2 except that the monitor 28 is shown to display, at 56, a question posed to the user as to what application the user would like to launch and next, at 58, the user (not shown) selects the application he/she would like to have launched automatically upon start-up, or when the device 12 is coupled to the host 24. In this example, the user has chosen to launch MS Word, a word processing application, manufactured by Microsoft, Inc. of Seattle, Wash.


In operation, the first time a user connects the device 12 to the host 24, the user is asked to select an application to be executed automatically, at 56. The application that the user wishes to select can reside either in the host 24 or in the device 12.


In FIG. 6, the system 10 is shown again but this time, when the user connects the device 12 to the host 24, the software program that was listed in the autorun.inf file as being ‘autorun’ causes the user-selected application to be executed, i.e. MS Word in the example of FIGS. 5 and 6. In fact, once the user goes through the process of FIG. 5, every time the user connects the device 12 to the host 24, the software program which was designated in the ‘autorun.inf’ file, under “open”, will be executed automatically. Again, in this example, MS Word will be automatically executed very time the user plugs the device 12 into the host 24 because MS Word will have been designated under ‘open’ in the ‘autorun.inf’ file after the user selected MS Word at 58 in FIG. 5.


The device 126 remembers the name and the location of the user-selected application, i.e. MS Word. Thus, if the user plugs the device 12 into a second host or a host other than the host 24, the user-selected application is launched onto the second host. The user-selectable application could reside on the device 12 or the host.


As an example, the application Word will most likely reside on the host. The device 12 only remembers the “location” or “path” of the program to be executed on a device plug-in. If the location of Word is the same for a host1 and a host2 (which is normally true, unless user installed the WORD application at a specific location), then Word will run automatically on host1 and host2. If the user-selectable program resides on the device 12, it will execute in any case.



FIG. 7 shows the way in which a user selects the user-selected application or MS Word in this example (in FIG. 7, the selected application is highlighted as being ‘WINWORD.EXE’, however, for all intents and purposes, this is the same as MS Word).


In FIG. 7, the user, at 64, may choose to change settings that correspond to the secure area 14 (in FIG. 1) and/or the settings associated with the public area 16 (in FIG. 1) and at 68, the user selects which application to launch. In this case, since the user has selected the MS Word application, at 62, WINWORD.EXE is highlighted. At 70, the user is provided with the option of choosing whether or not to automatically launch the selected application when the device 12 is connected to the host 24.



FIG. 8 shows the system 10 for automatically checking the health of the device 12 when it is plugged into or connected to the host 24. It should be noted that generally, devices, such as the device 12 have a file system identifying the location of system files and other types of file-related information. In FIG. 8, the drive 12 is treated as drive ‘E’ (or ‘E:’ as often used to denote a particular drive) from the perspective of the host 24. Thus, the monitor 28 displays, to the user, checking of the drive E: at 80 and as each sector of the drive E: is checked, it is highlighted as shown at 80. A sector is a group of bytes in a storage device for storing user data and overhead data, the user data being generic data or information and the overhead data being information regarding the user data, such as location, error correction and other types of information. Checking sectors may include only the checking of user data and/or the checking of user data and overhead data.



FIG. 9 shows a flow chart of the steps performed for checking the health of a storage device, such as the device 12. The program that performs these steps generally resides in the host. Using the ‘autorun.inf’ program, the program that performs these steps, ‘JDsecure’ is transferred from the device 12 to the host when the device 12 is initially connected to the host.


Every time the user plugs the device 12 into the host 24, execution of the software program, launched from the ‘autorun.inf’ file, causes checking of the device file system for integrity, which is done with the help of a Microsoft-provided program called ‘chkdsk’.


If the chkdsk program finds errors on the device file system, the user is informed of the error(s) and asked, by the system 10, for acknowledgement to fix the errors.


If the device 12 does not have a file system, i.e. it is a ‘raw’ device, the user is asked as to whether he/she would like to format (create a file system) on the device 12. This is all done by execution of the software program that is launched from the ‘autorun.inf’ file.



FIG. 9 illustrates a flow chart of the steps performed for checking the health of a portable (or removable) storage device, such as the device 12, when the latter is coupled to a host.


In FIG. 9, the process starts at 82 and continues to step 84 of automatically executing a software program residing within the device 12, which is caused to be executed from and due to the ‘autorun.inf’ file, as previously discussed. Next, at step 86, the Microsoft software program, ‘chkdsk’ is executed to check the integrity of device 12. This is actually a check of the storage locations within the device 12. That is, as earlier noted, the device 12 may include flash or nonvolatile memory, which include storage locations, generally grouped in sectors, each sector for storing sector information or sector data including user data and perhaps overhead data, and a group of sectors defining a block. Execution of the ‘chkdsk’ program verifies the integrity of the storage locations of the device 12.


Next, at 88, a determination is made as to whether or not the device 12 is ‘good’ or ‘bad’, i.e. its storage locations are capable of properly storing information or not. ChkDsk program verifies the file system integrity by validating the entries of File Allocation Table (FAT). Specifically “all” the entries of the File Allocation Table.


If the device 12 is determined not be healthy or ‘good’ and is ‘bad’, an error is returned by the ‘chkdsk’ program and the user is informed at step 90 and then asked whether or not the user wishes to attempt to fix errors on the device 12. If the user responds in the positive, or would like to attempt to fix errors, the process continues to step 92 at which time the ‘chkdsk’ program is re-executed with a fix option to try to fix the errors of the device 12.


If at 88 no errors are noted, the ‘chkdsk’ program causes a report to be generated to the user informing the latter that the device 12 is healthy or ‘good’, at step 94, and the process slops at 96.


If, at 90, the user decides not to fix the errors, the process stops at 98.


While not depicted in FIG. 9 and as earlier noted, if the device 12 does not have a file system and is ‘raw’, execution of the software program residing in the ‘autorun.inf’ file causes the user to be asked whether he/she would like to format the device 12. This, in effect, creates a file system assigning sectors and creating a map of the storage locations of the device 12. If so, the device 12 is formatted and then the process of FIG. 9 can effectively take place.


In accordance with another embodiment of the present invention, FIG. 10 shows a storage device 100, in accordance with another embodiment of the present invention, which is a flash storage device in one embodiment of the present invention and in other embodiments may be nonvolatile or other storage types. The device 100 is shown to include three locations, a secure partition 102, a public partition 104 and a master boot record 106. The partitions 102 and 104 are similar to the areas 14 and 16, respectively, of FIG. 1. In fact, the term ‘partition’ is used synonymously with the term ‘area’.


In the embodiment of the FIG. 10, the secure partition 102 is intended to be hidden and not accessed or read by the operating system of the host. This allows any data stored within the secure partition 102 to remain secure without intervention by users or remotely in an Internet environment. The only way to access or read the information in the secure partition 102 is by use of vendor unique commands that are only known to the manufacturer of the device 102, such as Lexar Media, Inc., and perhaps a vendor purchasing the device 100.


The device 100 also includes a port 108 for coupling the device 100 to a host. In one embodiment of the present invention, the port 108 is a USB port although other types of interfaces may be used without departing from the scope and spirit of the present invention.


Another security measure is to have any data written to or programmed within the secure partition 102 to be encrypted prior to being stored therein. In fact, in operation, when a user wishes to store information within the device 102 that is intended to be secure, i.e. stored within the secure partition 102, through the use of a host, as the user types the information, the information is encrypted, in real-time, and then stored in the secure partition 102.


As previously indicated, the device 100 is known to the operating system, such as a Windows Operating System, as a non-removable device and it is for this reason that the device 100 may be partitioned.


Currently, prior art system partition a device but only by way of software. That is, a software program partitions memory or storage locations and then keeps track of the partitions throughout the use of the storage device. The drawback to such prior art systems is that once the storage device is formatted or re-formatted, the partition is lost and the device once again appears as non-partitioned until partitioned again by software. Another drawback is that the information kept within all partitions is lost during formatting, thus, no data or information is actually stored truly securely.


The embodiment of FIG. 10 allows for information stored within the secure partition 102 to be maintained even during and after formatting or re-formatting of the device 100. Indeed, the only way to destroy the information stored within the secure partition 102 is by destroying the device 100.


The device 100 is originally shipped to the user with only a public area which contains the JDSecure20.exe program. The User creates a secure area 102 by using this program and establishes a password for accessing the secure area. A User can re-partition the device 100 by using JDSecure20.exe program. The partitioning of the device is done by JDSecure20.exe program after authenticating the user by way of a password which initially was created by the user.


Information in the secure area can be altered once the user has opened the secure area for use. Such information is encrypted and protected from deletion upon disconnecting the device from the host. It could be unprotected again, for altering data or the size of the secure area only by a known user by way of a password.


The way in which the secure partition 102 is kept hidden to the operating system is by hidden attributes, thus, preventing the operating system from having the capability to assign any drive letters to the partition.


The master boot record 106 maintains a memory map of the assignment or partitioning of the device 100 and maintains information about the number of partitions in the device 100 and the size of the partitions. The master boot record 106 is read-only in order to avoid unauthorized deletion of the secure area. The master boot record 106 is a read-only area, therefore, once the device 100 is partitioned once, the master boot record 106 cannot be written thereto or programmed again, thus, preventing unauthorized deletion of the secure partition 102, and effectively partitioning the device 100 in hardware.



FIG. 11 shows a flow chart 110 listing the steps performed for creating the secure partition 102 of FIG. 10. In FIG. 11, at step 112, a user is authenticated. This will be discussed in further detail below but briefly, the user is authenticated either by a fingerprint verification or password verification. Next, at step 114, corresponding sizes of the amount of storage locations allocated to each of the partitions 102 and 104 of FIG. 10 are obtained from the user.


Next, at step 116, the master boot record 106 is written thereto or programmed. Next, at 118, a determination is made as to whether or not a secure partition is desired to be created. In some cases, a user may wish not to have a secure partition because no data is intended to be confidential and the user perhaps wishes to conveniently write, re-write or copy the storage locations of the device without any limitations. In the latter case, no secure partition is created and the process returns at 124 and the storage locations of the device are all partitioned as public and a master boot record exists but need not be read-only because there is no secure area to protect from deletion. Upon creation of a secure partition, the master boot record is changed to reflect this new partition and also made read-only in order to prevent unauthorized deletion of the secure partition.


However, if at 118, it is determined that a secure partition is intended to be created, the process continues to step 120 at which point such a partition is created with a size reflecting the size indicated at step 114. Next, at step 122, the master boot record, which by now, has been programmed using vendor unique commands to include the partitioning information, is protected to be read-only and even then using vendor unique commands only.


If a secure partition is created, it is marked as hidden by Microsoft operating system features and in particular, the attribute 0x16 in the master boot record 106. In this manner, the operating system is prevented from assigning a drive letter to the storage device in which the secure partition resides. The secure partition also becomes ‘firmware protected’ such that only vendor unique commands can be sent to the secure partition to prevent unauthorized deletion of the partition.



FIG. 12 shows the device 100 with further details of the allocation of the storage locations thereof. A file allocation table (FAT) 110 is shown as a location where locations of various program files are maintained in sector format. For example, to refer to an example provided earlier, the location of the Microsoft program Word is maintained in the FAT 110 so that when this application program is accessed by the user, the FAT 110 is accessed to determine where to access the Word program.


Next, the concept of encryption, in real-time or ‘on-the-fly’ will be discussed, as referred to briefly earlier. The data or information stored in the secure partition of a storage device may be encrypted ‘on-the-fly’ so that only the encrypted data is stored within these cure partition and the data, itself, in its raw form or without encryption is not stored anywhere. An example of this is provided with reference to FIG. 13.


In FIG. 13, an allocation structure is shown to include an application layer 130, which is in contact with a file system or FAT 132, which is, in turn, in contact with an encryption device driver 134, which is in contact with a storage driver 136, which is in contact with a flash storage device 138. The device 138 is similar to the devices discussed in previous figures, such as the devices 12 and 100.


The application layer 130 includes application programs available to a user, examples of which include the Windows Explorer, Word, Outlook, etc. The application layer 130 is apparent to the user during his/her use, thus, it is designated as being within the user mode, whereas, the remaining structures of FIG. 13 are system structures and not necessarily apparent to the user. The programs execute at a higher privilege level and access computer resources which are normally not available to user programs or applications.


Again referring to a previous example, assuming that the application being used is Word and thus included in the application layer 130, the input or information provided by the user, through the use of a keyboard or otherwise, is encrypted as soon as it is recognized as having been input by the system. The encryption is performed by the device driver 134.


The FAT 132 identifies the location of the Word program and the device driver 134 encrypts the information input by the user. A ‘driver’, as used herein, is generally a program that facilitates communication between hardware and software, i.e. it enables a particular software program to communicate to a particular hardware device.


The information encrypted by the driver 134 is communicated to yet another driver, namely the storage driver 136 (sometimes referred to as mass storage driver), which ultimately causes storage of the encrypted information within the device 138 and particularly within the secure partition of the device 138. In this manner, the data or information input by the user is not stored in its raw form (without encryption) anywhere, thus, maintaining the information securely while causing ‘on-the-fly’ or real-time encryption of data.


In one embodiment of the present invention, the device driver employs a 256 bit encryption algorithm as set forth by the American Encryption Standard (AES) and known to those of ordinary skill in the art, however, any other types of encryption algorithms may be employed without departing from the scope and spirit of the present invention.


When information that was input is accessed by the user, it is decrypted by the device driver 134 using the same algorithm as that used to encrypt data and then provided to the user. Data is first retrieved by the storage driver 136 from the device 138, in its encrypted form, then decrypted by the driver 134 and then provided to the user.



FIG. 14 depicts a storage device 140 in accordance with yet another embodiment of the present invention. The device 140 is similar to other storage devices discussed throughout this document with respect to other figures, such as the devices 12, 100 and 138. However the configuration of the device 140 is different in that the device 140 is shown to include a reserve memory area, which is an area including encrypted information and accessible only by the manufacturer of the device 140, such as Lexar Media, Inc. of Fremont, Calif.


The device 140 is shown to also include a disk storage area 144 visible, i.e. read and writable, to the operating system, a master boot record 106 and a port 146, which in one embodiment of the present invention may be a USB port for communicating with a host. Application software uses vendor unique commands to store/retrieve confidential user profile information to and from the reserve memory area 142.


System software encrypts data “on-the-fly” going into the reserved memory area 142 providing additional level of security for confidential user information and decrypts data, which is requested out of the reserved memory area. This is discussed in greater detail hereinabove. The embodiment of FIG. 14 prevents cloning of the device 140 through snooping because the reserve memory area 142 is not ‘seen’ by any software applications or the operating system and is only ‘seen’ by the manufacturer of the device 140.


The manufacturer of the device 140 determines vendor unique commands and uses the same in a firmware program to read and write information to the reserve memory area 142. This keeps the information stored within the reserve memory area 142 confidential and can include such information as user profile, fingerprint templates, password provided by the user to access the secure partition, user's web links and associated ‘user name’ and ‘password’ pairs to access web accounts and/or encrypted security key used to encrypt the reserve memory area 142.


Fingerprint templates are stored fingerprint information used to verify a valid user by comparing the user's fingerprint information to the fingerprint templates searching for a match. The user, at one time, performs a fingerprint swipe and the user's fingerprint information is then stored within the reserve memory area 142.



FIG. 15 shows an example of an application of the device 12 in accordance with an embodiment of the present invention. In FIG. 15, a PC system 203 is shown to include a PC 205 coupled to the device 12 through the port 18. The PC is further shown coupled to a finger swiping device 201 for obtaining the fingerprint of a user and transmitting the same to the PC 205 for storage within the device 12, as earlier discussed. In an alternative embodiment, the device 201 is replaced with the user entering a password. The PC 205 is an example of a host.



FIGS. 16-20 relate to another embodiment of the present invention, namely a double or two-key encryption process. Referring now to FIG. 16, a flow chart is presented to show the steps performed, in accordance with another embodiment of the present invention, for encryption of the master key, a double or two-key encryption process. That is, using a password obtained from a user, a primary key and a master key are used to encrypt data but if a user chooses to change his/her password, the master key is altered but the primary key remains the same. Thus, when a user changes his/her password, the primary key, which is used to generate the master key, remains the same but a new master key is generated using the new password from the user.


A ‘key’ as used herein refers to an electronic number that is generated from a random key generator, which makes the key a unique number not readily repeated when another random number is generated and not readily known due to its random nature. The encryption technique employed is similar to that discussed hereinabove.


Perhaps some figures showing the way in which keys are generated is helpful at this time. Referring back to FIG. 16, at step 170, a password that is obtained from the user is combined (using exclusive OR Boolean functions although other types of combining are anticipated) with a key salt, which is a random number and the number of iterations the password and key salt are combined to yield a primary key, which then becomes input to step 172. At step 172, the primary key is encrypted using known encryption schemes, such as the AES encryption method mentioned hereinabove.


Next, at step 174, the primary key and a master key, which is another random number are encrypted using known encryption techniques and an encrypted master key is generated.



FIG. 17 shows a flow chart of the way in which data, entered by the user, is encrypted, in real-time. At step 200, the master key (same as the master key 176 of FIG. 16) is encrypted at step 202 using known encryption schemes and at step 204, the data entered by the user at 208 is encrypted with the output of step 202 resulting in what is referred to as cipher text at 206 or encrypted data.



FIG. 18 shows the system 10 including the device 12 and the secure partition 14 and the public partition 16 and the master boot record 106, similar to that of previous figures, however, at 210, a storage area 210 is shown, within the secure partition 14, for storing a portion of the primary key, the key salt, the number of iterations and the encrypted master key, which are used in the steps of FIGS. 16, 17 and 19.



FIG. 19 shows a flow chart of the steps performed in decrypting the master key. At step 212, a user password is combined with a key salt and the number iterations and a primary key is generated. Next, at step 214, a key schedule is generated from the primary key and, at step 216, it is used to decrypt the encrypted master key at 218.



FIG. 20 shows a flow chart of the steps performed when a user wishes and does change his/her password from that used in FIG. 16. This is the reason for using a two-key encryption process, i.e. while the user may change his/her password, the master key remains the same. The user password of FIG. 16 will now be referred to as an ‘old’password and the password the user wishes to change to will be referred to as a ‘new’ password.


At step 180, the encrypted master key is read and at step 184, the user's old password is obtained. At step 182, the read encrypted master key is decrypted using the old password that is obtained at 184 and by processing the steps discussed in FIG. 19. At step 186, the master key is combined with the new password, obtained at 188 from the user and encrypted resulting in an encrypted master key. A portion of the primary key and the encrypted master key are stored in the secure partition, thus, they will not be destroyed, modified or deleted by a user or undesirable intruders.



FIG. 21 shows a flow chart of further steps performed during step 182 of FIG. 20. At step 181, the old password and a key salt (random in nature) and the number of iterations are combined to generate the primary key. Next, while not shown in FIG. 21, a portion of the generated primary key is compared to compared to the portion of the stored primary key in the secure area and if they are found equal, the user is successfully authenticated and the process continues to step 183, otherwise, the process does not continue passed step 181.


At step 183, a key schedule is generated using an AES decrypt key module or software program for use in decrypting the encrypted master key. Next, at step 185, the encrypted master key at 187 is decrypted to generate a master key, which is obviously based on the old password.



FIG. 22 shows a flow chart of the steps performed during performance of the step 186 of FIG. 20. At step 189, a new password, obtained from the user, is combined with a random key salt and the number of iterations to generate a primary key, which is then used by step 191 to generate a key schedule and at step 193, the master key (un-encrypted) at 195 is encrypted to generate the encrypted master key.


The encryption device driver 134 of FIG. 13 causes the steps of FIGS. 16, 17, 19, 20, 21 and 22.


Although the present invention has been described in terms of specific embodiments, it is anticipated that alterations and modifications thereof will no doubt become apparent to those more skilled in the art.

Claims
  • 1. A removable device comprising: a secure partition; anda public partition;wherein the secure partition is not accessible by an operating system of a host; andwherein the removable device is caused to be known as a non-removable device to the operating system of the host.
  • 2. The removable device of claim 1, wherein the secure partition is only accessible and/or readable by use of vendor unique commands.
  • 3. The removable device of claim 1, wherein the removable device prevents the operating system of the host from assigning a drive indicator to the removable device.
  • 4. A removable device comprising: a secure partition;a public partition; anda master boot record that is protected using vendor unique commands only once the removable device is partitioned to include the secure partition;wherein the secure partition is configured to store information so that formatting/reformatting does not alter the stored information.
  • 5. The removable device of claim 4, wherein the secure partition is marked as hidden.
  • 6. The removable device of claim 5, wherein the secure partition is marked as hidden by an attribute in a master boot record of the removable device.
  • 7. A removable device comprising: a secure partition;a public partition; anda master boot record that is read-only once the device is partitioned;wherein the secure partition is configured to store information so that formatting/reformatting does not alter the stored information.
  • 8. The method of claim 7, wherein the read-only master boot record acts to prevent unauthorized deletion of the secure partition.
  • 9. The removable device of claim 7, wherein when the master boot record is read-only once the device is partitioned, the master boot record is readable using vendor unique commands only.
  • 10. The removable device of claim 7, wherein the master boot record maintains information about partitioning of the removable device.
  • 11. The removable device of claim 10, wherein the information about the partitioning of the removable device maintained by the master boot record is in a form of a memory map.
  • 12. The removable device of claim 4, further comprising a reserve memory area configured to store encrypted information only accessible using vendor unique commands.
  • 13. A method of creating a partition in a removable device, comprising: authenticating a user;receiving a size to be allocated to the partition;programming a master boot record with information regarding the partition;prompting the user for an input indicative of whether the partition is a secure partition;creating a secure partition having the size allocated thereto if the input indicates that the partition is to be a secure partition; andprotecting the master boot record using only vendor unique commands if the partition is a secure partition.
  • 14. The method of claim 13, further comprising making the master boot record read-only if the partition is a secure partition.
  • 15. The method of claim 14, wherein making the master boot record read-only acts to prevent unauthorized deletion of the secure partition.
  • 16. The method of claim 14, wherein the read-only master boot record is readable using vendor unique commands only.
  • 17. The method of claim 13, further comprising preventing an operating system from having the capability to assign a drive indicator to the partition if the partition is a secure partition.
  • 18. The method of claim 13, wherein the user is authenticated either by fingerprint verification or password verification.
  • 19. The method of claim 13, further comprising changing the master boot record to reflect the partition if the partition is a secure partition before protecting the master boot record.
  • 20. The method of claim 13, further comprising marking the secure partition as hidden.
  • 21. The method of claim 13, wherein the size to be allocated to the partition is received from the user.
RELATED APPLICATIONS

This application is a divisional of U.S. application Ser. No. 12/968,512, filed Dec. 15, 2010, titled “REMOVABLE STORAGE DEVICE,” issued as U.S. Pat. No. 8,151,041 on Apr. 3, 2012, which is a continuation of U.S. application Ser. No. 12/115,170, filed May 5, 2008, titled “REMOVABLE STORAGE DEVICE,” issued as U.S. Pat. No. 7,865,659 on Jan. 4, 2011, which is a continuation of U.S. application Ser. No. 11/118,959, filed Apr. 29, 2005, titled “SECURE PORTABLE STORAGE DEVICE,” issued as U.S. Pat. No. 7,370,166 on May 6, 2008, which application claims priority to U.S. Provisional Application No. 60/567,132, filed on Apr. 30, 2004, titled “DIRECT SECONDARY DEVICE INTERFACE BY A HOST,” all of which applications incorporated herein by reference in their entirety.

US Referenced Citations (270)
Number Name Date Kind
4099069 Cricchi et al. Jul 1978 A
4130900 Watanabe Dec 1978 A
4210959 Wozniak Jul 1980 A
4309627 Tabata Jan 1982 A
4355376 Gould Oct 1982 A
4398248 Hsia et al. Aug 1983 A
4405952 Slakmon Sep 1983 A
4414627 Nakamura Nov 1983 A
4450559 Bond et al. May 1984 A
4456971 Fukuda et al. Jun 1984 A
4468730 Dodd et al. Aug 1984 A
4473878 Zolnowsky et al. Sep 1984 A
4476526 Dodd Oct 1984 A
4498146 Martinez Feb 1985 A
4525839 Nozawa et al. Jun 1985 A
4532590 Wallach et al. Jul 1985 A
4609833 Gutterman Sep 1986 A
4616311 Sato Oct 1986 A
4654847 Dutton Mar 1987 A
4710871 Belknap et al. Dec 1987 A
4746998 Robinson et al. May 1988 A
4748320 Yorimoto et al. May 1988 A
4757474 Fukushi et al. Jul 1988 A
4774700 Satoh et al. Sep 1988 A
4780855 Iida et al. Oct 1988 A
4788665 Fukuda et al. Nov 1988 A
4797543 Watanabe Jan 1989 A
4800520 Iijima Jan 1989 A
4829169 Watanabe May 1989 A
4843224 Ohta et al. Jun 1989 A
4896262 Wayama et al. Jan 1990 A
4914529 Bonke Apr 1990 A
4920518 Nakamura et al. Apr 1990 A
4924331 Robinson et al. May 1990 A
4943745 Watanabe et al. Jul 1990 A
4953122 Williams Aug 1990 A
4970642 Yamamura Nov 1990 A
4970727 Miyawaki et al. Nov 1990 A
5070474 Tuma et al. Dec 1991 A
5093785 Iljima Mar 1992 A
5168465 Harari Dec 1992 A
5198380 Harari Mar 1993 A
5200959 Gross et al. Apr 1993 A
5218695 Noveck et al. Jun 1993 A
5220518 Haq Jun 1993 A
5226168 Kobayashi et al. Jul 1993 A
5227714 Lou Jul 1993 A
5253351 Yamamoto et al. Oct 1993 A
5267218 Elbert Nov 1993 A
5268318 Harari Dec 1993 A
5268870 Harari Dec 1993 A
5270979 Harari et al. Dec 1993 A
5293560 Harari Mar 1994 A
5297148 Harari et al. Mar 1994 A
5303198 Adachi et al. Apr 1994 A
5305276 Uenoyama Apr 1994 A
5305278 Inoue Apr 1994 A
5315541 Harari et al. May 1994 A
5315558 Hag May 1994 A
5329491 Brown et al. Jul 1994 A
5337275 Garner Aug 1994 A
5341330 Wells et al. Aug 1994 A
5341339 Wells Aug 1994 A
5341341 Fukuzo Aug 1994 A
5353256 Fandrich et al. Oct 1994 A
5357475 Hasbun et al. Oct 1994 A
5359569 Fujita et al. Oct 1994 A
5365127 Manley Nov 1994 A
5369615 Harari et al. Nov 1994 A
5371702 Nakai et al. Dec 1994 A
5381539 Yanai et al. Jan 1995 A
5382839 Shinohara Jan 1995 A
5384743 Rouy Jan 1995 A
5388083 Assar et al. Feb 1995 A
5396468 Harari et al. Mar 1995 A
5404485 Ban Apr 1995 A
5406527 Honma Apr 1995 A
5418752 Harari et al. May 1995 A
5422842 Cernea et al. Jun 1995 A
5422856 Sasaki et al. Jun 1995 A
5428621 Mehrotra et al. Jun 1995 A
5430682 Ishikawa et al. Jul 1995 A
5430859 Norman et al. Jul 1995 A
5431330 Wieres Jul 1995 A
5434825 Harari Jul 1995 A
5438573 Mangan et al. Aug 1995 A
5465235 Miyamoto Nov 1995 A
5465338 Clay Nov 1995 A
5471478 Mangan et al. Nov 1995 A
5473765 Gibbons et al. Dec 1995 A
5479638 Assar et al. Dec 1995 A
5485595 Assar et al. Jan 1996 A
5490117 Oda et al. Feb 1996 A
5495442 Cernea et al. Feb 1996 A
5504760 Harari et al. Apr 1996 A
5508971 Cernea et al. Apr 1996 A
5513138 Manabe et al. Apr 1996 A
5515333 Fujita et al. May 1996 A
5519847 Fandrich et al. May 1996 A
5523980 Sakui et al. Jun 1996 A
5524230 Sakaue et al. Jun 1996 A
5530673 Tobita et al. Jun 1996 A
5530828 Kaki et al. Jun 1996 A
5530938 Akasaka et al. Jun 1996 A
5532962 Auclair et al. Jul 1996 A
5532964 Cernea et al. Jul 1996 A
5534456 Yuan et al. Jul 1996 A
5535328 Harari et al. Jul 1996 A
5541551 Brehner et al. Jul 1996 A
5544118 Harari Aug 1996 A
5544356 Robinson et al. Aug 1996 A
5552698 Tai et al. Sep 1996 A
5554553 Harari Sep 1996 A
5563825 Cernea et al. Oct 1996 A
5566314 DeMarco et al. Oct 1996 A
5568439 Harari Oct 1996 A
5572466 Sukegawa Nov 1996 A
5579502 Konishi et al. Nov 1996 A
5581723 Hasbun et al. Dec 1996 A
5583812 Harari Dec 1996 A
5592415 Kato et al. Jan 1997 A
5592420 Cernea et al. Jan 1997 A
5596526 Assar et al. Jan 1997 A
5598370 Niijima et al. Jan 1997 A
5602987 Harari et al. Feb 1997 A
5603001 Sukegawa et al. Feb 1997 A
5606660 Estakhri et al. Feb 1997 A
5611067 Okamoto et al. Mar 1997 A
5640528 Harney et al. Jun 1997 A
5642312 Harari Jun 1997 A
5648929 Miyamoto Jul 1997 A
5663901 Wallace et al. Sep 1997 A
5693570 Cernea et al. Dec 1997 A
5694600 Khenson et al. Dec 1997 A
5712819 Harari Jan 1998 A
5719808 Harari et al. Feb 1998 A
5723990 Roohparvar Mar 1998 A
5734567 Griffiths et al. Mar 1998 A
5745418 Ma et al. Apr 1998 A
5754567 Norman May 1998 A
5757712 Nagel et al. May 1998 A
5758100 Odisho May 1998 A
5761117 Uchino et al. Jun 1998 A
5768190 Tanaka et al. Jun 1998 A
5768195 Nakamura et al. Jun 1998 A
5773901 Kantner Jun 1998 A
5778418 Auclair et al. Jul 1998 A
5781478 Takeuchi et al. Jul 1998 A
5787445 Daberko Jul 1998 A
5787484 Norman Jul 1998 A
RE35881 Barrett et al. Aug 1998 E
5799168 Ban Aug 1998 A
5802551 Komatsu et al. Sep 1998 A
5809515 Kaki et al. Sep 1998 A
5809558 Matthews et al. Sep 1998 A
5809560 Schneider Sep 1998 A
5818350 Estakhri et al. Oct 1998 A
5818781 Estakhri et al. Oct 1998 A
5822245 Gupta et al. Oct 1998 A
5822252 Lee et al. Oct 1998 A
5822781 Wells et al. Oct 1998 A
5831929 Manning Nov 1998 A
5835935 Estakhri et al. Nov 1998 A
5838614 Estakhri et al. Nov 1998 A
5845313 Estakhri et al. Dec 1998 A
5847552 Brown Dec 1998 A
5860083 Sukegawa Jan 1999 A
5860124 Matthews et al. Jan 1999 A
5862099 Gannage et al. Jan 1999 A
5890192 Lee et al. Mar 1999 A
5901086 Wang et al. May 1999 A
5907856 Estakhri et al. May 1999 A
5909586 Anderson Jun 1999 A
5920884 Jennings, III et al. Jul 1999 A
5924113 Estakhri et al. Jul 1999 A
5928370 Asnaashari Jul 1999 A
5930815 Estakhri et al. Jul 1999 A
5933368 Ma et al. Aug 1999 A
5933846 Endo Aug 1999 A
5936971 Harari et al. Aug 1999 A
5937425 Ban Aug 1999 A
5953737 Estakhri et al. Sep 1999 A
5956473 Ma et al. Sep 1999 A
5959926 Jones et al. Sep 1999 A
5966727 Nishino Oct 1999 A
5986933 Takeuchi et al. Nov 1999 A
5987563 Itoh et al. Nov 1999 A
5987573 Hiraka Nov 1999 A
5991849 Yamada et al. Nov 1999 A
6011322 Stumfall et al. Jan 2000 A
6011323 Camp Jan 2000 A
6016402 Thomas et al. Jan 2000 A
6018265 Keshtbod Jan 2000 A
6021408 Ledain et al. Feb 2000 A
6026020 Matsubara et al. Feb 2000 A
6026027 Terrell, II et al. Feb 2000 A
6034897 Estakhri et al. Mar 2000 A
6035357 Sakaki Mar 2000 A
6040997 Estakhri Mar 2000 A
6047352 Lakhani et al. Apr 2000 A
6055184 Acharya et al. Apr 2000 A
6055188 Takeuchi et al. Apr 2000 A
6069827 Sinclair May 2000 A
6072796 Christensen et al. Jun 2000 A
6076137 Asnaashari Jun 2000 A
6081447 Lofgren et al. Jun 2000 A
6081878 Estakhri et al. Jun 2000 A
6084483 Keshtbod Jul 2000 A
6097666 Sakui et al. Aug 2000 A
6115785 Estakhri et al. Sep 2000 A
6122195 Estakhri et al. Sep 2000 A
6125424 Komatsu et al. Sep 2000 A
6125435 Estakhri et al. Sep 2000 A
6128695 Estakhri et al. Oct 2000 A
6134145 Wong Oct 2000 A
6134151 Estakhri et al. Oct 2000 A
6141249 Estakhri et al. Oct 2000 A
6145051 Estakhri et al. Nov 2000 A
6151247 Estakhri et al. Nov 2000 A
6172906 Estakhri et al. Jan 2001 B1
6173362 Yoda Jan 2001 B1
6181118 Meehan et al. Jan 2001 B1
6182162 Estakhri et al. Jan 2001 B1
6202138 Estakhri et al. Mar 2001 B1
6223308 Estakhri et al. Apr 2001 B1
6226708 McGoldrick et al. May 2001 B1
6230234 Estakhri et al. May 2001 B1
6262918 Estakhri et al. Jul 2001 B1
6272610 Katayama et al. Aug 2001 B1
6275436 Tobita et al. Aug 2001 B1
6279069 Robinson et al. Aug 2001 B1
6279114 Toombs et al. Aug 2001 B1
6285607 Sinclair Sep 2001 B1
6327639 Asnaashari Dec 2001 B1
6345367 Sinclair Feb 2002 B1
6374337 Estakhri Apr 2002 B1
6393513 Estakhri et al. May 2002 B2
6397314 Estakhri et al. May 2002 B1
6411546 Estakhri et al. Jun 2002 B1
6467021 Sinclair Oct 2002 B1
6490649 Sinclair Dec 2002 B2
6529992 Thomas et al. Mar 2003 B1
6567307 Estakhri May 2003 B1
6578127 Sinclair Jun 2003 B1
6587382 Estakhri et al. Jul 2003 B1
6691213 Luu et al. Feb 2004 B1
6711059 Sinclair et al. Mar 2004 B2
6725321 Sinclair et al. Apr 2004 B1
6728851 Estakhri et al. Apr 2004 B1
6751155 Gorobets Jun 2004 B2
6757800 Estakhri et al. Jun 2004 B1
6813678 Sinclair et al. Nov 2004 B1
6898662 Gorobets May 2005 B2
6912618 Estakhri et al. Jun 2005 B2
6950918 Estakhri Sep 2005 B1
6957295 Estakhri Oct 2005 B1
6973519 Estakhri et al. Dec 2005 B1
6978342 Estakhri et al. Dec 2005 B1
7000064 Payne et al. Feb 2006 B2
20030033471 Lin et al. Feb 2003 A1
20030182546 Suzuki et al. Sep 2003 A1
20040010671 Sampsa et al. Jan 2004 A1
20040068631 Ukeda et al. Apr 2004 A1
20040103288 Ziv et al. May 2004 A1
20040193564 Ban et al. Sep 2004 A1
20040228487 Maeda et al. Nov 2004 A1
20050015540 Tsai et al. Jan 2005 A1
20050021919 Kroening Jan 2005 A1
20050027976 Stephan et al. Feb 2005 A1
20060236409 Kuehnel et al. Oct 2006 A1
Foreign Referenced Citations (75)
Number Date Country
0 557 723 Aug 1987 AU
0 220 718 May 1987 EP
0 243 503 Nov 1987 EP
0 392 895 Oct 1990 EP
0 424 191 Apr 1991 EP
0 489 204 Jun 1992 EP
0 522 780 Jan 1993 EP
0 522 780 Jan 1993 EP
0 544 252 Jun 1993 EP
0 613 151 Aug 1994 EP
0 617 363 Sep 1994 EP
0 619 541 Oct 1994 EP
0 663 636 Jul 1995 EP
0 897 579 Jul 2000 EP
0 891 580 Nov 2000 EP
0 896 669 Nov 2000 EP
0 852 766 May 2001 EP
0 852 765 Sep 2001 EP
0 722 585 May 2002 EP
0 910 826 Jun 2002 EP
0 691 008 Nov 2002 EP
0 861 468 Apr 2003 EP
0 978 040 May 2004 EP
1 157 328 May 2005 EP
2 251 323 Jul 1992 GB
2 291 990 Feb 1996 GB
2 291 991 Feb 1996 GB
2 297 637 Jul 1996 GB
2 304 428 Mar 1997 GB
2 348 991 Dec 2002 GB
2 351 822 Jan 2003 GB
2 384 337 Jul 2003 GB
2 384 883 Oct 2005 GB
2 384 338 Nov 2005 GB
2 384 072 Dec 2005 GB
2 411 499 Feb 2006 GB
117881 May 2003 IS
59-45695 Sep 1982 JP
58-215794 Dec 1983 JP
58-215795 Dec 1983 JP
59-162695 Sep 1984 JP
60-212900 Oct 1985 JP
61-96598 May 1986 JP
62-283496 Dec 1987 JP
62-283497 Dec 1987 JP
63-183700 Jul 1988 JP
1-138694 May 1989 JP
3-228377 Oct 1991 JP
4-57295 Feb 1992 JP
4-254994 Sep 1992 JP
4-268284 Sep 1992 JP
4-278297 Oct 1992 JP
4-332999 Nov 1992 JP
5-128877 May 1993 JP
5-282883 Oct 1993 JP
6-36578 Feb 1994 JP
6-124175 May 1994 JP
6-124231 May 1994 JP
6-132747 May 1994 JP
6-149395 May 1994 JP
6-131889 Jun 1994 JP
6-266596 Sep 1994 JP
7-93499 Apr 1995 JP
7-311708 Nov 1995 JP
8-18018 Jan 1996 JP
8-69696 Mar 1996 JP
9-147581 Jun 1997 JP
1388877 Apr 1988 SU
1408439 Jul 1988 SU
1515164 Oct 1989 SU
1541619 Feb 1990 SU
1573458 Jun 1990 SU
1686449 Oct 1991 SU
WO 8400628 Feb 1984 WO
WO 9420906 Sep 1994 WO
Non-Patent Literature Citations (35)
Entry
Kai Hwang & Faye A. Briggs, Computer Architecture and Parallel Processing, McGraw-Hill Book Co., 1984, p. 64.
Walter Lahti and Dean McCarron, “State of the Art: Magnetic VS Optical Store Data in a Flash”, Byte Magazine, Nov. 1, 1990. 311, vol. 15, No. 12.
Ron Wilson, Technology Updates, Integrated Circuits, “I-Mbit flash memories seek their role in system design”, Computer Design 28 Mar. 1, 1989, No. 5, Tulsa OK, US, pp. 30 and 32.
S. Mehoura et al., SunDisk Corporation, Santa Clara, CA. R.W. Gregor et al., AT&T Bell Laboratories, Allentown, PA. 1992 Symposium of VLSJ Circuits Digest of Technical Papers, “EEPROM for Solid State Disk Applications”, pp. 24 and 25.
Mendel Rosenblum and John K. Ousterhout, “The Design and Implementation of a Log-Structured File System,” 1991, 15 pgs., Berkeley, USA.
Brian Dipert and Markus Levy, Designing with Flash Memory, Annabooks, Apr. 1994, 445 pgs.
Science Forum, Inc. “Flash Memory Symposium '95”, 1995, 13 pgs. Tokyo.
Ross S. Finlayson and David R. Cheriton, “An Extended File Service Exploiting Write-Once Storage,” ACM Symposium on Operating Systems Principles, 1987, 10 pgs.
Jason Gait, “The Optical File Cabinet: A Random-Access File System for Write-Once Storage”, Computer, Jun. 1988, 12 pgs.
Henry G. Baker, Memory Management, 1995, Springer-Verlag Heidelberg, Germany, 19 pgs.
Sape J. Mullender and Andrew S. Tanenbaum, “A Distributed File Service Based on Optimistic Concurrency Control”, ACM Press, 1985, 12 pgs. New York, New York.
Hiroshi Nakamura, Junichi Miyamoto, Kenichi Imamiya and Yoshihisa Iwata, “A Novel Sense Amplifier for Flexible Voltage Operation NAND Flash Memories”, VLSI Circuits, 1995, Digest of Technical Papers, 2 pgs.
Hiroshi Nakamura, Junichi Miyamoto, Kenichi Imamiya, Yoshihisa Iwata and Hideko Oodaira, “A Novel Sensing Scheme with On-Chip Page Copy for Flexible Voltage NAND Flash Memories”, IEICE Transactions on Electronics, vol. E79-C, No. 6, pp. 836-844.
Takaaki Nozaki, Toshiaki Tanaka, Yoshiro Kijiya, Eita Kinoshita, Tatsuo Tsuchiya and Yutaka Hayashi, “A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application”, Journal of Solid-State Circuits, vol. 26, No. 4, 5 pgs.
Kai Hwang and Faye A. Briggs, Computer Architecture and Parallel Processing, 1984, McGraw-Hill, Inc.
Ron Wilson, “Integrated Circuits; 1-Mb flash memories seek their role in system design”, Mar. 1, 1989, 2 pgs. Tulsa, OK.
S. Mehroura, J.H. Yuan, R.A. Cemea, W.Y. Chien, D.C. Guteman, G. Samachisa, R.D. Norman, M. Mofidi, W. Lee, Y. Fong, A. Mihnea, E. Harm, R.W. Gregor, E.P. Eberhardt, J.R. Radosevich, K.R. Stiles, R.A. Kohler, C.W. Leung, and T.J. Mulrooney, “Serial 9Mb F EEPROM for Solid State Disk Applications”, symposium, 2 pgs., 1992, Mountain View, CA.
Steven H. Leibson, “Nonvolatile, In-Circuit-Reprogrammable Memories”, EDN Special Report, Jan. 3, 1991, No. 12, 12 pgs.
Walter Lahti and Dean McCarron, “State of the Art: Magnetic vs. Optical Store Data in a Flash”, Byte Magazine, 1990, vol. 15, No. 12, 7 pgs.
Ramon Caceres, Fred Douglis, Kai Li and Brian Marsh, “Operating System Implications of Solid-State Mobile Computers”, Workshop on Workstation Operating Systems, Oct. 1993, pp. 21-27.
Michael Wu and Wily Zwaenepoel, “A Non-Volatile, Main Memory Storage System”, ACM Press, 1994, 12 pgs., San Jose, CA.
Dave Bursky, “Innovative flash memories match DRAM densities: available with a choice of features, flash memories are finding homes in many systems (including related articles on the origins of flash, and on the differences between NAND and NOR flash memories)”, Electronic Design, May 16, 1994, vol. 42, No. 10, 9 pgs.
Anthony Cataldo, “New flash enhancements up ante. (Intel's 28F400BV-120 and 28F004BV120, Atmel's AT29BV010 and AT29BV020, and Samsung Semiconductor's KM29V3200 flash memory devices)” (product announcement), Electronic News, Mar. 13, 1995, vol. 41, No. 2056, 4 pgs.
Sam Weber, “Flash modules' portability, reusability, small size valued for a host of APPs-Consumer formats flocking to flash”, Electronic Engineering Times, Jul. 22, 1996, No. 911, 9 pgs.
Stan Baker, “But Integration Calls for Hardware, Software Changes: Flash designers face the dawn of a new memory age”, Electronic Engineering Times, Dec. 3, 1990, vol. 41, No. 619, 5 pgs.
Toshiba, MOS Memory (Non-Volatile), 1995, Data Book.
Toshiba, Toshiba MOS Digital Integrated Circuit Silicon Gate CMOS, (TC58NS512DC), Mar. 21, 2001, 43 pgs., Data Book.
Toshiba, Toshiba Corporation, SMIL (Smartmedia Interface Library) Hardware Edition Version 1.00, Jul. 1, 2000, 136 pgs., Data Book.
Toshiba, Toshiba MOS Digital Integrated Circuit Silicon Gate, (TC58512FT), Mar. 5, 2001, 43 pgs., Data Book.
Toshiba, Toshiba MOS Digital Integrated Circuit Silicon Gate, (TC58DVM92A1FT00), Jan. 10, 2003, 44 pgs., Data Book.
Toshiba, Toshiba MOS Digital Integrated Circuit Silicon Gate, (TC58DVG02A1FT00), Jan. 10, 2003, 44 pgs., Data Book.
Toshiba, Toshiba MOS Digital Integrated Circuit Silicon Gate, (TC58100FT), Mar. 5, 2001, 43 pgs., Data Book.
Toshiba, MOS Memory (Non-Volatile), 1996, 279 pgs., Data Book.
“Fifth Biennial Nonvolatile Memory Technology Review,” 1993 Conference, Jun. 22-24, 1993, Linthicum Heights, MD, USA.
Dan Auclair, “Optimal Solid State Disk Architecture for Portable Computers”, Silicon Valley PC Design Conference, Jul. 9-10, 1991, pp. 811-815.
Related Publications (1)
Number Date Country
20120174188 A1 Jul 2012 US
Provisional Applications (1)
Number Date Country
60567132 Apr 2004 US
Divisions (1)
Number Date Country
Parent 12968512 Dec 2010 US
Child 13419964 US
Continuations (2)
Number Date Country
Parent 12115170 May 2008 US
Child 12968512 US
Parent 11118959 Apr 2005 US
Child 12115170 US