System and method for initializing tokens in a dictionary encryption scheme
First Claim
1. A computer implemented method, comprising:
- receiving data in unencrypted form, the data including a plurality of plaintext symbols;
encrypting the data in accordance with an encryption dictionary generated byarranging the plurality of plaintext symbols in lexicographical order;
defining a first subset comprising a first plurality of the lexicographically arranged symbols;
defining a second subset comprising a second plurality of the lexicographically arranged symbols;
defining a first set comprising a first plurality of unique random tokens within a first token space for use with the first plurality of symbols, respectively;
defining a second set comprising a second plurality of unique random tokens within a second token space for use with the second plurality of symbols, respectively;
adding a first random constant value to each token in the first set of random tokens; and
adding a second random constant value to each token in the second set of random tokens;
wherein the second random constant value is greater than the first random constant value; and
storing the encrypted data in a database.
1 Assignment
0 Petitions
Accused Products
Abstract
Computer systems and applications are provided for encrypting data in a manner which preserves the ability to process the encrypted data. The method includes arranging a plurality of plaintext symbols in lexicographical order; defining respective first and second subsets of the lexicographically arranged symbols; defining a first and a second set of random tokens for use with the first and second subsets of symbols, respectively; adding a first random constant value to each token in the first set of random tokens; adding a second random constant value to each token in the second set of random tokens; defining the first set of random tokens comprises establishing a first average distance between tokens; and defining the second set of random tokens comprises establishing a second average distance between tokens; wherein the second average distance is different than the first average distance, and the second random constant value is greater than the first random constant value.
116 Citations
20 Claims
-
1. A computer implemented method, comprising:
-
receiving data in unencrypted form, the data including a plurality of plaintext symbols; encrypting the data in accordance with an encryption dictionary generated by arranging the plurality of plaintext symbols in lexicographical order; defining a first subset comprising a first plurality of the lexicographically arranged symbols; defining a second subset comprising a second plurality of the lexicographically arranged symbols; defining a first set comprising a first plurality of unique random tokens within a first token space for use with the first plurality of symbols, respectively; defining a second set comprising a second plurality of unique random tokens within a second token space for use with the second plurality of symbols, respectively; adding a first random constant value to each token in the first set of random tokens; and adding a second random constant value to each token in the second set of random tokens; wherein the second random constant value is greater than the first random constant value; and storing the encrypted data in a database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In a cloud based computing environment of the type including a multitenant database maintained by a service provider, a method comprising:
-
receiving data in unencrypted form, the data including a plurality of plaintext symbols; encrypting the data in accordance with an encryption dictionary generated by alphabetically sorting the plurality of plaintext symbols; defining a first subset comprising a first plurality of the symbols; defining a second subset comprising a second plurality of the symbols; defining a first set comprising a first plurality of random tokens within a first token space for use with the first subset of symbols, respectively; and defining a second set comprising a second plurality of random tokens within a second token space for use with the second subset of symbols, respectively; wherein; defining the first set of random tokens comprises establishing a first average distance between tokens; and defining the second set of random tokens comprises establishing a second average distance between tokens; and the second average distance is different than the first average distance; and storing the encrypted data in the multitenant database. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer application embodied in a non-transitory medium for operation by a computer processor for performing the steps of:
-
receiving data in unencrypted form, the data including a plurality of plaintext symbols; encrypting the data in accordance with an encryption dictionary generated by arranging the plurality of plaintext symbols in lexicographical order; defining a first subset comprising a first plurality of the lexicographically arranged symbols; defining a second subset comprising a second plurality of the lexicographically arranged symbols; defining a first set comprising a first plurality of random tokens within a first token space for use with the first subset of symbols, respectively; defining a second set comprising a second plurality of random tokens within a second token space for use with the second subset of symbols, respectively; adding a first random constant value to each token in the first set of random tokens; adding a second random constant value to each token in the second set of random tokens; defining the first set of random tokens comprises establishing a first average distance between tokens; and defining the second set of random tokens comprises establishing a second average distance between tokens; wherein the second average distance is different than the first average distance; and wherein the second random constant value is different than the first random constant value; and storing the encrypted data in a database.
-
Specification