Generating shared private keys
AssigneenChain Licensing AG
InventorMichaella Pettit
Life of this patent
Estimating the term…
Abstract
A computer-implemented method of generating shares of private keys, wherein the method is performed by a first participant of a group of participants and comprises: obtaining a first seed share, wherein each other participant has a respective seed share; generating a first master private key share of a shared master private key, wherein the first master private key share is generated based on the first seed share and the respective seed share of each other participant, and wherein each other participant has a respective master private key share; and generating one or more first private key shares based on the first master private key share, wherein each first private key share is a share of a respective shared private key.
Claims16
A computer-implemented method of generating shares of private keys, wherein the method is performed by a first participant of a group of participants and comprises:
- obtaining a first seed share, wherein each other participant has a respective seed share;
- inputting at least the first seed share to a cryptographic hash function and executing the cryptographic hash function on at least the first seed share to generate a first component of a first data item, wherein each other participant has a respective data item;
- obtaining the respective data items generated by the other participants;
- generating a first master private key share of a shared master private key, wherein the first master private key share is generated based on the first data item and the respective data items generated by the other participants, and wherein each other participant has a respective master private key share of the shared master private key;
- and
- generating one or more first private key shares based on the first master private key share, wherein each first private key share is a share of a respective shared private key;
- generating a hierarchical deterministic key structure of private key shares, wherein the one or more first private key shares generated based on the first master private key share are respective parent private key shares, and/or respective child private key shares, wherein each parent private key share of a given level in the key structure is a parent to one or more child private key shares in a subsequent level in the key structure;
- generating a first parent chain code share of a first parent private key share, the first parent private key share being a share of a first parent private key;
- obtaining a respective parent chain code share from each other participant;
- generating a common chain code based on each parent chain code share;
- and
- obtaining a first parent public key corresponding to the first private key, wherein one or more first child key shares are generated based on a respective first term and a respective second term, wherein the respective first term is generated based on the first parent private key share, and wherein the respective second term is generated by inputting into a hash function at least i) the first parent public key, ii) a respective index of the respective first child private key share, and iii) the common chain code.
A computing device comprising:
- memory comprising one or more memory units;
- and
- processing apparatus comprising one or more processing units, wherein the memory stores code arranged to run on the processing apparatus, the code being configured so as when run on the processing apparatus, the processing apparatus performs method of generating shares of private keys, wherein the method is performed by a first participant of a group of participants and comprises:
- obtaining a first seed share, wherein each other participant has a respective seed share;
- inputting at least the first seed share to a cryptographic hash function to generate a first component of a first data item and executing the cryptographic hash function on at least the first seed share, wherein each other participant has a respective data item;
- obtaining the respective data items generated by the other participants;
- generating a first master private key share of a shared master private key, wherein the first master private key share is generated based on the first data item and the respective data items generated by the other participants, and wherein each other participant has a respective master private key share;
- and
- generating one or more first private key shares based on the first master private key share, wherein each first private key share is a share of a respective shared private key;
- generating a hierarchical deterministic key structure of private key shares, wherein the one or more first private key shares generated based on the first master private key share are respective parent private key shares, and/or respective child private key shares, wherein each parent private key share of a given level in the key structure is a parent to one or more child private key shares in a subsequent level in the key structure;
- generating a first parent chain code share of a first parent private key share, the first parent private key share being a share of a first parent private key;
- obtaining a respective parent chain code share from each other participant;
- and
- generating a common chain code based on each parent chain code share;
- obtaining a first parent public key corresponding to the first private key, wherein one or more first child key shares are generated based on a respective first term and a respective second term, wherein the respective first term is generated based on the first parent private key share, and wherein the respective second term is generated by inputting into a hash function at least i) the first parent public key, ii) a respective index of the respective first child private key share, and iii) the common chain code.
A non-transitory computer-readable storage medium, comprising a computer program configured so as, when run on one or more processors, the one or more processors perform a method of generating shares of private keys, wherein the method is performed by a first participant of a group of participants and comprises:
- obtaining a first seed share, wherein each other participant has a respective seed share;
- inputting at least the first seed share to a cryptographic hash function and executing the cryptographic hash function on at least the first seed share to generate a first component of a first data item, wherein each other participant has a respective data item;
- obtaining the respective data items generated by the other participants
- generating a first master private key share of a shared master private key, wherein the first master private key share is generated based on the first data item and the respective data item generated by the other participants, and wherein each other participant has a respective master private key share;
- and
- generating one or more first private key shares based on the first master private key share, wherein each first private key share is a share of a respective shared private key;
- generating a hierarchical deterministic key structure of private key shares, wherein the one or more first private key shares generated based on the first master private key share are respective parent private key shares, and/or respective child private key shares, wherein each parent private key share of a given level in the key structure is a parent to one or more child private key shares in a subsequent level in the key structure;
- generating a first parent chain code share of a first parent private key share, the first parent private key share being a share of a first parent private key;
- obtaining a respective parent chain code share from each other participant;
- and
- generating a common chain code based on each parent chain code share;
- obtaining a first parent public key corresponding to the first private key, wherein one or more first child key shares are generated based on a respective first term and a respective second term, wherein the respective first term is generated based on the first parent private key share, and wherein the respective second term is generated by inputting into a hash function at least i) the first parent public key, ii) a respective index of the respective first child private key share, and iii) the common chain code.
Dependencies are inferred from the claim text.