IP Library Granted Patent US 7,890,754
Granted Patent B2
US 7,890,754 · App. 12/202,873 · Granted Feb 15, 2011

Selective encryption system and method for I/O operations

Assignee: VMware, Inc.
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,890,754
App. No.
12/202,873
Granted
Feb 15, 2011
Kind
B2
Abstract

Upon occurrence of a trigger condition, writes of allocation units of data (including code) to a device, such as writes of blocks to a disk, are first encrypted. Each allocation unit is preferably a predetermined integral multiple number of minimum I/O units. A data structure is marked to indicate which units are encrypted. Upon reads from the device, only those allocation units marked as encrypted are decrypted. The disk protected by selective encryption is preferably the virtual disk of a virtual machine (VM). The trigger condition is preferably either that the virtual disk has been initialized or that the VM has been powered on. Mechanisms are also provided for selectively declassifying (storing in unencrypted form) already-encrypted, stored data, and for determining which data units represent public, general-use data units that do not need to be encrypted. The “encrypt-on-write” feature of the invention may be used in conjunction with a “copy-on-write” technique.

Claims (11)

1. In a computer having a storage device, a method for storing some data in the storage device in an unencrypted form and storing other data in the storage device in an encrypted form and for selecting said some data to be stored in the unencrypted form, the computer including executable instructions for performing the method, the method comprising:

compiling a database of identifiers of allocation units, where each allocation unit contains only general-use data and each allocation unit comprises a predetermined integral multiple number of minimum I/O units of the device;

determining whether each of a plurality of test allocation units corresponds to general-use data by determining whether the test allocation unit corresponds to any identifier of allocation units of general-use data in the database;

if a test allocation unit corresponds to an identifier of allocation units of general-use data in the database, storing the test allocation unit in the unencrypted form in the storage device; and

storing a plurality of test allocation units that do not correspond to identifiers of allocation units of general-use data in the database in the encrypted form in the storage device.

2. A method as in claim 1 , in which:

the database is a hash table; and

the step of compiling the database of identifiers comprises computing a hash value for a plurality of known general-use allocation units and making an entry in the hash table corresponding to the hash value.

3. A method as in claim 2 , in which the known general-use allocation units include program code.

4. A method as in claim 2 , in which the known general-use allocation units are portions of a plurality of known executable files.

5. A method as in claim 1 , in which the device is a disk and the allocation units are disk blocks.

Continuity (2)
Division 10448825 · May 30, 2003
Related Publication 20080320316A1 · Dec 25, 2008