44 lines
2.2 KiB
Markdown
44 lines
2.2 KiB
Markdown
# 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.
|
|
|
|
1. This is not a working protocol, this project is just to prove the algorithm concept.
|
|
2. This project is demonstrating a simple DSKE protocol, which means n = k. It is a (n, n) secret sharing scheme.
|
|
3. 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.
|
|
4. The code assumes that all the random bits transfer successfully. Bob won't abort the protocol in the key construction phase.
|
|
5. The code assumes every security hub and client won't run out of random bits.
|
|
|
|
## DSKE Main Phases
|
|
|
|
1. PSKM generation and distribution
|
|
|
|
the `SecurityHub.register_client` method will generate random bits, store it and return the clone of the random bits. `Client.register_securityhub` method will store the random bits clone so that the security hub and the client will have their copy of the random bits.
|
|
|
|
2. 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.
|
|
|
|
3. Key agreement
|
|
|
|
1. 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`.
|
|
|
|
2. Share distribution
|
|
|
|
Each security hub will use the method `SecurityHub.generate_key_instruction` to generate a key instruction A (Alice's random bits) XOR B (Bob's random bits).
|
|
|
|
3. Key Reconstruction
|
|
|
|
Bob can use the method `Client.retrieve_key` to 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.
|
|
|
|
4. 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
|
|
```bash
|
|
cargo run
|
|
``` |