Overview
This document specifies the Account Creation and Distributed Key Generation (DKG) ceremony - the registration protocol that establishes the preconditions for every subsequent operation in the Tide architecture. The ceremony generates a user's Consumer Master Key (CMK) and PRISM verification secret via Nested Shamir Secret Sharing (Hall, J. L., Hertzog, Y., et al., 2023), distributing them as Shamir shards across a 20-node ORK swarm with a 14-of-20 threshold. There is no trusted dealer. At no point does any entity compute, possess, or transmit the complete CMK or PRISM secret.
The protocol executes in eight phases across two sequential DKG calls (
GenShard, SetShard), a test authentication, a vendor IAM registration, and a two-phase commit to the mimDB (Mimir Database - The Fabric's synced repository). The resulting Accountable Group Signature proves correct generation without revealing secret material.While this article focuses on CMK and PRISM generation during user self-registration, the identical Nested Shamir DKG construction generates VVK and CVK keys. The Authority Layer manages all resulting shards with strict key-type agnosticism.
Loading diagram...
Preconditions
| Condition | Detail |
|---|---|
| User | Has initiated a login/registration request from the vendor application. Provides username, password, and recovery email addresses. |
| TideCloak | Possesses a valid gVVK, a valid VRK (for current payment cycle), and SignedSettings (registration policies, callback URLs, self-registration option, Ragnarok option) signed by gVVK. |
| Fabric | Sufficient healthy, staked ORK nodes available to form a 20-node swarm. mimDB (Mimir Database - The Fabric's synced repository) registry operational. |
| ORK nodes | Each possesses pre-established private keys aesKey_i, mSecORK_i, and mgORK_i. |
Protocol Flow
Phase 0: OIDC Redirect and SWE Initialization
The vendor site requests an OIDC authorization code. TideCloak generates a voucher via
VRK and redirects to a preferred Home-ORK, which serves the Secure Web Enclave (SWE). The SWE verifies SignedSettings are signed by gVVK.The user provides their username and password. The SWE computes and generates a non-extractable session key pair via WebCrypto (
extractable: false).Phase 1: Username Reservation
Loading diagram...
The proximity-based ordering is deterministic and globally consistent. The SWE selects the reservation with the lowest proximity score (most proximate) as the authorization token (
auth) for subsequent phases. Reservations are valid for 30 seconds.Phase 2: Distributed Key Generation - GenShard
Loading diagram...
The SWE sends a single blinded multiplier
gBlurPass - the password-derived point obfuscated by a random scalar . Each ORK applies (TOPRF) its PRISM sub-secret to this blinded point, enabling the SWE to derive the aggregate PRISM verifier base gPRISMAuth without any ORK learning the password.Note on identity derivation: The vendor-specific identity (
VUID, gCMKAuth) is not derived during key generation. These values are produced during the test round (Phase 4) via the voucher-based identity recovery mechanism specified in Protocol: CMK Authentication. This architectural separation ensures that identity binding is coupled to the authentication ceremony, not to key generation - making the DKG construction purely key-type agnostic.Phase 3: Distributed Key Generation - SetShard
Loading diagram...
Each ORK's final shards (
CMKY, PRISMY) are the sums of all received peer sub-shards plus its own retained sub-shard. The complete CMK and PRISM secrets were never computed by any entity.For ORKs that did not respond during GenShard, participating ORKs package their intended shards as SafeKeep records - encrypted under the pairwise ECDH key with the absent ORK's public key. These records are written during Commit and enable future shard retrieval via Protocol: Key Healing.
Phase 4: Test round
The SWE executes a full BYOiD authentication ceremony (as specified in Protocol: CMK Authentication) of the uncommitted state records. This serves two purposes:
- Functional verification. The PRISM evaluation and double-blind threshold signature prove the DKG output is mathematically sound end-to-end.
- Identity derivation. The BYOiD ceremony's voucher-based identity recovery produces
gUserCMK- the user's anonymised CMK public key projected through the vendor's identity space. From this, the SWE derivesVUID(vendor-specific user identifier) andgCMKAuth(vendor-specific user authentication public key) as specified in the CMK Authentication protocol (Steps 2.2-2.3). These values are required for Phase 6.
Phase 5: Commit
Loading diagram...
The mimDB independently verifies the Accountable Group Signature before accepting the write. Any party can subsequently audit the mimDB to verify that generation was performed correctly by the declared swarm, without access to private key material.
Loading diagram...
Phase 6: IAM Registration
The TideCloak adapter on the vendor's callback URL registers the user with the TideCloak's instance, providing
VUID and gCMKAuth derived in Phase 4. TideCloak creates the user profile and assigns default roles. TideCloak forwards the role assignments to the VVK ORK swarm, which validates the user's blind signature, confirms registration policies, and certifies the user by producing a threshold signature over the assignment proof. A resulting PKCE verifies the full chain.Phase 7: OIDC Completion
The vendor exchanges the code generated in Phase 6 for the final JWT.
Algorithms
Algorithm 1
Algorithm 2
Algorithm 3
Algorithm 4
Notation Reference
| Symbol | Description |
|---|---|
| Generator point on Curve25519 / Edwards25519 twisted Edwards for signatures | |
| Scalar-point multiplication | |
| SHA-256 unless stated otherwise | |
| Diffie-Hellman: | |
| Hash-to-point (Elligator 2 on Curve25519) | |
| User identifier: | |
| , | ORK 's locally generated random sub-secrets for the DKG |
| , | ORK 's public key contributions (, ) |
| ORK 's Shamir sub-shard of destined for ORK | |
| , | ORK 's final combined Shamir shards (sum of all received sub-shards + own) |
| , | Aggregate public keys (sum of all contributions). where is the joint CMK |
| Per-ORK PRISM verifier: | |
| ORK 's long-term private key: | |
| Current key's Accountable Group Signature digest of participating ORKS, as taken from the Home ORK's TWELVE-MAP response | |
| ORK 's long-term public key: | |
| ORK 's symmetric key: | |
| X25519-based El-Gamal encryption of message with public key | |
| Pairwise shared secret: | |
| AES256 decryption of message with key | |
| SWE's session public key (non-extractable via WebCrypto) | |
| Swarm size (20) | |
| Threshold (14) | |
| Count of ORKs that responded () | |
| , | Vendor long-term and ephemeral payment/session public keys |
| Blinded password point: | |
| Bitwise array of ORKs that participated in the original ceremony |
Note:
VUID, gCMKAuth, and CMKmul are derived during the test sign-in (Phase 4) via the voucher-based identity recovery mechanism. See Protocol: CMK Authentication, Steps 2.2-2.3.Actors and Trust Assumptions
| Actor | Description | Trust Assumption |
|---|---|---|
| User | Provides username, password, optional recovery emails | - |
| Vendor Site | Initiates OIDC redirect | Potentially compromised |
| Secure Web Enclave (SWE) | Browser-based cryptographic agent. Orchestrates ceremony, blinds inputs, routes encrypted shards, aggregates results. SRI-verifiable. | Potentially adversarial. Cannot extract key material from ORKs or force valid DKG for a different user. |
| Home-ORK | Entry point. Provides ORK directory, checks username availability. | No elevated trust. Public metadata only. |
| CMK ORKs (swarm, ) | Independently operated nodes that compute and hold CMK + PRISM shards. | Up to 13 may be actively malicious or colluding. Mostly operated by different organizations. |
| Reservation ORKs | Temporarily reserve username (for 30s). Determined by proximity sort. | Short-lived reservation authority. Not necessarily in the CMK swarm. |
| TideCloak | Vendor IAM server. Creates user, stores VUID + gCMKAuth. | Potentially compromised. No private key material. |
| VVK ORKs | Separate swarm for vendor signing key. Signs user assignment proof. | Same as CMK ORKs. |
| mimDB | "Mimir" Database - Append-only Fabric synced registry. Stores committed records, Accountable Group Signatures, TWELVE-MAP entries. | Potentially compromised. All records cryptographically verifiable. |
| TWELVE-MAP | Tide Wide Enumerated Ledger of Verifiable Entries - Mapping Authoritative Pointers is the self-verifying directory service on mimDB mapping key identifiers to ORK swarms. | Each entry includes a ZK proof attesting to its authenticity against the master registry. |
Layer Traversal
| Layer | How the Protocol Engages It |
|---|---|
| Legitimacy | ECDH session establishment, voucher validation for reservation and GenShard, SRI verification of SWE. |
| Authority | Nested Shamir DKG: shard generation, splitting, distribution, aggregation. ORKs store CMK and PRISM shards identically - key-type agnostic. |
| Agency | Blinded multiplication (purpose-specific MPC). Test sign-in exercises full Agency Layer (PRISM + double-blind signature + voucher-based identity recovery). |
| Settlement | Vouchers fund reservation, GenShard, and Commit. During test sign-in, voucher-derived values (Ytag, qPub, uDeObf) enable identity derivation. |
Security Properties
| Property | Mechanism | Assumption |
|---|---|---|
| "Born Fragmented" DKG | Nested Shamir: each ORK generates independent randomness. The joint key is never computed by any entity. | Threshold (< 14 compromised) |
| Fraud detection | Each ORK verifies Zero-Knowledge proofs () against all peers' declared contributions before accepting shards. | DLP hardness |
| Accountable Generation proof | Composite group signature over PermissionMessage, verified against . Written to mimDB. Auditable by any party. | DLP. Registry integrity. |
| Atomicity (two-phase commit) | All ORK state held as Uncommitted until SWE provides aggregate signature and mimDB accepts. Uncommitted state auto-purged after 30 minutes. | - |
| Transport-independent security | Peer shards encrypted via pairwise ECDH. SWE responses encrypted via session keys. No reliance on TLS. | Secure RNG for ECDH |
| Malicious SWE containment | SWE routes encrypted shards but cannot read them (ECDH between ORK pairs). Cannot force generation for arbitrary uid without valid reservation signature. | AES-256 strength |
| Fault tolerance | Only (14) ORKs required. SafeKeep records enable absent ORKs to retrieve shards later. | - |
| SafeKeep forward security | Records encrypted under pairwise ECDH with absent ORK's public key. Signed by originating ORK. mimDB verifies signature before storing. | AES-256. ORK key integrity. |
| Race condition prevention | Deterministic proximity sort assigns reservation to 5 closest ORKs. 30-second signed reservations. | Uniform hash distribution |
| Password blinding | ORKs compute without learning the password or the unblinded point. | Blinding scalar randomness |
| Identity derivation separation | VUID / gCMKAuth derived during authentication (Phase 4), not during DKG. DKG is purely key-type agnostic. | Voucher mechanism integrity |
Call Summary
| Call | Direction | Purpose |
|---|---|---|
findReservers | SWE → Home-ORK | Check username availability, retrieve proximity-sorted ORK list |
requestVouchers | SWE → TideCloak | Obtain authorization vouchers for reservation |
reserveUserID | SWE → 5 Reservation ORKs | Request signed, short-lived username reservation |
GenCMKShard | SWE → all ORKs | Initiate DKG. Distribute blinded PRISM multiplier. ORKs execute Algorithm 1. |
SetCMKShard | SWE → ORKs | Distribute encrypted peer shards. ORKs execute Algorithms 2-4. Store Uncommitted. |
Convert + Authenticate | SWE → ORKs | Test sign-in: BYOiD ceremony on uncommitted state. Also derives VUID, gCMKAuth. |
SignProof | TideCloak → VVK ORKs | VVK swarm signs user assignment proof |
SignJWT | TideCloak → VVK ORKs | Test JWT generation to verify VVK chain |
Commit | SWE → ORKs | Submit aggregate signature. Transition Uncommitted → Committed. mimDB write. |
RegisterNewUser | Vendor → TideCloak | Register VUID and gCMKAuth with vendor IAM |
References
- Hall, J. L., Hertzog, Y., et al. (2023). Manifesting Unobtainable Secrets: Threshold Elliptic Curve Key Generation using Nested Shamir Secret Sharing. arXiv:2309.00915. Presented at AustMS 2021.
- Wang, F., Hertzog, Y., et al. (2023). Towards Zero Trust Authentication in Critical Industrial Infrastructures with PRISM. ACNS 2023 Workshops, LNCS 13907. Springer, Cham.
- Tide Developer Documentation: docs.tidecloak.com
Related Protocol Articles:
- Protocol: CMK Authentication - The authentication ceremony utilizing the keys established here. Specifies the voucher-based identity recovery that derives VUID and gCMKAuth.
- Protocol: Key Healing - System-initiated mechanism for absent ORKs to retrieve SafeKeep records generated during this protocol.
- Protocol: PRISM Password Change - Rotation of the PRISM verification secret established here.
- Protocol: Decentralized Account Recovery - Uses the recovery email addresses distributed during this protocol.
- Protocol: Ragnarök - Verifiable off-boarding and destruction of keys created here.