Space-efficient storage of encrypted data
First Claim
1. A computer program stored on a non-transitory storage medium for encrypting a field value stored in a database system, the computer program comprising a set of instructions, when executed by a hardware processor, to cause the database system to:
- receive the field value associated with a data object or a table in the database system;
identify types of language characters in the field value;
select an encoding scheme from among multiple different encoding schemes to encode the field value based on the types of language characters in the field value;
use the selected encoding scheme from the multiple different encoding schemes to encode the field value into a byte array;
encrypt the encoded byte array of the field value and assign an encoding flag to identify the encoding scheme used to decode the encoded field value; and
store the encoding flag and the encrypted byte array in the database system.
2 Assignments
0 Petitions
Accused Products
Abstract
An encryption platform may identify language characters in database fields and determine which of multiple encoding schemes more efficiently encodes the language characters. The encryption platform may use the selected encoding scheme to encode plaintext into a byte array and then encrypt the byte array into ciphertext. The encryption platform may assign encoding flags to the ciphertext identifying the encoding scheme used for encoding the plaintext. The encryption platform then may use the encoding flag to determine which encoding schemes to use for decoding the data back into plaintext. Using the different encoding schemes allows encrypted data to fit better into database storage structures. The encryption platform also may enable users to select different fields for different selectable objects for encoding and encrypting.
-
Citations
18 Claims
-
1. A computer program stored on a non-transitory storage medium for encrypting a field value stored in a database system, the computer program comprising a set of instructions, when executed by a hardware processor, to cause the database system to:
-
receive the field value associated with a data object or a table in the database system; identify types of language characters in the field value; select an encoding scheme from among multiple different encoding schemes to encode the field value based on the types of language characters in the field value; use the selected encoding scheme from the multiple different encoding schemes to encode the field value into a byte array; encrypt the encoded byte array of the field value and assign an encoding flag to identify the encoding scheme used to decode the encoded field value; and store the encoding flag and the encrypted byte array in the database system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An encryption platform for operating in a database system, comprising:
-
a hardware processor; and memory storing one or more stored sequences of instructions which, when executed by the hardware processor, cause the hardware processor to carry out the steps of receiving data associated with requests from user systems to save the data in the database system; scanning the data for each of the requests to identify which encoding scheme from among multiple encoding schemes encodes the data in a smallest number of bytes; encoding the data for each of the requests into a byte array using the encoding scheme identified as encoding the data in the smallest number of bytes from the multiple encoding schemes; encrypting the encoded byte array into ciphertext; assigning an encoding flag to the ciphertext identifying the encoding scheme used for encoding the data and to decode the encoded byte array; and storing the encoding flag and the ciphertext in the database system. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for encrypting data in a database system, comprising:
-
receiving requests to store the data in the database system; scanning the data for each of the requests for different language characters; identifying a number of bits used by different encoding schemes for encoding the language characters in the data; for each of the requests, selecting one of the encoding schemes encoding the data in a fewest number of bits; using the selected one from the different encoding schemes to encode the data into byte arrays; encrypting the encoded byte arrays into encrypted data and assigning headers to the encrypted data to identify the encoding scheme used to encode the data and to decode the encoded data; and storing the headers and the encrypted data in the database system. - View Dependent Claims (17, 18)
-
Specification