IP Library › Granted Patent US 7,272,231
Granted Patent B2
US 7,272,231 · App. 10/351,759 · Granted Sep 18, 2007

Encrypting data for access by multiple users

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,272,231
App. No.
10/351,759
Granted
Sep 18, 2007
Kind
B2
Abstract

A method for protecting data for access by a plurality of users. A server encrypts data using a master key and a symmetric encryption algorithm. For each authorized user, a key encryption key (KEK) is derived from a passphrase, and the master key is encrypted using the KEK. The server posts the encrypted data and an ancillary file that includes, for each user, a user identifier and the master key encrypted according to the user's KEK. To access the data, a user enters the passphrase into a client, which re-derives the user's KEK, and finds, in the ancillary file, the master key encrypted using the user's KEK. The client decrypts the master key and then decrypts the data. A KEK may be derived from a natural language passphrase by hashing the passphrase, concatenating the result and a predetermined text, hashing the concatenation, and truncating.

Claims (51)

1. A method for protecting data, comprising the steps of:

encrypting data using a master key according to a first symmetric encryption algorithm, to provide encrypted data;

deriving a key encryption key from a passpbrase known to a user;

encrypting the master key using the key encryption key according to a second symmetric encryption algorithm, to provide an encrypted master key;

deriving a verification key from the passphrase; and

posting the encrypted data, the encrypted master key, and the verification key for access by the user,

wherein the step of deriving a key encryption key includes the steps of:

hashing the passphrase, to provide a hashed passphrase;

altering the hashed passphrase, to provide an altered passphrase;

hashing the altered passphrase, to provide a result; and

truncating the result, to provide the key encryption key.

2. The method of claim 1 , wherein the step of altering the hashed passphrase includes the step of concatenating a predetermined text with the hashed passphrase.

3. The method of claim 1 , wherein the method further comprises: prior to said encrypting data and said encrypting the master key, randomly generating the master key.

4. A method for reading protected data, comprising the steps of:

deriving a first verification key from a passphrase;

reading a second verification key associated with encrypted data;

comparing the first verification key and the second verification key; and,

if the first verification key is the same as the second verification key,

reading an encrypted master key, which encrypted master key has been encrypted according to a second symmetric encryption algorithm using a key encryption key derived from the passphrase;

deriving the key encryption key from the passphrase;

decrypting the encrypted master key using the derived key encryption key according to the second symmetric encryption algorithm, to provide a master key;

reading encrypted data, which encrypted data has been encrypted using the master key according to a first symmetric encryption algorithm; and

decrypting the encrypted data using the master key according to the first symmetric encryption algorithm.

5. A method for protecting data, comprising the steps of:

encrypting data using a master key according to a first symmetric encryption algorithm, to provide encrypted data;

deriving a key encryption key from a passphrase known to a user;

encrypting the master key using the key encryption key according to a second symmetric encryption algorithm, to provide an encrypted master key;

deriving a verification key from the passphrase; and

posting the encrypted data, the encrypted master key, and the verification key for access by the user,

wherein the step of deriving a verification key includes the steps of:

hashing the passphrase, to provide a hashed passphrase;

altering the hashed passphrase, to provide an altered passphrase;

hashing the altered passphrase, to provide a result; and

truncating the result, to provide the verification key.

6. The method of claim 5 , wherein the step of altering the hashed passphrase includes the step of concatenating a predetermined text with the hashed passphrase.

7. The method of claim 5 , wherein the method further comprises: prior to said encrypting data and said encrypting the master key, randomly generating the master key.

8. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform the method of claim 1 .

9. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform the method of claim 5 .

10. A method for reading protected data for a user of N users such that N is at least 2, comprising:

deriving a first verification key from a passphrase;

reading a second verification key associated with encrypted data;

comparing the first verification key and the second verification key;

verifying that the first verification key is the same as the second verification key;

after said verifying, reading an encrypted master key, which encrypted master key has been encrypted according to a second symmetric encryption algorithm using a key encryption key derived from the passphrase;

deriving the key encryption key from the passphrase;

decrypting the encrypted master key that had been read using the derived key encryption key according to the second symmetric encryption algorithm, to derive a master key;

reading encrypted data, which encrypted data has been encrypted using the master key according to a first symmetric encryption algorithm; and

decrypting the encrypted data using the derived master key according to the first symmetric encryption algorithm.

11. The method of claim 10 , wherein the method further comprises locating a record of N records in an ancillary file, wherein said reading the second verification key comprises reading the second verification from the record in the ancillary file, and wherein said reading the encrypted master key comprises reading the encrypted master key from the record in the ancillary file.

12. The method of claim 11 , wherein the ancillary file comprises N records and three columns, wherein the N records are respectively associated with the N users, and wherein the three columns comprise a column that includes a user identifier of each user, a column that includes the encrypted master key for each user, and a column that includes the verification key for each user.

13. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform the method of claim 10 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2003
From: JONAS, PER ERWIN; ROGINSKY, ALLEN LEONID; ZUNIC, NEVENKO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 013708/0842 →
Continuity (1)
Related Publication 20040146164A1 · Jul 29, 2004