Secure data storage
First Claim
Patent Images
1. A method for storing files, comprising:
- receiving by a first client application at least a first identifier;
receiving by the first client application a third identifier;
providing the first identifier and the third identifier to a hash algorithm, wherein the hash algorithm produces a first output using the first and third identifiers;
using the first output to determine a first system file location;
storing a first system file in data storage at the first system file location, wherein the first system file stored in the data storage at the first system file location is a first index file;
assigning a first file name to a first data file;
receiving by the first client application a second identifier;
providing the first file name as the second identifier to the hash algorithm;
providing the second identifier to the hash algorithm, wherein the hash algorithm produces a second output;
using the second output to determine a first data file location;
storing the first data file in the data storage at the first data file location;
storing the first data file location in the first index file;
determining a size of the first data file, wherein in response to the size of the first data file having less than a first predetermined size the first data file is padded to have a first normalized size, and wherein the padded first data file is stored;
assigning a second file name to a second data file, wherein the first file name has a first character length, and wherein the second file name has the first character length;
providing the second file name as a fourth identifier to the hash algorithm, wherein the hash algorithm produces a third output;
using the third output to determine a second data file location;
storing the second data file in the data storage at the second data file location;
storing the second data file location in the first index file.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for obscuring the location of critical system files are provided. In particular, the locations of files stored within a file system are selected by applying various inputs to a hash algorithm. For system files, the inputs applied to the hash algorithm can include a user name and password. For data files, the information provided to the hash algorithm can include the file name. In addition to providing random file locations, a file system in accordance with embodiments of the present invention can homogenize other information, including file names, sizes and creation dates.
-
Citations
14 Claims
-
1. A method for storing files, comprising:
-
receiving by a first client application at least a first identifier; receiving by the first client application a third identifier; providing the first identifier and the third identifier to a hash algorithm, wherein the hash algorithm produces a first output using the first and third identifiers; using the first output to determine a first system file location; storing a first system file in data storage at the first system file location, wherein the first system file stored in the data storage at the first system file location is a first index file; assigning a first file name to a first data file; receiving by the first client application a second identifier; providing the first file name as the second identifier to the hash algorithm; providing the second identifier to the hash algorithm, wherein the hash algorithm produces a second output; using the second output to determine a first data file location; storing the first data file in the data storage at the first data file location; storing the first data file location in the first index file; determining a size of the first data file, wherein in response to the size of the first data file having less than a first predetermined size the first data file is padded to have a first normalized size, and wherein the padded first data file is stored; assigning a second file name to a second data file, wherein the first file name has a first character length, and wherein the second file name has the first character length; providing the second file name as a fourth identifier to the hash algorithm, wherein the hash algorithm produces a third output; using the third output to determine a second data file location; storing the second data file in the data storage at the second data file location; storing the second data file location in the first index file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for storing files, comprising:
-
providing data storage; providing a processor; providing a client application that is executable by the processor, wherein the client application includes a file system module; prompting a user for a password; receiving a first password at the client application; providing at least the received first password and a first salt as a first input to a hash algorithm; in response to the first input, generating by the hash algorithm a first output; transforming the first output to a first file system location; storing a first index file at the first file system location in the data storage; providing at least the received first password and a second salt as a second input to the hash algorithm; in response to the second input, generating by the hash algorithm a second output; transforming the second output to a second file system location; storing a first key store file at the second file system location in the data storage; receiving a first data file, wherein the first data file is associated with a first name, wherein the first name has a first character length; providing at least the first name and a third salt as a third input to the hash algorithm; in response to the third input, generating by the hash algorithm a third output; transforming the third output to a third file system location; determining a size of the first data file, wherein in response to the size of the first data file having less than a first predetermined size the first data file is padded to have a first normalized size; storing the first data file at the third file system location; storing a record of the third file system location in the first index file; placing a key associated with the first data file in the first key store file; receiving a second data file, wherein the second data file is associated with a second name, wherein the second name has the first character length; providing at least the second name and a fourth salt as a fourth input to the hash algorithm; in response to the fourth input, generating by the hash algorithm a fourth output; transforming the fourth output to a fourth file system location; storing the second data file at the fourth file system location; storing a record of the fourth file system location in the first index file; placing a key associated with the second data file in the first key store file. - View Dependent Claims (13)
-
-
14. A system, comprising:
-
data storage; a client application, wherein the client application is stored in the data storage, and wherein the client application includes a hash algorithm; a user input, wherein in response to receiving at least a first input at the user input the client application is operable to generate a first value using the hash algorithm, wherein the first value is used to determine a first location in the data storage for storing a system index file, wherein the system index file is stored at the first location in the data storage, wherein a record of the first location is not stored in data storage, and wherein in response to the client application receiving a request to store a first data file in the data storage the client application is operable to generate a second value using the name of the first data file as an input to the hash algorithm, wherein the second value is used to determine a second location in the data storage for storing the first data file, wherein the first data file is placed in the data storage at the second location, determining a size of the first data file, wherein in response to the size of the first data file having less than a first predetermined size the first data file is padded to have a first normalized size, and wherein the padded first data file is placed in the data storage, wherein a second file name is assigned to a second data file, wherein the first file name has a first character length, and the second file name has the first character length, wherein the second file name is provided to the hash algorithm in response to which the hash algorithm generates a third value, wherein the third value is used to determine a third location in the data storage for storing the second data file, and wherein the second location and the third location are stored in the system index file.
-
Specification