Skip to content

Commit b1b81a4

Browse files
committed
Move future enhancements to dev guide
1 parent 56f4e1c commit b1b81a4

2 files changed

Lines changed: 56 additions & 56 deletions

File tree

docs/developer-guide.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,3 +409,59 @@ When a client GETs a key share from a hub, the share is in the GET response:
409409
* The client allocates the encryption key from the remote PSRD pool for that hub.
410410

411411
* The client decrypts the share data.
412+
413+
## Future enhancements
414+
415+
In this section we list some potential future enhancements to the DSKE protocol.
416+
417+
### Clients register with a subset of the hubs
418+
419+
In our current implementation and also in the IETF draft, it is required that the client registers
420+
itself with _all_ of the hubs in the network when the client is onboarded.
421+
As the network grows and the number of hubs becomes very large and dynamic, this may become a
422+
problem.
423+
In the future, it would be useful to enhance the protocol so that a client can register itself with
424+
only a subset of the hubs.
425+
This, however, introduces another challenge:
426+
when two clients want to establish a key, they have to agree on a set of hubs that they have in
427+
common that can act as relays.
428+
Or, alternatively, a mechanism could be introduced to do multi-hop relaying of key shares across
429+
a series of multiple hubs.
430+
431+
### Add support for key multicast
432+
433+
The current implementation only allows a master SAE (encryptor) to establish a key with a single
434+
slave SAE (encryptor).
435+
[ETSI GS QKD 014 V1.1.1 (2019-02)](https://www.etsi.org/deliver/etsi_gs/QKD/001_099/014/01.01.01_60/gs_qkd014v010101p.pdf)
436+
allows a master SAE to establish a key with more than one slave SAE;
437+
this is referred to as key multicast.
438+
439+
### Full implementation of ETSI GS QKD 014 API
440+
441+
The repository contains a subset implementation of
442+
[ETSI GS QKD 014 V1.1.1 (2019-02)](https://www.etsi.org/deliver/etsi_gs/QKD/001_099/014/01.01.01_60/gs_qkd014v010101p.pdf)
443+
for the purpose of delivering keys to encryptors.
444+
Since the purpose of this repository is to provide proof-of-concept for the DSKE protocol and
445+
not to have a full standards-compliant implementation of ETSI GS QKD 014, many simplifications have
446+
been made including:
447+
448+
* The ETSI GS QKD 014 API uses HTTP and not HTTPS; it is neither encrypted nor authenticated.
449+
450+
* Each KMS (client node) can only have one local SAE (encryptor) and it is assumed that the
451+
SAE ID is equal to the client node name.
452+
453+
* The `GET` method for the `Get key` interface does not support the query parameter `number`.
454+
Only one key can be retrieved per API call.
455+
456+
* The `POST` method for the `Get key` interface is not supported.
457+
458+
* The `POST` method for the `Get key with key IDs` interface is not supported.
459+
460+
* Error handling is not as robust as it should be.
461+
462+
### Unregistration
463+
464+
When a client starts, it registers itself with all hubs, using the PUT registration API.
465+
Currently, client never unregister.
466+
We can add an unregistration mechanism by adding a DELETE registration API and calling it
467+
when a client shuts down orderly.

docs/protocol-guide.md

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,59 +1006,3 @@ registration.
10061006
Our code doesn't to this.
10071007
Instead, clients are identified by their name which is unique within the scope of the entire
10081008
network.
1009-
1010-
## Future enhancements
1011-
1012-
In this section we list some potential future enhancements to the DSKE protocol.
1013-
1014-
### Clients register with a subset of the hubs
1015-
1016-
In our current implementation and also in the IETF draft, it is required that the client registers
1017-
itself with _all_ of the hubs in the network when the client is onboarded.
1018-
As the network grows and the number of hubs becomes very large and dynamic, this may become a
1019-
problem.
1020-
In the future, it would be useful to enhance the protocol so that a client can register itself with
1021-
only a subset of the hubs.
1022-
This, however, introduces another challenge:
1023-
when two clients want to establish a key, they have to agree on a set of hubs that they have in
1024-
common that can act as relays.
1025-
Or, alternatively, a mechanism could be introduced to do multi-hop relaying of key shares across
1026-
a series of multiple hubs.
1027-
1028-
### Add support for key multicast
1029-
1030-
The current implementation only allows a master SAE (encryptor) to establish a key with a single
1031-
slave SAE (encryptor).
1032-
[ETSI GS QKD 014 V1.1.1 (2019-02)](https://www.etsi.org/deliver/etsi_gs/QKD/001_099/014/01.01.01_60/gs_qkd014v010101p.pdf)
1033-
allows a master SAE to establish a key with more than one slave SAE;
1034-
this is referred to as key multicast.
1035-
1036-
### Full implementation of ETSI GS QKD 014 API
1037-
1038-
The repository contains a subset implementation of
1039-
[ETSI GS QKD 014 V1.1.1 (2019-02)](https://www.etsi.org/deliver/etsi_gs/QKD/001_099/014/01.01.01_60/gs_qkd014v010101p.pdf)
1040-
for the purpose of delivering keys to encryptors.
1041-
Since the purpose of this repository is to provide proof-of-concept for the DSKE protocol and
1042-
not to have a full standards-compliant implementation of ETSI GS QKD 014, many simplifications have
1043-
been made including:
1044-
1045-
* The ETSI GS QKD 014 API uses HTTP and not HTTPS; it is neither encrypted nor authenticated.
1046-
1047-
* Each KMS (client node) can only have one local SAE (encryptor) and it is assumed that the
1048-
SAE ID is equal to the client node name.
1049-
1050-
* The `GET` method for the `Get key` interface does not support the query parameter `number`.
1051-
Only one key can be retrieved per API call.
1052-
1053-
* The `POST` method for the `Get key` interface is not supported.
1054-
1055-
* The `POST` method for the `Get key with key IDs` interface is not supported.
1056-
1057-
* Error handling is not as robust as it should be.
1058-
1059-
### Unregistration
1060-
1061-
When a client starts, it registers itself with all hubs, using the PUT registration API.
1062-
Currently, client never unregister.
1063-
We can add an unregistration mechanism by adding a DELETE registration API and calling it
1064-
when a client shuts down orderly.

0 commit comments

Comments
 (0)