Fragmented encryption of a secret
AssigneeCallware Technologies, Inc.
InventorJohn M. Robertson
Life of this patent
Estimating the term…
Abstract
Methods, apparatuses, systems, and program products are disclosed for secret fragmentation and distribution. A method includes generating a secret that may be divided into a plurality of segments such that the secret is re-constructed by combining each of the plurality of segments. A method includes assigning each of a plurality of users to one or more groups or groups of groups. A method includes mapping each of a plurality of segments of a secret to one or more of a plurality of users as a function of a number of users within each group. A method includes encoding each of a plurality of segments in a predefined format based on a mapping. A method includes distributing each of a plurality of encoded segments to each of one or more users that is mapped to each encoded segment.
Claims18
A method comprising:
- generating a secret, the secret divided into a plurality of secret segments, wherein the secret is re-constructed by combining each of the plurality of secret segments;
- assigning each user of a plurality of users to one or more groups of users, wherein a total number of users assigned to each group is not larger than a number of bits in the secret;
- mapping each of the plurality of secret segments of the secret to one or more of the plurality of users as a function of a number of users within each group by:
- determining, for each group, a total number of users within the group;
- calculating, for each group, a number of users of the group that are required for providing a secret segment of the secret that is associated with the users within the group;
- and
- generating a map comprising a plurality of rows and columns, each row corresponding to a user and each column corresponding to a secret segment of the secret, wherein an intersection of a row and column comprises a value that indicates whether the user is assigned the corresponding secret segment of the secret, the number of secret segments generated as a function of the number of columns in the map, wherein a bit length of the secret is divided by the number of columns in the map to determine the number of secret segments;
- encoding each of the plurality of secret segments in a predefined format based on the mapping;
- and
- distributing each of the plurality of encoded secret segments to each of the one or more users that is mapped to each encoded secret segment.
An apparatus comprising:
- a key module that generates a secret, the secret divided into a plurality of secret segments, wherein the secret is re-constructed by combining each of the plurality of secret segments;
- a group module that assigns each user of a plurality of users to one or more groups of users, wherein a total number of users assigned to each group is not larger than a number of bits in the secret;
- a map module that maps each of the plurality of secret segments of the secret to one or more of the plurality of users as a function of a number of users within each group by:
- determining, for each group, a total number of users within the group;
- calculating, for each group, a number of users of the group that are required for providing a secret segment of the secret that is associated with the users within the group;
- and
- generating a map comprising a plurality of rows and columns, each row corresponding to a user and each column corresponding to a secret segment of the secret, wherein an intersection of a row and column comprises a value that indicates whether the user is assigned the corresponding secret segment of the secret, the number of secret segments generated as a function of the number of columns in the map, wherein a bit length of the secret is divided by the number of columns in the map to determine the number of secret segments;
- an encoding module that encodes each of the plurality of secret segments in a predefined format based on the mapping;
- and
- a distribution module that distributes each of the plurality of encoded secret segments to each of the one or more users that is mapped to each encoded secret segment.
A computer program product comprising a computer readable storage medium having program code embodied therein, the program code readable/executable by a processor for:
- generating a secret, the secret divided into a plurality of secret segments, wherein the secret is re-constructed by combining each of the plurality of secret segments;
- assigning each user of a plurality of users to one or more groups of users, wherein a total number of users assigned to each group is not larger than a number of bits in the secret;
- mapping each of the plurality of secret segments of the secret to one or more of the plurality of users as a function of a number of users within each group by:
- determining, for each group, a total number of users within the group;
- calculating, for each group, a number of users of the group that are required for providing a secret segment of the secret that is associated with the users within the group;
- and
- generating a map comprising a plurality of rows and columns, each row corresponding to a user and each column corresponding to a secret segment of the secret, wherein an intersection of a row and column comprises a value that indicates whether the user is assigned the corresponding secret segment of the secret, the number of secret segments generated as a function of the number of columns in the map, wherein a bit length of the secret is divided by the number of columns in the map to determine the number of secret segments;
- encoding each of the plurality of secret segments in a predefined format based on the mapping;
- and
- distributing each of the plurality of encoded secret segments to each of the one or more users that is mapped to each encoded secret segment.
Dependencies are inferred from the claim text.