×

Methods and systems for storage of large data objects

  • US 8,782,441 B1
  • Filed: 03/07/2013
  • Issued: 07/15/2014
  • Est. Priority Date: 03/16/2012
  • Status: Active Grant
First Claim
Patent Images

1. A method, comprising:

  • receiving, by a storage service, a binary large object;

    by a processor of the storage service, creating a first set of data chunks, wherein each of the data chunks in the first set is a subset of the object, and together the data chunks in the first set equal the object;

    by the processor, assigning an encryption key to each data chunk in the first set;

    encrypting each of the data chunks in the first set to form a set of encrypted data chunks;

    by the processor, creating a second set of ciphertext chunks, wherein the ciphertext chunks in the second set will, taken together and decrypted, form the binary large object;

    by the processor, assigning a message authentication code (MAC) to each data chunk in the second set;

    storing the encrypted data chunks in one or more data stores;

    storing the encryption keys and the MACs as metadata in a metadata memory, wherein the metadata memory is separate from the one or more data stores, and wherein storing the encryption keys and the MACs as metadata comprises assigning a key, encrypting the metadata with the assigned key, and wrapping the assigned key;

    receiving, by the storage service, an access request from a user, wherein the access request includes a user authentication credential;

    verifying, by the storage service, the user authentication credential based on the access request;

    accessing the metadata to retrieve the encryption keys and the MACs for the binary large object, wherein accessing the metadata comprises unwrapping the wrapped key to yield an unwrapped key, andusing the unwrapped key to decrypt the metadata;

    retrieving the encrypted data chunks from the data store;

    using the MACs to verify integrity of the encrypted data chunks;

    using the encryption keys to decrypt the encrypted data chunks; and

    returning the binary large object to the user.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×