- Boxes
- definitions
- Ellipses
- theorems and lemmas
- Blue border
- the statement of this result is ready to be formalized; all prerequisites are done
- Orange border
- the statement of this result is not ready to be formalized; the blueprint needs more work
- Blue background
- the proof of this result is ready to be formalized; all prerequisites are done
- Green border
- the statement of this result is formalized
- Green background
- the proof of this result is formalized
- Dark green background
- the proof of this result and all its ancestors are formalized
- Dark green border
- this is in Mathlib
AMATELUS relies on the following cryptographic security assumptions:
Collision-resistant hash: SHA3-512 provides 128-bit security against quantum adversaries
Unforgeable signatures: Dilithium2 provides 128-bit security against quantum adversaries
ZKP soundness: Standard zero-knowledge properties (completeness, soundness, zero-knowledge)
The did:amt method is a Decentralized Identifier (DID) that is algorithmically generated and resolved without reliance on any external Verifiable Data Registry (VDR) such as a blockchain. This method is designed for high-stakes environments (public administration, government) where data integrity and operational robustness are paramount.
Replay attack prevention (preventing legitimate users from reusing the same ZKP) is NOT a responsibility of AMATELUS protocol. This is an application-layer responsibility.
Important distinction:
Impersonation attacks (attacker with different secret key): PREVENTED by AMATELUS through DIDComm
Replay attacks (legitimate user reusing same ZKP): NOT handled by AMATELUS. Applications requiring single-use semantics must implement nonce mechanisms.
Applications that require ZKP single-use guarantees should implement nonce handling at the application layer:
Generate unique session nonces for each verification
Record and verify nonce freshness (checking that the nonce has not been used before)
Maintain nonce history in application database
Applications where ZKP reuse is acceptable (e.g., age verification, permission checks, one-time access grants) do not require additional replay prevention mechanisms.
A did:amt identifier is generated locally on the owner’s device without network registration.
The generation process consists of:
Generate Ed25519 key pair
Prepare information pair: AMT Version Number + Public Key
Select DID Document template corresponding to AMT version
Derive DID through local cryptographic operations
The resolution of a did:amt is completed locally by a verifier.
No external Verifiable Data Registry (blockchain, centralized service) or network calls are required. Verifier receives the [AMT Version Number, Public Key] pair from the owner and executes the same local derivation steps for verification.
Impersonation attacks (attacker with different secret key) are cryptographically prevented through DIDComm.
Mechanism:
Verifier receives ZKP along with sender’s public key via DIDComm (senderDoc)
ZKP must be cryptographically signed with secret key corresponding to this public key
If attacker uses different secret key, the signature verification fails
Attacker cannot reuse legitimate ZKP with different SK (cryptographically impossible)
Security guarantee: Impersonation attacks are prevented by DIDComm alone.
Privacy is maintained despite public key transmission via DIDComm due to:
Ephemeral Communication DIDs: Each session uses distinct DIDs with different key pairs
Different services, different keys: User generates new keys for each service
Cryptographic unlinkability: Public keys from different sessions cannot be linked (requires \(2^{128}\) quantum operations to link, assuming quantum-resistant hash functions)
Service-specific communication DIDs: Verifier knows only the communication DID, not the user’s persistent identity DID
Result: While DIDComm requires public key disclosure for impersonation prevention, the use of ephemeral DIDs with distinct key pairs per service ensures cross-service unlinkability and privacy.
DIDComm establishes cryptographic certainty between ZKP and secret key correspondence.
By requiring explicit transmission of DIDDocument (containing public key), the protocol ensures:
Verifier definitively knows which public key corresponds to the ZKP
ZKP is bound to exactly one secret key (the corresponding private key)
Any ZKP signed with different secret key will fail verification
Result: Cryptographic correspondence is certain, making impersonation impossible.