DSKE Poc
Introduction
This is a proof of concept of the DSKE system, the main goal is to demonstrate the algorithm in the DSKE. There are a few assumptions are limitations in this proof-of-concept project.
- This is not a working protocol, this project is just to prove the algorithm concept.
- This project is demonstrating a simple DSKE protocol, which means n = k. It is a (n, n) secret sharing scheme.
- The code assumes that the final key sender (Alice) chooses all her security hubs and all her security hubs include the receiver (Bob) as another client.
- The code assumes that all the random bits transfer successfully. Bob won't abort the protocol in the key construction phase.
- The code assumes every security hub and client won't run out of random bits.
DSKE Main Phases
-
PSKM generation and distribution
the
SecurityHub.register_clientmethod will generate random bits, store it and return the clone of the random bits.Client.register_securityhubmethod will store the random bits clone so that the security hub and the client will have their copy of the random bits. -
Peer identity establishment
For this proof-of-concept project, the code assumes that the sender (Alice) and the receiver (Bob) are registered in the same security hubs.
-
Key agreement
-
Share generation
The proof-of-concept project will use (n, n) secret sharing scheme in a simple DSKE protocol, using all the security hubs the user registered. The final key S can be checked by the method
Client.generate_final_key. -
Share distribution
Each security hub will use the method
SecurityHub.generate_key_instructionto generate a key instruction A (Alice's random bits) XOR B (Bob's random bits). -
Key Reconstruction
Bob can use the method
Client.retrieve_keyto calculate A ^ B ^ B to retrieve A in each share. Bob can reconstruct the final key S by executing XOR in every share in the simple DSKE protocol (n, n) secret sharing scheme.
-
-
Key validation
The proof-of-concept project assumes all the share's key instructions are delivered correctly, the simple DSKE protocol with (n, n) secret sharing scheme won't be abort in this proof-of-concept project.
Getting Started
cargo run