threshold-elgamal 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/js/threshold-elgamal)
|
|
4
4
|
|
|
5
|
-
This project is a collection of functions implementing
|
|
5
|
+
This project is a collection of functions implementing selected ElGamal cryptographic algorithms in TypeScript on top of native JavaScript BigInteger. Its core includes ElGamal functions for key generation, encryption, and decryption. It is extended with support for threshold encryption.
|
|
6
6
|
|
|
7
7
|
**WIP: Early version. Thresholds when set below the number of scheme participants don't behave as expected.**
|
|
8
8
|
However, it works correctly with `threshold == participantsCount`, which is its main use case for myself for now.
|
|
@@ -38,12 +38,14 @@ It has no other production dependencies apart from these two. They could be inli
|
|
|
38
38
|
- Hashing messages
|
|
39
39
|
- Support for additive property of exponents, not just native ElGamal multiplication
|
|
40
40
|
- consider using {} function params for better readability and consistency in param naming
|
|
41
|
+
- ZK proofs
|
|
42
|
+
- Validation
|
|
41
43
|
|
|
42
44
|
## Installation
|
|
43
45
|
|
|
44
46
|
To use it in your project, install it first:
|
|
45
47
|
|
|
46
|
-
`npm install threshold-elgamal`
|
|
48
|
+
`npm install --save threshold-elgamal`
|
|
47
49
|
|
|
48
50
|
## Examples
|
|
49
51
|
|
|
@@ -173,7 +175,7 @@ const thresholdDecryptedMessage = thresholdDecrypt(
|
|
|
173
175
|
console.log(thresholdDecryptedMessage); // 42
|
|
174
176
|
```
|
|
175
177
|
|
|
176
|
-
### Voting and
|
|
178
|
+
### Voting and multiplication with threshold scheme for 3 participants
|
|
177
179
|
|
|
178
180
|
This example demonstrates a 1 to 10 voting scenario where 3 participants cast encrypted votes on two options. The encrypted votes are aggregated, multiplied with each other and then require all three participants to decrypt the final tally. The decryption does not work on individual votes, meaning that it is impossible to decrypt their votes even after decrypting the result.
|
|
179
181
|
|