The present invention generally relates to methods and systems of partitioning and storing files.
Ordinarily, files are stored in their entirety, regardless of actual location. When a file is divided into parts for efficient storage or transmitted serially, the parts are nevertheless linked to each other. Consequently, all the informational contents of the file become bound to a physical location.
A chief purpose of operating systems is to manage file storage and retrieval. An added layer of abstraction is used to create a logical file system above the corresponding physical storage. A file can be made to appear to an application as a singular instance of storage, when in actuality it may have been divided into parts, each stored in separate physical locations. Logical file systems can even be created from entirely disparate storage resources, perhaps using different technologies. This added layer of abstraction is commonly referred to by using terminology invoking virtuality. However, the scope of virtuality in this regard is limited, since location independence is achieved by simply mapping the logical file system to corresponding physical locations. All the parts of a given file are immediately identifiable and directly accessible. As a result, informational contents of the file remain bound to a certain physical location.
Users seeking increased mobility have generated new demands for file accessibility without the physical location constraints described above. Whether a file represents an image, music, or an important document, the distinction between local and remote storage is diminishing. High-speed access adds further to an illusion that remotely stored files are available locally, yet the importance placed on access controls is a reminder that desired files are physically stored on a distant server. This commonly escapes mobile workers and the concept of a network perimeter has become blurred. Privacy and security concerns are now crucial, but existing technology must be applied in ever more complicated schemes to balance access and protection.
Portable media technology has steadily improved for many years. In this context, the meaning of portable with regard to file storage media is not necessarily a reference to a particular type of memory, but to any file storage media that enhances mobility—the ability to access files from any location. In the past, one highly recognized form of “portable” media is that of the floppy disk. More recently, the use of floppy disks has been overtaken by USB (Universal Serial Bus) Flash technology. Flash memory devices have also been embedded in products of all types, frequently to enhance communication means. Portable media drives that employ such flash technology make available a wide range of storage capacities, each in a compact physical form that users find immensely convenient to transfer files to and from other locations. However, a given portable media drive possesses a limited and inflexible capacity. Reaching the full capacity of the portable media drive hence compels the user to delete other files, or to acquire additional drive space.
Portable media drive storage also suffers from drawbacks generally associated with storing files in their entirety at a physically identifiable location, such as privacy and security issues, in addition to other limitations. The loss or theft of the portable media drive presents the user with a painful consequence of its compact form. And, while the portable media drive itself is generally quite reliable, files can be lost or compromised due to the failure of the portable media drive. In some cases, the files stored on the portable media drive can be replaced, but the loss or theft of the drive poses a serious threat to personal privacy and to corporate security. Furthermore, the user may not become immediately aware that files stored on the portable media drive had been lost or compromised.
As known to one of skill in the art, file compression can be used to overcome some of these issues. For example, it is possible to reduce the size of a file by identifying occurrences of statistical redundancy within the file, then replacing each with a token shorter than the data that it represents. Encipherment can be used to render a file unintelligible to all but the intended recipient. When storing files, users are themselves the intended recipients. Ciphers scramble file contents according to rules obeyed by the algorithm, using a separate variable to steer the process in a unique way for each different variable. Like compression programs, ciphers are seldom kept secret. Instead, the variables used are treated carefully to avoid compromise, necessitating separate storage. However, the statistical coding information used in file compression must be embedded in the file itself to facilitate decompression later. Notwithstanding these differences, both compression programs and ciphers are deterministic processes, and both produce files containing all of their original informational contents.
Embodiments of the invention overcome one or more disadvantages of conventional portable storage by providing a method of storing files that comprises determining a number of portions in which a file will be stored, including a terminal portion. A portion size is calculated for each portion. Each portion is modified with the results of logical operations against at least one other portion. Each modified portion, other than the terminal portion, is assigned a unique name based on the content of at least one other modified portion. The terminal portion is stored on a local storage device of the user, and all the other modified portions are stored to a remote storage.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Other objects and features will be in part apparent and in part pointed out hereinafter.
Corresponding reference characters indicate corresponding parts throughout the drawings.
Co-invented and co-owned U.S. Non-Provisional patent application Ser. No. 11/675,367 filed on Feb. 15, 2007 and titled “VIRTUAL STORAGE OF PORTABLE MEDIA FILES”, is incorporated by reference herein.
Referring now to the drawings, an embodiment of the invention includes a virtual file system and the virtual compression of a file. In
The computer 104 connects to an application server 106 through a network 108 connection. In one embodiment, the network is a global communication network such as the Internet. The computer 104 may operate in a networked environment using logical connections to one or more remote computers, such as an application server 106. The logical connections depicted in
In
In an embodiment, the portable media drive 102 is a commercial off-the-shelf type USB Flash drive that has been prepared for use with the system. The portable media drive 102 may be distinguished from other portable media drives by creating a partition on the portable media drive 102 that is not visible to ordinary operating systems. Data required for the virtual compression is then written to the sectors within that partition. Alternatively, alterations are made to the hardware interface of the portable media drive 102 to configure the portable media drive for use with the system. As a third alternative, special purpose portable media drives 102 are manufactured such that the system will recognize them.
The virtual compression program 110 can be built from various technologies, and is initially deployed from the application server 106 to the computer 104. For example, an executable version of the virtual compression program 110 can be first downloaded to the portable media drive 102, and then executed by the processor of computer 104 (or the processor of server 106) to perform the process in conjunction with additional browser-based elements. Alternatively, needed files can be stored on the portable media drive 102. In an embodiment, the virtual compression program 110 is implemented using smart client technology. Smart client technology generally refers to applications which are delivered over the web, do not require installation on a client computer, automatically update without user action and have the look and feel of desktop applications.
Designed in this way, an instance of the virtual compression program 110 will be deployed by the application server 106 and executed by its processor, but launched and executed within the controlled environment of the computer 104. Advantageously, this allows the virtual compression program 110 to gain access to the local drives of the computer 104, unlike a strictly browser-based application. Additionally, since the virtual compression program 110 executes locally on the computer 104, the file being compressed is protected from direct exposure to the Internet. Consequently, malicious interception of virtual compression program 110 outputs will not result in the compromise of file content. As a third advantage, because the virtual compression program 110 executes locally, demands on the application server 106 resources are limited.
Another example of a suitable computing environment for compressing and storing files is illustrated in
A brief overview of using the system of
Although described in connection with the exemplary computing system environments of
Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules (e.g. virtual compression program 110), executed by one or more computers or other devices. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
At 208, the file is transformed to introduce non-deterministic variation. In an embodiment, transforming includes at least one of the following: compressing the file and reorganizing the file. For example, real data compression consists of first applying a block-sorting algorithm such as the Burrows-Wheeler Transform, followed by entropy encoding, such as Huffman Coding. The blocksorting algorithm does not perform compression by itself, but enhances the entropy encoding that follows. The exact operations used to perform real data compression will depend on the type and size of file selected.
Reorganization includes bit-wise reorganization not aligned with the byte boundaries in the source file, nibble-wise reorganization and byte-wise reorganization. For example, nibble-wise reorganization separates the upper nibbles from the lower nibbles of the hexadecimal equivalent of each byte and groups are moved to different regions of the file producing a transformation. In another example, byte-wise reorganization consists of shuffling bytes of nibble-wise reorganization, resulting in newly adjacent relationships not resembling those of the original data. In a third example, bit-wise reorganization separates the file into n-bit groups and the groups are moved to different regions of the file producing a transformation. In an alternative, the n-bit group is not aligned with the bytes boundaries of the file (i.e., 3-bit or 10-bit groups). The exact operations used to perform reorganization will depend on the type and size of file selected. After the file has been transformed and reorganized, the data of the file is noncontiguous (i.e., the data is no longer in the sequence of the original file).
At 210, a check is made that the computer 600 can access the process server 604. If the computer 600 cannot access the process server 604, the program terminates at 216.
If the computer 600 can access the process server 604, at 218, it is determined if the size of the file is greater than the maximum portion size that was determined at step 206. If the file size is greater than the maximum portion size, at 220 the file is partitioned into one or more remote portions and a local portion including the remaining data of the file. In an embodiment, the data of the remote and local portions are not overlapping, such that the remote portion and the local portion include one copy of the original file data. Additionally, because the original source file is transformed at 208, each portion (local and remote) contains noncontiguous, scattered data from the original source file.
Following the partitioning of file 700 into portions 704, 706 and 708, individual modification of each portion commences with the identification of the local portion 708. Logical operations, such as Exclusive OR for example, are sequentially performed on all Boolean constituents of each portion according to an exemplary sequence illustrated in formula block 710. Logical operations 710A operate on one end of the file and begin with remote portion 704. The original file data is designated as ‘i’, while the modified portion data is designated as ‘ii’. In the illustrated example, each portion is modified bitwise along its length, starting at one end and with resulting bit P0[c]ii. The bit P0[c]i is replaced with an XOR operation performed between its current value as inherited from the original file 700 and the end bit P1[b]i of portion 706 (P1) to yield P0[c]ii. Similarly, end bit P1[b]i of portion 706 is updated with the result of an XOR operation between its inherited value and the end bit L[a]i of local portion to yield P1[b]ii. Then, end bit L[a]i of the local portion 708 is updated with the result of an XOR operation between its inherited value and the already modified end bit P0[c]ii of remote portion 704 to yield L[a]i. Hence, logical operations performed on the constituents of local portion 708 can readily be seen to include operands which are the results of previous operations on remote portion 704. Bit-wise logical operations on subsequent bits of each portion then continue from that point, thereby replacing the content of each portion with the results of the logical operations.
All logical operations must account for the dissimilar sizes of portions. For example, remote portion 704 is the largest portion, but it can still be wholly modified by the yet larger combination of portions 706 and 708 due to the constraints 702 described earlier. Logical operations 710B hence reflect an example of the appropriate indexing in such cases. As seen, end bit P0[0]ii is generated with the result of an XOR operation between its inherited value (designated by P0[0]i) and the bit L[c−b]i of local portion 708. Modifications can be made to the end bits of portions 706, 708 as well by appropriate indexing keeping portion sizes in mind.
In an embodiment, the constraints 702 permit a range of sizes for each portion. While all portions sizes must obey the constraints 702, a measure of variance is allowed within the range while determining portion size. The benefit of this approach is to enhance and introduce further non-deterministic variation. Such variation ensures that unique portions are produced even for identical files, and also yields unique portions for every instance of processing the same file.
After completing logical operations, each portion is given a unique name based on the content of the remaining portions. For example, remote portion 704 is given a name based on the value of the constituents of portions 706 and 708, and is then considered ready for storage. Remote portion 706 is given a name based on the value of the constituents of local portion 708.
In am embodiment, the method illustrated in
In the illustrated embodiment, file 800 is separated into a first remote portion 804 of length ‘a’ per the formula block 802, leaving a reminder portion 806 of length N−a. As indicated in figure block 808, XOR is the exemplary logical operation then performed bitwise between the constituents of the first remote portion 804 and the remainder portion 806. For example, end bit P0[a] is replaced by XORing it against end bit L[N−a] of the remainder portion 806, and end bit P0 [0 ] is replaced by XORing it against bit L[N−2a] of the remainder portion. Following the logical operation(s), a unique name is attached, appended, created within, or otherwise integrated into the first remote portion 804 that is based on the value of the constituents of the remainder portion 806. First remote portion 804 is then deemed ready for remote storage.
Additional remote portions 810, each of size ‘a’, are similarly and sequentially generated, leaving behind successively smaller remainder portions 812. In the illustrated embodiment, ‘k’ remote portions are generated overall, leaving behind a remainder portion of size N−ka as shown in formula block 814. In an embodiment, when the remainder portion 812 approaches a prespecified terminal size ‘t’, it is deemed a terminal portion 816. Processing of the terminal portion 816 is then completed as illustrated in
This approach of treating the terminal portion 816 as a small file assures that all the Boolean constituents of the terminal portion 816 are replaced. In general, the method of
In an embodiment, the incremental file data removal is arbitrary and non-deterministic, and hence unique to each process instance. In one method of achieving incremental file data removal, the data of file 900 is specified as a plurality of stations, each corresponding to a targeted yet variable station size. The target station size may be related, but not necessarily equal, to the maximum portion size. The beginning location of the first station within the file 900 is randomly or otherwise specified, and other stations are specified thereafter, each with a variable length. The circular illustration of file 900 is indicative of the possibility that one of the stations may ‘wrap’ around the end of the file. In other words, a station may include data from both the end and the beginning of file 900. Thus, stations do not overlap, but join. In other words, stations pertain to the order in which a file is read. For example, suppose a file is 4000 bytes long and read in as follows. Station 1 randomly begins at byte 2100 and is randomly 1100 bytes long. Station 2 would begin at byte 3200. It is randomly 900 bytes long and would have to end at byte 100 since it “wraps” around the end of the file. Then Station 3 would begin there and is randomly 1200 bytes long. Station 4 must begin at byte 1300 and must be 800 bytes long. After the stations are decided, the file is read in using a random sequence such as Station 2, Station 4, Station 3, Station 1. Portions are produced later, in a block of memory that was read in from the file, as described above.
Finally, stations are copied one at a time in random order to build up the file segment 910 as necessary. Although file 900 is specified as a transformed file, it is also possible that when file 900 is read into file segment 910 in this manner, compression and other transformations are carried out on each station instead and not the entire file 900 beforehand. This station information is then added to the file metadata to facilitate accurate reconstruction.
As a result of this approach, remote portions can be made ready before all the data of the file 900 has been removed. This approach is beneficial for compressing and storing relatively large files that may consume excessive resources if loaded into memory in their entirety, and improves security by non-deterministic (rather than linear) copying of file content.
As illustrated in
The remainder portion 914 may then be used to generate additional portions, or grown using data removed from the file 900 as described earlier. Ultimately, the entire contents of file 900 have been consumed, and partitioning has resulted in 1) k remote portions (collectively designated by the item 916) each of size ‘a’, and 2) a remainder portion 918 of size N−ka that is deemed a terminal portion 920 when it approaches a terminal length ‘t’. As stated earlier, each remote portion is subjected to logical operations upon generation and given a unique name based on the value of the constituents of the remainder portion at the time the determination is made.
In an embodiment, processing of the terminal portion 920 is then completed as in
Returning to
Notably, for each embodiment of file storage, the same steps may later be reversed and the partitioned file accurately reconstructed. Referring to the method of
In an embodiment, the unique names are masked upon generation so they may be securely copied elsewhere. This approach accounts for the possibility that the local portion is inadvertently modified or deliberately tampered with, such that evaluating its constituents does not yield the correct unique name of the next portion. In such an event, the copy of the unique name may be relied on. Any suitable mask may be used. The mask is stored as part of the file or portion metadata for accurate unique name retrieval.
A request for remote portion 706 is made by providing the determined unique name of remote portion 706 to the process server 604 without any knowledge of its actual storage location. The process server 604 performs an internal lookup to determine the storage location of the remote portion 706 (storage server 608, for example) and proceeds to retrieve it. The retrieved remote portion 706 is then returned to the client computer 600. The local portion 708 and remote portion 706 are recombined, and as before, the value of the constituents of the combination yields the unique name of the first portion produced (i.e. remote portion 704) and, in the illustrated example of
The unique name as determined from the combination of portions 706, 708 is sent to the process server 604, which responds by looking up the corresponding location (storage server 610, for example) and subsequently retrieving remote portion 704, and returning it to the client computer 600. Once portion 704 has been retrieved and recombined with portions 706 and 708, the logical operations illustrated in formula block 710 may then be reversed on all Boolean constituents of each portion to retrieve the original content of the transformed file 700. Finally, decompression and the reverse of other file transformations are performed as needed.
Advantageously because the file 700 has been non-deterministically modified multiple times (i.e., when transformed before partitioning, when portions are generated, and for the specific case of large files being incrementally read into memory), the file cannot be readily accessed and compromised from the local portion 708 of the file if the portable media drive 602 is lost or stolen. The remote portions 704, 706 are treated as individual files by the process server 604 for storage. The contiguous dependency of the portions of a file transformation is determinable only by the compression program, and the file can be reassembled only after all the portions has been reacquired on a client machine. In general then, the storage size of the file on the virtual file system is approximately equal to a storage size of the local portion on the portable media drive 602. To reassemble the file, the portions written to the storage servers 606, 608 and/or 610 are retrieved and combined with the local portion remaining on the portable media drive 602.
Referring again to
In general, the approach selected to generate local and remote portions at step 220 is not only file-sized dependent, but also based on ensuring that all file contents are modified. Hence, the maximum portion size is based on efficiency considerations. If three portions is considered efficient, the file may be considered a small file, and processed as illustrated in
In
Only when all the portions are brought together can the file be recovered in its original state. The identity of the successive portion can be expressed any way as long the identify can be definitively determined. For example, the identity may be expressed as the unique name, or as a pointer, physical address, logical address, database location, file name, or some function of the identity (e.g. such as a hash of the physical location).
Common to all approaches to generate portions is the need to store operational file metadata at each step for accurate reconstruction of the file starting with the local portion at a later time. Operating systems commonly store and display higher level file metadata to the user, along with a directory organization of the files. Directory nodes, or folders, are virtual files themselves that store metadata about the constituent files within the folder. The current invention provides a similar folder view to the user (see
In one embodiment, the file metadata (including partitioning information) for each displayed file is stored in its parent folder. The parent folder may be part of a hierarchy of folders (similar to any directory structure), and the file metadata may be instead stored or otherwise replicated to any folder above the parent folder in the hierarchy, all the way up to a root folder. This approach is beneficial for preventing a malicious user from identifying a local portion on the drive via flat searching (i.e. no directory information) without using the interface of
The graphical user interface 402 displays virtual space 406, showing both used and available space. The left panel 408 lists files stored locally on the portable media drive 102. The right panel 410 lists files stored in the virtual space that exists across both the portable media drive 102 and the remote storage device 114. In this manner, a virtual space is created and the files of the virtual space are only accessible on the portable media drive 102 via the virtual compression program 110. In one embodiment, the virtual space is much larger than the capacity of the portable media drive 102.
Alternatively,
The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
Embodiments of the invention may be implemented with computer-executable instructions. The computer-executable instructions may be organized into one or more computer-executable components or modules. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
Having described the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of the invention defined in the appended claims.
When introducing elements of the present invention or the preferred embodiments(s) thereof, the articles “a”, “an”, “the” and “said” are intended to mean that there are one or more of the elements. The terms “comprising”, “including” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
In view of the above, it will be seen that the several objects of the invention are achieved and other advantageous results attained.
As various changes could be made in the above systems and methods without departing from the scope of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
This application is a continuation-in-part of U.S. Ser. No. 11/675,367, filed Feb. 15, 2007, which is based on U.S. Ser. No. 60/773,903, filed Feb. 16, 2006, the entire contents of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5014197 | Wolf | May 1991 | A |
5191611 | Lang | Mar 1993 | A |
5485474 | Rabin | Jan 1996 | A |
5544320 | Konrad | Aug 1996 | A |
5625692 | Herzberg et al. | Apr 1997 | A |
5647000 | Leighton | Jul 1997 | A |
5696901 | Konrad | Dec 1997 | A |
5708714 | Lopez et al. | Jan 1998 | A |
5734892 | Chu | Mar 1998 | A |
5761667 | Koeppen | Jun 1998 | A |
5764767 | Beimel et al. | Jun 1998 | A |
5771354 | Crawford | Jun 1998 | A |
5802357 | Li et al. | Sep 1998 | A |
5809145 | Slik et al. | Sep 1998 | A |
5857180 | Hallmark et al. | Jan 1999 | A |
5860132 | Carter et al. | Jan 1999 | A |
5861883 | Cuomo et al. | Jan 1999 | A |
5887274 | Barry et al. | Mar 1999 | A |
5897638 | Lasser et al. | Apr 1999 | A |
5901228 | Crawford | May 1999 | A |
5940823 | Schreiber et al. | Aug 1999 | A |
5956490 | Buchholz et al. | Sep 1999 | A |
5987506 | Carter et al. | Nov 1999 | A |
5991414 | Garay et al. | Nov 1999 | A |
5999622 | Yasukawa et al. | Dec 1999 | A |
6003030 | Kenner et al. | Dec 1999 | A |
6014651 | Crawford | Jan 2000 | A |
6035325 | Potts, Jr. | Mar 2000 | A |
6088454 | Nagashima et al. | Jul 2000 | A |
6128627 | Mattis et al. | Oct 2000 | A |
6182214 | Hardjono | Jan 2001 | B1 |
6185655 | Peping | Feb 2001 | B1 |
6192472 | Garay et al. | Feb 2001 | B1 |
6275939 | Garrison | Aug 2001 | B1 |
6327579 | Crawford | Dec 2001 | B1 |
6330653 | Murray | Dec 2001 | B1 |
6351776 | O'Brien et al. | Feb 2002 | B1 |
6351810 | Gupta | Feb 2002 | B2 |
6356863 | Sayle | Mar 2002 | B1 |
6363417 | Howard et al. | Mar 2002 | B1 |
6363481 | Hardjono | Mar 2002 | B1 |
6405278 | Liepe | Jun 2002 | B1 |
6411943 | Crawford | Jun 2002 | B1 |
6427149 | Rodriguez | Jul 2002 | B1 |
6473860 | Chan | Oct 2002 | B1 |
6480963 | Tachibana et al. | Nov 2002 | B1 |
6587949 | Steinberg | Jul 2003 | B1 |
6687687 | Smadja | Feb 2004 | B1 |
6711594 | Yano et al. | Mar 2004 | B2 |
6748084 | Gau et al. | Jun 2004 | B1 |
6754696 | Kamath | Jun 2004 | B1 |
6766167 | Tung et al. | Jul 2004 | B2 |
6772302 | Thompson | Aug 2004 | B1 |
6782418 | Cerrone et al. | Aug 2004 | B1 |
6804702 | Duroj | Oct 2004 | B2 |
6804719 | Cabrera et al. | Oct 2004 | B1 |
6810122 | Miyazaki et al. | Oct 2004 | B1 |
6816941 | Carlson et al. | Nov 2004 | B1 |
6931542 | Gregoire | Aug 2005 | B1 |
6931549 | Ananda | Aug 2005 | B1 |
6976073 | Desoli et al. | Dec 2005 | B2 |
6985927 | O'Brien et al. | Jan 2006 | B2 |
7010650 | Kawamura et al. | Mar 2006 | B2 |
7058014 | Sim | Jun 2006 | B2 |
7080051 | Crawford | Jul 2006 | B1 |
7111138 | Higaki et al. | Sep 2006 | B2 |
7113945 | Moreshet et al. | Sep 2006 | B1 |
7124152 | Fish | Oct 2006 | B2 |
7136801 | Leonhardt et al. | Nov 2006 | B2 |
7136981 | Burch, Jr. et al. | Nov 2006 | B2 |
7139809 | Husain et al. | Nov 2006 | B2 |
7165095 | Sim | Jan 2007 | B2 |
7171453 | Iwami | Jan 2007 | B2 |
7177270 | Sim et al. | Feb 2007 | B2 |
7287068 | Eriksson et al. | Oct 2007 | B1 |
7325041 | Hara et al. | Jan 2008 | B2 |
7340492 | Cabrera et al. | Mar 2008 | B2 |
7380082 | Meiri et al. | May 2008 | B2 |
7415608 | Bolosky et al. | Aug 2008 | B2 |
7480761 | Birrell et al. | Jan 2009 | B2 |
7567985 | Comay | Jul 2009 | B1 |
7630986 | Herz et al. | Dec 2009 | B1 |
20010001761 | Tung et al. | May 2001 | A1 |
20020101989 | Markandey | Aug 2002 | A1 |
20020138504 | Yano et al. | Sep 2002 | A1 |
20040148571 | Lue | Jul 2004 | A1 |
20040199779 | Huang | Oct 2004 | A1 |
20050060316 | Kamath et al. | Mar 2005 | A1 |
20050091461 | Kisley et al. | Apr 2005 | A1 |
20050108263 | Cabrera et al. | May 2005 | A1 |
20050240749 | Clemo | Oct 2005 | A1 |
20060015473 | Swan | Jan 2006 | A1 |
20060059171 | Borthakur | Mar 2006 | A1 |
20060078127 | Cacayorin | Apr 2006 | A1 |
20060206889 | Ganesan et al. | Sep 2006 | A1 |
20070143277 | Van De Laar | Jun 2007 | A1 |
20080109437 | Perrizo et al. | May 2008 | A1 |
20080126357 | Casanova et al. | May 2008 | A1 |
20080126705 | Jogand-Coulomb et al. | May 2008 | A1 |
20080256147 | Anand et al. | Oct 2008 | A1 |
20080301775 | Ollikainen et al. | Dec 2008 | A1 |
20090019223 | Lection et al. | Jan 2009 | A1 |
20090070344 | Espelien | Mar 2009 | A1 |
20090132676 | Tu et al. | May 2009 | A1 |
Number | Date | Country |
---|---|---|
2000194600 | Jul 2000 | JP |
2003186726 | Jul 2003 | JP |
2005025419 | Jan 2005 | JP |
Entry |
---|
US 7,155,513 B2, 12/2006, Arakawa et al. (withdrawn) |
Shamir, “How to Share a Secret,” Communications of the ACM, Nov. 1979, pp. 612-613, vol. 22, No. 11, U.S.A. |
Rabin, “Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance,” Journal of ACM, Apr. 1989, pp. 335-348, vol. 36, No. 2, USA. |
Unknown, “Java Web Start Overview,” Technical White Paper, May 2005, 14 pages, Sun Microsystems, USA. |
Unknown, “A 5-Step Guide to Protecting Backup Data,” 2005, 17 pages, Iron Mountain, USA. |
Chance, “Understanding USB Flash Drives as Portable Infrastructure,” 2005, 6 pages, Browsercraft, LLC., USA. |
Unknown, “Executive's Guide: Best Practices for Offsite Data Protection and Recovery,” 2006, 10 pages, Iron Mountain, USA. |
Unknown, “Highly Secure, Highly Reliable, Open Source Storage Solution,” Technical Whitepaper, Jun. 2006, 13 pages, Cleversafe, LLC., USA. |
Sun et al., “An Efficient Construction of Perfect Secret Sharing Schemes for Graph-Based Access Structures,” Computers and Mathematics with Applications, vol. 31, No. 7, 1996, pp. 129-135, Elsevier Science Ltd., UK. |
Processor, “Personal Portable Security Devices”, Jun. 5, 2009, 3 pages, vol. 31 Issue 16, Sandhills Publishing Company, United States. |
Richard Dreger, Grant Moerschel, “Smartphone Security: It's Your Call”, InformationWeekAnalytics.com, Jun. 1, 2009, 18 pages. |
Gil Sever, “Safeguarding removable-media devices”, Network World, 1 page, Jan. 12, 2009 www.networkworld.com. |
Lisa Phifer Information Security Magazine, “Diverse mobile devices changing security paradigm”, Nov. 2008, 6 pages. |
Alexander Wolfe, “How the smartphone is becoming a portal to enterprise apps”, Information Week, Oct. 1, 2009, 12 pages, New York, New York. |
“Mobile device security is a concern”, Communication News, Trends, Enterprise Network Solutions, Jul. 2008, 4 pages. |
Sam Wong, “Risk Associated With USB Memory Sticks and High Capacity Storage Devices”, Siemens Insight Consulting, 4 pages, United Kingdom. |
Number | Date | Country | |
---|---|---|---|
20100030827 A1 | Feb 2010 | US |
Number | Date | Country | |
---|---|---|---|
60773903 | Feb 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11675367 | Feb 2007 | US |
Child | 12577404 | US |