×

Data encrypting system with encryption service module and supporting infrastructure for transparently providing encryption services to encryption service consumer processes across encryption service state changes

  • US 10,439,804 B2
  • Filed: 10/27/2017
  • Issued: 10/08/2019
  • Est. Priority Date: 10/27/2017
  • Status: Active Grant
First Claim
Patent Images

1. A method of providing encryption services in a data encrypting system, comprising:

  • receiving, from an encrypting consumer process executing on processing circuitry contained in the data encrypting system, by an encryption service module executing on the processing circuitry, an encryption operation request, wherein the encryption operation request includes a set of encryption parameters, and wherein the set of encryption parameters includes a location of a plaintext buffer in a memory of the data encrypting system and a location of an ciphertext output buffer in the memory of the data encrypting system for storing ciphertext resulting from encrypting the contents of the plaintext buffer;

    determining, by the encryption service module, whether the set of encryption parameters in the encryption operation request includes an indication of a cryptographic key that is to be used by the encryption service module to transform the contents of the plaintext buffer into ciphertext;

    responsive to determining that the set of parameters in the encryption operation request does not include an indication of a cryptographic key that is to be used by the encryption service module to transform the contents of the plaintext buffer into ciphertext, the encryption service module performing an encryption operation at least in part by;

    i) retrieving a current cryptographic key stored within a key store located in the data encrypting system,ii) using the current cryptographic key and an associated cryptographic algorithm to encrypt the contents of the plaintext buffer by transforming the contents of the plaintext buffer into ciphertext,iii) creating an encrypted data object that includes the ciphertext and a key identifier that uniquely identifies the current cryptographic key and the associated cryptographic algorithm that were used to encrypt the contents of the plaintext buffer, andiv) storing the encrypted data object into the ciphertext output buffer;

    receiving, from a decrypting consumer process, a decryption operation request, wherein the decryption operation request includes a set of decryption parameters, wherein the set of decryption parameters includes a location of a ciphertext buffer containing the encrypted data object and a location of a plaintext output buffer for storing plaintext resulting from decrypting the ciphertext contained in the encrypted data object;

    determining whether the set of decryption parameters in the decryption operation request includes an indication of a cryptographic key that is to be used to transform the ciphertext contained in the encrypted data object into plaintext;

    responsive to determining that the set of decryption parameters in the decryption operation request does not include an indication of a cryptographic key that is to be used to transform the ciphertext contained in the encrypted data object into plaintext, performing a decryption operation at least in part by;

    i) extracting the key identifier from the encrypted data object,ii) using the extracted key identifier to retrieve a cryptographic key indicated by the extracted key identifier,iii) using the extracted key identifier to identify a cryptographic algorithm associated with the retrieved cryptographic key,iv) using the retrieved cryptographic key and the identified cryptographic algorithm to decrypt the ciphertext contained in the encrypted data object by transforming the ciphertext contained in the encrypted data object into plaintext, andv) storing the plaintext into the plaintext output buffer.

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