Data transformation system using cyclic groups
AssigneeApple Inc.
InventorsAugustin J. Farrugia, Mathieu Ciet, Benoit Chevallier-Mames
Life of this patent
Estimating the term…
Abstract
An asymmetric (dual key) data obfuscation process, based on the well known ElGamal cryptosystem algorithm, and which uses multiplicative cyclic groups to transform (obfuscate) digital data for security purposes. In the present system the data need not be a member of the cyclic group, unlike in the ElGamal cryptosystem algorithm. Also, any one of several additional mathematical data transformations are further applied to the transformed data, thereby enhancing security of the transformed data.
Claims23
A method of transforming data with a keyed cyclic group process that uses a particular group as inputs, the method comprising:
- receiving a set of data, wherein the set of data is not a member of the group of the keyed cyclic group process;
- partitioning the set of data into a plurality of data portions that are members of the group;
- for a particular data portion, applying the keyed cyclic group process by applying a function of a group member, a key, and a first random number to the particular data portion to produce a first transformed data;
- re-applying the keyed cyclic group process to the first transformed data using a second, different random number to obtain a second transformed data;
- and
- storing the resulting second transformed data in a computer readable storage medium as an encrypted portion of the set of data.
A method of transforming data using a keyed cyclic group process that uses a particular group as inputs, the method comprising:
- receiving a data designated m, wherein the data is not a member of the group of the keyed cyclic group process;
- storing the data in a first computer readable storage;
- adding a value designated b to the data;
- applying a data transformation to a portion of the stored data using the keyed cyclic group process, wherein a key for the keyed cyclic group process is designated x, a generator element designated g is provided which is a member of the group, and a random number designated r is provided, wherein a transformed keyed data is designated (u, v) and is calculated as (u, v)=(gr, gxr*m+gxr*b);
- and
- storing the resulting transformed keyed data in a second computer readable storage.
A non-transitory machine readable medium storing a program which when executed by at least one processing unit transforms data with a keyed cyclic group process that uses a particular group as inputs, the program comprising sets of instructions for:
- receiving a set of data, wherein the set of data is not a member of the group of the keyed cyclic group process;
- partitioning the set of data into a plurality of data portions that are members of the group;
- for a particular data portion, applying the keyed cyclic group process by applying a function of a group member, a key, and a first random number to the particular data portion to produce a first transformed data;
- re-applying the keyed cyclic group process to the first transformed data using a second, different random number to obtain a second transformed data;
- and
- storing the resulting second transformed data as an encrypted portion of the set of data.
Dependencies are inferred from the claim text.