https://github.com/sjefvanleeuwen/virtual-society-did
self sovereign identity through decentralized identifiers
https://github.com/sjefvanleeuwen/virtual-society-did
decentralized-identity did post-quantum
Last synced: 2 months ago
JSON representation
self sovereign identity through decentralized identifiers
- Host: GitHub
- URL: https://github.com/sjefvanleeuwen/virtual-society-did
- Owner: sjefvanleeuwen
- License: gpl-3.0
- Created: 2018-04-12T14:05:44.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T10:26:19.000Z (almost 3 years ago)
- Last Synced: 2024-10-05T08:41:05.296Z (12 months ago)
- Topics: decentralized-identity, did, post-quantum
- Language: C#
- Homepage:
- Size: 24 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
# Decentralized Identities (Post-Quantum)
This project contains the model for Decentralized identities using the DID specification. https://www.w3.org/TR/did-core/
## Status
Currently we support the minimal DID specification for a self managed identity. It is not meant for
production.## Quantum Proof key infrastructure
VirtualSociety follows the open-quantum-safe workgroup and is informed by the NIST Post-Quantum Cryptography Standardization project.
NIST can be found at: https://csrc.nist.gov/Projects/Post-Quantum-Cryptography/Post-Quantum-Cryptography-Standardization
## Supported Algorithms
### Key encapsulation mechanisms
```
BIKE: BIKE1-L1-CPA, BIKE1-L3-CPA, BIKE1-L1-FO, BIKE1-L3-FO
Classic McEliece: Classic-McEliece-348864†, Classic-McEliece-348864f†, Classic-McEliece-460896†, Classic-McEliece-460896f†, Classic-McEliece-6688128†, Classic-McEliece-6688128f†, Classic-McEliece-6960119†, Classic-McEliece-6960119f†, Classic-McEliece-8192128†, Classic-McEliece-8192128f†
FrodoKEM: FrodoKEM-640-AES, FrodoKEM-640-SHAKE, FrodoKEM-976-AES, FrodoKEM-976-SHAKE, FrodoKEM-1344-AES, FrodoKEM-1344-SHAKE
Kyber: Kyber512, Kyber768, Kyber1024, Kyber512-90s, Kyber768-90s, Kyber1024-90s
LEDAcrypt: LEDAcryptKEM-LT12, LEDAcryptKEM-LT32, LEDAcryptKEM-LT52†
NewHope: NewHope-512-CCA, NewHope-1024-CCA
NTRU: NTRU-HPS-2048-509, NTRU-HPS-2048-677, NTRU-HPS-4096-821, NTRU-HRSS-701
SABER: LightSaber-KEM, Saber-KEM, FireSaber-KEM
SIKE: SIDH-p434, SIDH-p503, SIDH-p610, SIDH-p751, SIKE-p434, SIKE-p503, SIKE-p610, SIKE-p751, SIDH-p434-compressed, SIDH-p503-compressed, SIDH-p610-compressed, SIDH-p751-compressed, SIKE-p434-compressed, SIKE-p503-compressed, SIKE-p610-compressed, SIKE-p751-compressed
ThreeBears: BabyBearEphem, BabyBear, MamaBearEphem, MamaBear, PapaBearEphem, PapaBear
```### Signature Schemes
```
Dilithium: Dilithium2, Dilithium3, Dilithium4
Falcon: Falcon-512, Falcon-1024
MQDSS: MQDSS-31-48, MQDSS-31-64
Picnic: Picnic-L1-FS, Picnic-L1-UR, Picnic-L3-FS, Picnic-L3-UR, Picnic-L5-FS, Picnic-L5-UR, Picnic2-L1-FS, Picnic2-L3-FS, Picnic2-L5-FS
qTesla: qTesla-p-I, qTesla-p-III
Rainbow: Rainbow-Ia-Classic, Rainbow-Ia-Cyclic, Rainbow-Ia-Cyclic-Compressed, Rainbow-IIIc-Classic†, Rainbow-IIIc-Cyclic†, Rainbow-IIIc-Cyclic-Compressed†, Rainbow-Vc-Classic†, Rainbow-Vc-Cyclic†, Rainbow-Vc-Cyclic-Compressed†
SPHINCS+-Haraka: SPHINCS+-Haraka-128f-robust, SPHINCS+-Haraka-128f-simple, SPHINCS+-Haraka-128s-robust, SPHINCS+-Haraka-128s-simple, SPHINCS+-Haraka-192f-robust, SPHINCS+-Haraka-192f-simple, SPHINCS+-Haraka-192s-robust, SPHINCS+-Haraka-192s-simple, SPHINCS+-Haraka-256f-robust, SPHINCS+-Haraka-256f-simple, SPHINCS+-Haraka-256s-robust, SPHINCS+-Haraka-256s-simple
SPHINCS+-SHA256: SPHINCS+-SHA256-128f-robust, SPHINCS+-SHA256-128f-simple, SPHINCS+-SHA256-128s-robust, SPHINCS+-SHA256-128s-simple, SPHINCS+-SHA256-192f-robust, SPHINCS+-SHA256-192f-simple, SPHINCS+-SHA256-192s-robust, SPHINCS+-SHA256-192s-simple, SPHINCS+-SHA256-256f-robust, SPHINCS+-SHA256-256f-simple, SPHINCS+-SHA256-256s-robust, SPHINCS+-SHA256-256s-simple
SPHINCS+-SHAKE256: SPHINCS+-SHAKE256-128f-robust, SPHINCS+-SHAKE256-128f-simple, SPHINCS+-SHAKE256-128s-robust, SPHINCS+-SHAKE256-128s-simple, SPHINCS+-SHAKE256-192f-robust, SPHINCS+-SHAKE256-192f-simple, SPHINCS+-SHAKE256-192s-robust, SPHINCS+-SHAKE256-192s-simple, SPHINCS+-SHAKE256-256f-robust, SPHINCS+-SHAKE256-256f-simple, SPHINCS+-SHAKE256-256s-robust, SPHINCS+-SHAKE256-256s-simple
```## Method-Specific DID URL Parameters
DID Url parameters as described under paragraph 5.2.3 https://www.w3.org/TR/did-core/#method-specific-did-url-parameters in the W3C specification are implemented with preference to
**DID method namespaces** over method-specific parameters within the **did:vsoc** namespace.
Unique Identifiers are created by implementing the Universally Unique Identifier (UUID) as defined by [RFC4122] https://tools.ietf.org/html/rfc4122.
in a 22 character alphanumeric format (short uuid).The following is prefered:
*example*
```
did:vsoc:consensus:vote:Zy8MVKupFES9NpmZ9TiHcw
```Over
*example*
```
did:vsoc:Zy8MVKupFES9NpmZ9TiHcw;consensus=vote
```### Minimal
*example*
```
did:vsoc:s1Io8tx8TkmaepcaFgAmDA
```### Consensus method namespaces
#### Blocking
For groups that require unanimity and use a core set of procedures to reach unified consnesus through a blocking procedure.
*example*
```
did:vsoc:consensus:block:At5KrBz6oU-Q7zQ6ffJ52Q
```#### Vote
For groups that require majority voting principle and use a core set of voting procedures to reach that majority.
*example*
```
did:vsoc:consensus:vote:cWuKnlrY8UWHSVlWhoXFew
```### Algorithmic method namespaces
For code generated for exascale computing (HPC) purposes the method namespace is as follows:
*example*
```
did:vsoc:gen:actor:y5CZFpo2d02O0utSn6Qhxw
```Specifically these are virtual actors running on the Morstead implementation and are code generated and signed from DSL inputs.
The code also bears the mark refering its Did.```CSHARP
/*
/\ _____ _____ _____ _____ _____ _____ _____ ____
_( )_ | | | __ | __|_ _| __| _ | \
( `==' ) | | | | | | -|__ | | | | __| | | |
'\/` |_|_|_|_____|__|__|_____| |_| |_____|__|__|____/Generated Virtual Actor from rule DSL.
Copyright© {DateTime.Now.Year} Virtual Society under MIT license
Grain Generated at: {DateTime.UtcNow}
did:vsoc:gen:actor:Zy8MVKupFES9NpmZ9TiHcw
*/
```For more information (in dutch) about morstead please visit: https://github.com/sjefvanleeuwen/virtual-society-urukagina/blob/master/morstead/Readme.md