-
Notifications
You must be signed in to change notification settings - Fork 1
Home
In this library, I have implemented the most cited secret sharing algorithms in C++/cli (managed C++).
You can use this library in .NET based applications.
Currently, three secret sharing schemes, namely Shamir, Benaloh-Leichter Generalized Access Structure, and Schoenmakers PVSS are implemented.
Also, as part of Schoenmakers implementation, we have implemented Chaum-Peterson non-interactive zero-knowledge protocol.
All number theory computations are carried out using the efficient NTL (version 7.0) library.
Secret sharing is a technique in which a dealer securely divides a secret among a group of players (participants). Later, the secret can only be reconstructed if an authentic subset of participants agree on providing their possessed shares, otherwise it remains uncomputable. Since the seminal work of Shamir and Blakley, many secret sharing schemes have been designed. We roughly categorize secret sharing schemes into three subcategories:
-
Threshold schemes. This group of schemes divide a secret among n parties, and enable k,
0< k <=n
, of them to compute the secret. Also, they are the most optimal due to the efficient execution time and short share length. However, these schemes are not so flexible in terms of handling more complex use cases. -
Generalized access structures. These schemes allow for full customization in determining authentic sets. For example, one can take into account parties' roles and/or department in the share distribution and secret reconstruction. A particular business use-case may require shares from at least one member of department_A and one member of department_B to recover the secret. Hence, they are flexible enough to handle all complex business requirements.
-
Verifiable schemes. Beside typical sharing and reconstruction operations, these schemes provide a mathematical guarantee that the shares are consistent. In exact words, players and the dealer can verify the integrity of the shares on demand.
Benaloh-leichter secret sharing
Schoenmakers verifiable secret sharing
To be added!
You can cite Secret-Sharing-Lib using the following Bibtex entry:
@INPROCEEDINGS{ahmadvandSOP16,
author = {Mohsen Ahmadvand and
Antoine Scemama and
Mart{\'{\i}}n Ochoa and
Alexander Pretschner},
title = {Enhancing Operation Security using Secret Sharing},
booktitle = {Proceedings of the 13th International Joint Conference on e-Business
and Telecommunications {(ICETE} 2016) - Volume 4: SECRYPT, Lisbon,
Portugal, July 26-28, 2016.},
pages = {446--451},
year = {2016},
doi = {10.5220/0005992104460451},
}