Patent ID: 7565702

Claim:
A method comprising: creating a data structure including a plurality of user id-user key pairs, each user id-user key pair comprising a user id associated with one of a plurality of users and a user key comprising a master key and a keyed-hash message authentication code encrypted using a hash of a password associated with the user ID, wherein the data structure comprises a plurality of different encryptions of the master key such that the master key may be obtained by operation of any of a plurality of different keys, and each of the plurality of different encryptions is associated with a different user from among the plurality of users, respectively, and wherein a data integrity verification feature, comprising the keyed-hash message authentication code, is based on the hash of the password and is added to each of the plurality of different encryptions of the master key; checking integrity of user keys from the plurality of user id-user key pairs after each of the plurality of user keys is produced, wherein the integrity check comprises decrypting the user key for comparison to the master key; storing data encrypted using the master key; receiving a user id and user password from one of the plurality of users; selecting a user key from the data structure based on the received user id; preventing fraudulent access to data comprising: tracking attempts by a user to access data, and blocking attempts for a time period after a threshold number of failed attempts; reporting failed data access attempts to a system administrator according to user ID; increasing a time period a user must wait to attempt to access data after successive failed attempts to access the data; and, deleting a user ID and a user key after a threshold number of failed attempts to access data; hashing the received password to produce a hash value; decrypting the selected user key using the hash value to reproduce the master key; and decrypting the stored data using the master key.