Computer-implemented system and method for distributing shares of digitally signed data
A computer-implemented method for distributing shares of a digitally signed message among a plurality of participants. The method comprising: inputting a digital message to an elliptic curve digital signature algorithm to provide a digital signature; mapping the digital signature to elliptic curve points of an elliptic curve cryptography system common to the participants. In a first encryption step, a knapsack algorithm is applied to the elliptic curve points to generate an encrypted version of the digital signature. In a second encryption step, an elliptic curve cryptography encryption is applied to the encrypted version of the digital signature to provide a doubly encrypted version of the digital signature; and applying a secret sharing step to the doubly encrypted version of the digital signature, wherein the digital signature is fragmented into a plurality of blocks before applying the knapsack algorithm.
1. A computer-implemented method for distributing shares of a digitally signed message among a plurality of participants, the method comprising:
inputting a digital message to an elliptic curve digital signature algorithm to provide a digital signature;
mapping the digital signature to elliptic curve points of an elliptic curve cryptography system common to the participants;
a first encryption step, wherein a knapsack algorithm is applied to the elliptic curve points to generate an encrypted version of the digital signature;
a second encryption step, wherein an elliptic curve cryptography encryption is applied to the encrypted version of the digital signature to provide a doubly encrypted version of the digital signature; and
applying a secret sharing step to the doubly encrypted version of the digital signature,
wherein the digital signature is fragmented into a plurality of blocks before applying the knapsack algorithm.
2. The computer-implemented method according to claim 1 , wherein the digital message is a hash of a value of a message.
3. The computer-implemented method according to claim 2 , wherein the digital message is a blockchain transaction.
4. The computer-implemented method according to claim 1 , wherein a series used in the knapsack algorithm is a super increasing sequence.
5. The computer-implemented method according to claim 1 , further comprising:
using a Stern series to seed proportions with which the knapsack algorithm is initialised.
6. The computer-implemented method according to claim 5 , wherein the Stern series is a modified Stern series.
7. A computer-implemented system comprising:
a processor; and
memory including executable instructions that, as a result of execution by the processor, cause the system to perform any embodiment of the computer-implemented method as claimed in claim 1 .
8. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by a processor of a computer system, cause the computer system to at least perform an embodiment of the method as claimed in claim 1 .