Reference scenarios
Target audience: Solution Architects, Enterprise Architects, CISOs, Business Stakeholders
Reading time: 20 minutes
Prerequisites: Entity reference, Relationships and runtime flow
Introduction
The deployment organization model is general by design. The same set of twelve entities composes solutions for problems that, on the surface, appear unrelated: governing card production with multiple embossing providers across multiple card networks, controlling cryptographic operations performed by an outsourced collections processor, and operating cryptography across multiple regulatory jurisdictions.
This page works through three reference scenarios. Each scenario shows the conceptual modeling — applications, contexts, actors, assets, grants, constraints — that materializes the solution. The scenarios are deliberately representative of common enterprise problems, drawn from real industry patterns.
| Scenario | Industry pattern | Key challenge |
|---|---|---|
| Card issuance with multiple networks and providers | Banking — payment cards | Three card networks, two physical embossing vendors, bidirectional file exchange, independent keys per network and direction |
| BPO collections processing | Banking — outsourced operations | A BPO operates on customer data without ever receiving cleartext bulk files |
| Multi-jurisdiction regulatory reporting | Multinational enterprise | Cryptographic operations governed by different regulatory regimes per jurisdiction |
Scenario 1: Card issuance with multiple networks and providers
Context
A bank issues physical cards across three card networks — VISA, Mastercard, and AMEX. Card production is handled by two embossing vendors:
- Provider A produces VISA and Mastercard cards.
- Provider B produces AMEX cards exclusively.
The exchange is bidirectional: the bank sends each provider an encrypted batch file with the cardholder data for that production run; the provider processes the batch, then sends back an encrypted result file confirming production outcomes per card. The bank decrypts the results to reconcile the program.
In a traditional model, each provider would hold a pre-shared key to encrypt and decrypt data independently. This creates compounded problems across three networks and two vendors:
- Providers hold key material outside the bank's control domain
- A compromise at Provider A exposes VISA data, MC data, or both — blast radius is undefined
- Revocation requires bilateral key destruction with no guarantee of completion
- The bank cannot enforce per-network or time-window restrictions cryptographically
- Audit depends entirely on what providers self-report
- The bidirectional flow (provider encrypts results) means the bank must also share a key for inbound data
Modeling with ANKASecure©
The model replaces key sharing with capability grants. Providers never receive key material. They invoke the bank's control plane to decrypt inbound data and to encrypt outbound results. Each card network has independent keys per direction; the physical vendor identity is captured in the actor, not the key.
flowchart TB
subgraph BANK["🏦 Bank — Tenant: Card Operations"]
APP["Application: Card Issuance"]
subgraph PA_SCOPE["Provider A — VISA + MC"]
direction LR
subgraph VOUT["Embossing — VISA (OUTBOUND)"]
direction TB
PAACT["provider-a-embossing-actor"]
VDGRANT["Grant: DECRYPT<br/>embossing-key-visa<br/>+ window + usage cap + rate"]
VASSET["Asset: embossing-key-visa"]
PAACT --> VDGRANT --> VASSET
end
subgraph VIN["Embossing Results — VISA (INBOUND)"]
direction TB
PAACT2["provider-a-embossing-actor"]
VEGRANT["Grant: ENCRYPT<br/>embossing-results-key-visa<br/>+ window + rate"]
VRASSET["Asset: embossing-results-key-visa"]
PAACT2 --> VEGRANT --> VRASSET
end
subgraph MOUT["Embossing — MC (OUTBOUND)"]
direction TB
PAACT3["provider-a-embossing-actor"]
MDGRANT["Grant: DECRYPT<br/>embossing-key-mc<br/>+ window + usage cap + rate"]
MASSET["Asset: embossing-key-mc"]
PAACT3 --> MDGRANT --> MASSET
end
subgraph MIN["Embossing Results — MC (INBOUND)"]
direction TB
PAACT4["provider-a-embossing-actor"]
MEGRANT["Grant: ENCRYPT<br/>embossing-results-key-mc<br/>+ window + rate"]
MRASSET["Asset: embossing-results-key-mc"]
PAACT4 --> MEGRANT --> MRASSET
end
end
subgraph PB_SCOPE["Provider B — AMEX"]
direction LR
subgraph AOUT["Embossing — AMEX (OUTBOUND)"]
direction TB
PBACT["provider-b-embossing-actor"]
ADGRANT["Grant: DECRYPT<br/>embossing-key-amex<br/>+ window + usage cap + rate"]
AASSET["Asset: embossing-key-amex"]
PBACT --> ADGRANT --> AASSET
end
subgraph AIN["Embossing Results — AMEX (INBOUND)"]
direction TB
PBACT2["provider-b-embossing-actor"]
AEGRANT["Grant: ENCRYPT<br/>embossing-results-key-amex<br/>+ window + rate"]
ARASSET["Asset: embossing-results-key-amex"]
PBACT2 --> AEGRANT --> ARASSET
end
end
APP --> PA_SCOPE
APP --> PB_SCOPE
end
PROVIDA["🏢 Provider A system"]
PROVIDB["🏢 Provider B system"]
PROVIDA -.->|"invokes decrypt (VISA, MC)"| VDGRANT
PROVIDA -.->|"invokes decrypt (MC)"| MDGRANT
PROVIDA -.->|"invokes encrypt results (VISA)"| VEGRANT
PROVIDA -.->|"invokes encrypt results (MC)"| MEGRANT
PROVIDB -.->|"invokes decrypt (AMEX)"| ADGRANT
PROVIDB -.->|"invokes encrypt results (AMEX)"| AEGRANT
style BANK fill:#e8f4f8,stroke:#1a5276,stroke-width:2px
style APP fill:#d5f5e3,stroke:#1e8449
style PA_SCOPE fill:#d6eaf8,stroke:#2980b9
style PB_SCOPE fill:#fdebd0,stroke:#d68910
style VOUT fill:#fff,stroke:#2980b9
style VIN fill:#fff,stroke:#2980b9,stroke-dasharray:4 4
style MOUT fill:#fff,stroke:#27ae60
style MIN fill:#fff,stroke:#27ae60,stroke-dasharray:4 4
style AOUT fill:#fff,stroke:#d68910
style AIN fill:#fff,stroke:#d68910,stroke-dasharray:4 4
style PROVIDA fill:#fadbd8,stroke:#c0392b
style PROVIDB fill:#fadbd8,stroke:#c0392b Solid borders = outbound contexts (bank encrypts, provider decrypts). Dashed borders = inbound contexts (provider encrypts, bank decrypts).
Entity composition
Application
Card Issuance— the business domain that owns the card production process across all three networks
Exchange Contexts
| Context | Direction | Counterparty | Purpose |
|---|---|---|---|
Embossing — VISA | OUTBOUND | Provider A | Bank sends encrypted cardholder data; Provider A decrypts to produce cards |
Embossing — MC | OUTBOUND | Provider A | Same flow for Mastercard; independent governance from VISA |
Embossing — AMEX | OUTBOUND | Provider B | Bank sends AMEX data to a different vendor |
Embossing Results — VISA | INBOUND | Provider A | Provider A sends encrypted confirmation; bank decrypts |
Embossing Results — MC | INBOUND | Provider A | Mastercard result file from Provider A |
Embossing Results — AMEX | INBOUND | Provider B | AMEX result file from Provider B |
Cryptographic Actors
provider-a-embossing-actor: belongs to Card Issuance, represents Provider A's system; typeTHIRD_PARTY. Holds four grants (VISA + MC, both directions).provider-b-embossing-actor: belongs to Card Issuance, represents Provider B's system; typeTHIRD_PARTY. Holds two grants (AMEX, both directions).card-visa-batch: internal batch job for VISA; typeSERVICE. Encrypts outbound + decrypts inbound.card-mc-batch: internal batch job for MC; typeSERVICE.card-amex-batch: internal batch job for AMEX; typeSERVICE.
Cryptographic Assets
| KID | Direction | Protects |
|---|---|---|
embossing-key-visa | Outbound | Cardholder data in VISA-bound batches |
embossing-key-mc | Outbound | Cardholder data in MC-bound batches |
embossing-key-amex | Outbound | Cardholder data in AMEX-bound batches |
embossing-results-key-visa | Inbound | VISA production confirmation files |
embossing-results-key-mc | Inbound | MC production confirmation files |
embossing-results-key-amex | Inbound | AMEX production confirmation files |
Capability Grants — Provider A (four grants, one actor)
Each grant names a Constraint Policy, which carries the four dimensions the control plane enforces: a time window, a total usage cap, a per-minute rate limit, and a single-use flag. A production run is bounded by scoping the window to that run and the usage cap to that run's card count, then issuing a fresh policy for the next run — which is how a per-run boundary is expressed with the controls that exist.
Grant 1 — VISA outbound decrypt:
Actor: provider-a-embossing-actor
Capabilities: ["DECRYPT"]
Asset: embossing-key-visa
Exchange Context: Embossing — VISA (OUTBOUND)
Constraint Policy: embossing-visa-2026-04-26
- validFrom / validUntil: 2026-04-26T00:00Z to 06:00Z
- maxUsage: 50000 (the run's card count, the whole cap)
- rateLimitPerMinute: 900
Grant 2 — MC outbound decrypt:
Actor: provider-a-embossing-actor
Capabilities: ["DECRYPT"]
Asset: embossing-key-mc
Exchange Context: Embossing — MC (OUTBOUND)
Constraint Policy: embossing-mc-2026-04-26
- validFrom / validUntil: 2026-04-26T01:00Z to 07:00Z
- maxUsage: 36000
- rateLimitPerMinute: 600
Grant 3 — VISA inbound encrypt:
Actor: provider-a-embossing-actor
Capabilities: ["ENCRYPT"]
Asset: embossing-results-key-visa
Exchange Context: Embossing Results — VISA (INBOUND)
Constraint Policy: embossing-results-visa-2026-04-26
- validFrom / validUntil: 2026-04-26T06:00Z to 12:00Z
- rateLimitPerMinute: 100
Grant 4 — MC inbound encrypt:
Actor: provider-a-embossing-actor
Capabilities: ["ENCRYPT"]
Asset: embossing-results-key-mc
Exchange Context: Embossing Results — MC (INBOUND)
Constraint Policy: embossing-results-mc-2026-04-26
- validFrom / validUntil: 2026-04-26T07:00Z to 13:00Z
- rateLimitPerMinute: 100
Capability Grants — Provider B (two grants)
Grant 5 — AMEX outbound decrypt:
Actor: provider-b-embossing-actor
Capabilities: ["DECRYPT"]
Asset: embossing-key-amex
Exchange Context: Embossing — AMEX (OUTBOUND)
Constraint Policy: embossing-amex-2026-04-26
- validFrom / validUntil, maxUsage 30000, rateLimitPerMinute 500
Grant 6 — AMEX inbound encrypt:
Actor: provider-b-embossing-actor
Capabilities: ["ENCRYPT"]
Asset: embossing-results-key-amex
Exchange Context: Embossing Results — AMEX (INBOUND)
Constraint Policy: embossing-results-amex-2026-04-26
- validFrom / validUntil, rateLimitPerMinute 100
Resulting properties
| Property | Outcome |
|---|---|
| Provider isolation | Provider A cannot access AMEX data; Provider B cannot access VISA or MC data |
| Network isolation | A VISA batch compromise does not expose MC data; they use different keys even when processed by the same vendor |
| Key non-exposure | No provider receives raw key material; all operations are invocations on the bank's control plane |
| Bounded usage | Per-network, time-windowed, usage-capped and rate-limited — enforced at the control plane, not contractually |
| Direction independence | Outbound and inbound keys are separate; rotating the VISA outbound key does not affect the VISA inbound key |
| Multi-grant single actor | Provider A holds four grants through one identity; one credential rotation covers all four |
| Independent revocation | Revoking Provider A's VISA decrypt grant leaves their MC access intact. Suspending Provider A's actor blocks all four grants simultaneously. |
| Auditable evidence | Every invocation produces an audit event tagged with actor, network, direction, key, and outcome |
Blast radius by revocation scope:
| Action | Networks affected | Directions affected |
|---|---|---|
Revoke embossing-key-visa | VISA only | Outbound only |
| Revoke Provider A's VISA decrypt grant | VISA only | Outbound only |
| Suspend Provider A's VISA context | VISA only | Outbound only |
| Suspend Provider A's actor | VISA + MC | Both directions |
| Revoke Provider B's actor | AMEX | Both directions |
The model scales naturally to additional networks (a fourth program joins), additional providers (Provider C handles a regional network), or additional capabilities (signature verification of provider receipts) without architectural change.
Scenario 2: BPO collections processing
Context
A bank outsources delinquent customer collections to a BPO (Business Process Outsourcer). The BPO operates on customer data — names, contact details, account balances — to perform outreach. Today, this means the bank decrypts portfolios into bulk CSV files and transfers them to the BPO via SFTP.
This model has several structural problems:
- The bank loses visibility into how the data is used once it arrives at the BPO
- Files persist on BPO infrastructure indefinitely
- A BPO breach exposes the entire transferred portfolio
- Revocation requires coordinating data deletion across BPO systems
- Audit depends on BPO self-reporting
Modeling with ANKASecure©
The model replaces the bulk file transfer with mediated, per-record cryptographic invocations. The BPO never receives a bulk plaintext file; it receives the right to invoke the bank's decrypt capability under controlled conditions, record by record.
flowchart TB
subgraph BANK["🏦 Bank — Tenant: Collections Operations"]
APP["Application: Collections Outsourcing"]
subgraph BPOCTX["Exchange Context: BPO Collections — Alpha"]
direction TB
BPOACT["Actor: bpo-alpha-collections-actor"]
BPOGRANT["Grant: DECRYPT<br/>+ rate limit<br/>+ time window<br/>+ usage cap"]
BPOASSET["Asset: collections-data-key-2026Q2"]
BPOACT --> BPOGRANT --> BPOASSET
end
APP --> BPOCTX
end
BPO["🏭 BPO Alpha<br/>collections agents"]
BPO -.->|invokes decrypt<br/>per record| BPOACT
style BANK fill:#e8f4f8,stroke:#1a5276,stroke-width:2px
style APP fill:#d5f5e3,stroke:#1e8449
style BPOCTX fill:#fadbd8,stroke:#c0392b
style BPO fill:#fdebd0,stroke:#d68910 Entity composition
Application
Collections Outsourcing— the business domain owning the collections workflow
Exchange Context
BPO Collections — Alpha: OUTBOUND exchange with BPO Alpha, sensitivity RESTRICTED, status ACTIVE for the duration of the contract
Cryptographic Actor
bpo-alpha-collections-actor: belongs to Collections Outsourcing, represents BPO Alpha's processing system, typeTHIRD_PARTY
Cryptographic Asset
collections-data-key-2026Q2: symmetric encryption key protecting the quarterly collections portfolio data
Capability Grant
Actor: bpo-alpha-collections-actor
Capabilities: ["DECRYPT"]
Asset: collections-data-key-2026Q2
Exchange Context: BPO Collections — Alpha
Constraint Policy: bpo-alpha-2026Q2
- rateLimitPerMinute: 9 (≈ 500 ops/hour, matching expected agent throughput)
- validFrom / validUntil: the contract term
- maxUsage: 250000 (the quarter's portfolio size)
- revokeOnUse: false
Two properties of this scenario come from the shape of the API, not from a Constraint Policy:
- One decryption per call. The decrypt endpoint operates on the payload it is given; there is no bulk-export verb for an actor to reach. The absence of a bulk operation is what makes the access per-record — not a
BATCH_SCOPEconstraint, which does not exist. - Transport security. Every call is TLS to the edge and the actor authenticates with an OAuth 2.0
client_credentialscredential whose secret is rotatable with a grace window. Actor-level mTLS client-certificate pinning is not implemented, and a Constraint Policy cannot require it.
What this scenario does NOT enforce
Earlier revisions of this page attributed three controls to the Constraint Policy that the platform does not implement: a batch or per-record scope, a contextual requirement (mTLS client certificate, source IP range, required headers), and auto-revocation on an anomaly signal such as a burst of consecutive denials. None of these is evaluated at authorization time. A reader planning a BPO engagement on the strength of those sentences would have believed a compromised BPO credential self-revokes under abuse. It does not — revocation of a grant, a credential or an actor is an explicit administrative act, and detection of the anomaly is the operator's, informed by the audit trail.
How a typical workflow runs
sequenceDiagram
participant AGENT as BPO agent system
participant CCP as ANKASecure©
participant HSM as Bank HSM
participant AUD as Bank audit
Note over AGENT: Agent opens customer record #4521
AGENT->>CCP: decrypt(asset=collections-data-key-2026Q2, record=4521)
CCP->>CCP: Evaluate grant + context + constraints
Note over CCP: Within time window ✓<br/>Under rate limit ✓<br/>Under usage cap ✓
CCP->>HSM: Execute decrypt
HSM-->>CCP: Plaintext for record 4521
CCP->>AUD: Log: actor, record-id, timestamp, allow
CCP-->>AGENT: Plaintext for record 4521 only
Note over AGENT: Agent makes outreach call<br/>Plaintext is ephemeral Resulting properties
| Property | Outcome |
|---|---|
| Zero bulk transfer | The bank never delivers a CSV file. Each record is an individual invocation |
| Per-record audit | Every customer record accessed produces an audit event with the record identifier |
| Time-bound access | Operations outside the policy's validity window are denied automatically |
| Bounded volume | The per-minute rate limit and the total usage cap are enforced at authorization time; exceeding either denies |
| Observable anomalies | Rate spikes and denial bursts are visible in the audit trail and drive alerting. Acting on them — revoking the grant, the credential or the actor — is an explicit administrative act, not an automatic one |
| Immediate termination | Contract termination = grant revocation. No file deletion across BPO infrastructure required |
| Sovereignty preserved | The portfolio key never leaves the bank's HSM. The BPO operates on capabilities, not data |
This model is what ANKASecure© refers to as the paradigm shift from sharing keys to sharing capabilities — the underlying principle is described in Cryptographic sovereignty.
Scenario 3: Multi-jurisdiction regulatory reporting
Context
A multinational financial institution operates in multiple regulatory jurisdictions: the European Union (under DORA, GDPR, eIDAS 2), the United States (under SOX, NIST), and South America (under regional data protection laws). Each jurisdiction imposes specific cryptographic requirements:
- EU regulators require ETSI-aligned signatures and post-quantum readiness for long-retention data
- US federal entities require NIST FIPS 203/204/205 algorithms
- Regional jurisdictions require local data residency and sovereign cryptographic operations
The institution must produce regulatory reports to each jurisdiction's authority, signed with cryptographic mechanisms that satisfy local rules — without architecting three separate platforms.
Modeling with ANKASecure©
The model uses three Exchange Contexts (one per jurisdiction), each with its own actor, asset, and policy regime. The Application — Regulatory Reporting — is the unified business domain.
flowchart TB
subgraph DEPLOY["🏛️ Deployment: Multinational"]
subgraph TENANT["Tenant: Regulatory & Compliance"]
APP["Application: Regulatory Reporting"]
subgraph EUCTX["Exchange Context: Reporting — EU"]
direction TB
EUACT["Actor: eu-regulatory-reporter"]
EUGRANT["Grant: sign<br/>+ ETSI-aligned policy<br/>+ daily window"]
EUASSET["Asset: eu-reporting-key (ML-DSA-87 + RSA-PSS hybrid)"]
EUACT --> EUGRANT --> EUASSET
end
subgraph USCTX["Exchange Context: Reporting — US"]
direction TB
USACT["Actor: us-regulatory-reporter"]
USGRANT["Grant: sign<br/>+ NIST FIPS policy<br/>+ daily window"]
USASSET["Asset: us-reporting-key (ML-DSA-87)"]
USACT --> USGRANT --> USASSET
end
subgraph SACTX["Exchange Context: Reporting — South America"]
direction TB
SAACT["Actor: sa-regulatory-reporter"]
SAGRANT["Grant: sign<br/>+ regional policy<br/>+ residency-bound"]
SAASSET["Asset: sa-reporting-key (RSA-4096 + ML-DSA-65)"]
SAACT --> SAGRANT --> SAASSET
end
APP --> EUCTX
APP --> USCTX
APP --> SACTX
end
end
EUREG["📋 EU regulator"]
USREG["📋 US regulator"]
SAREG["📋 SA regulators"]
EUACT -.->|signed report| EUREG
USACT -.->|signed report| USREG
SAACT -.->|signed report| SAREG
style DEPLOY fill:#e8f4f8,stroke:#1a5276,stroke-width:2px
style TENANT fill:#d6eaf8,stroke:#2980b9
style APP fill:#d5f5e3,stroke:#1e8449
style EUCTX fill:#fdebd0,stroke:#d68910
style USCTX fill:#e8daef,stroke:#7d3c98
style SACTX fill:#fadbd8,stroke:#c0392b Why this composition works
Single Application, multiple contexts. The business workflow is the same: produce a regulatory report and submit it. The cryptographic governance differs per jurisdiction. By modeling jurisdictional governance in the Exchange Context (not the Application), the business logic remains unified while the cryptographic policies remain jurisdiction-specific.
Policies attached at multiple levels. A Policy at deployment level defines the universal cryptographic baseline (FIPS posture, hybrid requirement, minimum security level). Policies at Exchange Context level refine those for each jurisdiction (ETSI signature schemes for EU, FIPS-only for US, residency-bound for SA).
Independent assets per jurisdiction. Each jurisdiction's signing key is a separate Cryptographic Asset, governed by its own lifecycle policy and rotation schedule. A key compromise or rotation in one jurisdiction does not cascade to the others.
Independent actors per jurisdiction. A single business workflow may invoke up to three actors in sequence — one per jurisdiction it must report to — using credentials and policies appropriate to each. Actor separation also produces audit clarity: which jurisdiction received which signed report, when, with which key.
Resulting properties
| Property | Outcome |
|---|---|
| Single business application | Regulatory Reporting is one Application, not three |
| Jurisdictional independence | Each Exchange Context governs its own algorithms, policies, lifecycle |
| Policy inheritance | Deployment baseline → tenant refinement → context override |
| PQC adoption per jurisdiction | EU adopts hybrid ML-DSA + RSA today; US adopts pure ML-DSA; SA continues with classical+PQC hybrid until local mandate matures |
| Residency compliance | Each jurisdiction's keys are tagged with residency constraints; HSM placement reflects them |
| Audit segregation | Reports to each jurisdiction produce audit events tagged with the corresponding context — supporting jurisdiction-specific compliance reporting |
This scenario illustrates a model property worth highlighting: the Exchange Context is the substrate that lets multi-jurisdiction governance compose cleanly. Without it, the same business logic would have to fragment into multiple applications or multiple tenants — neither of which is faithful to the actual organizational structure.
Cross-scenario observations
| Observation | Why it matters |
|---|---|
| The same twelve entities compose all three scenarios | One model serves internal integrations, third-party exchanges, and multi-jurisdiction governance |
| The Exchange Context is the differentiator | A KMS without business interaction modeling cannot represent these scenarios with the same fidelity |
| Capability Grants make authorization atomic | Each grant can be revoked, suspended, or audited as a single decision — supporting granular operational governance |
| Constraint Policies translate business rules to cryptographic enforcement | Time windows, total usage caps, rate limits and single-use — the four dimensions the control plane evaluates, enforced there rather than in application code |
| Audit emits the same shape across all scenarios | Compliance reporting becomes a uniform query across heterogeneous business workflows |
Beyond these scenarios
The model is not limited to financial services. The same conceptual composition supports:
- Healthcare data exchange (clinical labs, insurers, research consortia)
- Government inter-agency data sharing
- Telecommunications partner data exchange (roaming, MVNO billing, IPX interconnection)
- Retail and supply chain (EDI with suppliers, federated loyalty programs)
- SaaS multi-tenancy with enterprise BYOK customers
For the broader applicability of the cryptographic sovereignty model, see Cryptographic sovereignty.
Next steps
- For the entity definitions used in these scenarios, see Entity reference.
- For the runtime authorization flow that evaluates each invocation, see Relationships and runtime flow.
- For the broader principle of cryptographic sovereignty in third-party exchange, see Cryptographic sovereignty.