Skip to content

Cryptographic PETs

The cryptographic PETs use industry-standard algorithms with a multi-layered key management architecture to protect confidentiality, integrity, and authenticity. This page covers the two algorithms and the key hierarchy underneath them; see What's next below for the deeper architecture and operational guides.

Synthetic Initialization Vector (SIV)

Standard data protection uses AES-GCM-SIV, an AES mode designed to be robust against common cryptographic pitfalls.

  • Confidentiality and Integrity: data can't be read or tampered with by unauthorised parties.
  • Nonce-Misuse Resistance: unlike standard GCM, SIV tolerates nonce reuse, which matters in high-volume distributed environments.
  • Authenticated Data: Additional Authenticated Data (AAD) binds the encryption to its specific context, preventing cut-and-paste attacks.
  • Deterministic Output: the same input and key context always produce the same encrypted value.

Use where format preservation isn't required, protecting PII for storage in a database or cloud storage, or ensuring integrity across distributed systems.

Format-Preserving Encryption (FPE)

Where the original format must survive encryption, for legacy system compatibility or database constraints, eXate uses the NIST-approved FF3-1 algorithm.

  • Format Preservation: a 16-digit credit card number stays a 16-digit numeric string after encryption.
  • Data Utility: encrypted data passes through systems with strict validation rules (date formats, length constraints) without modification.
  • Reversibility: authorised parties with the correct keys can decrypt back to the original.

Supported types: numeric (credit cards, account numbers, identifiers), alphanumeric strings, and date/timestamp (preserving formats like YYYY-MM-DD).

Key Hierarchy

Both algorithms draw on the same underlying key management, a hierarchical, "defense-in-depth" model: compromising one layer doesn't expose the underlying data. Keys are organised into three tiers:

  1. Execution Area Key: top-level, tied to a specific environment, giving environment-level isolation.
  2. MetaData Tag (MDT) Key: attribute-level, tied to specific data types and protection policies.
  3. Data Subject (DS) Key: the most granular tier, tied to an individual data subject (a specific customer or user), giving individual-level isolation.

Envelope Encryption Model

Keys from the Key Management Store combine to derive a unique data encryption key for every operation:

┌─────────────────────────────────────────────────────────────┐
│              Key Management Store (KMS)                      │
│         (HashiCorp/AWS/Azure/IBM)                           │
└─────────────────────────────────────────────────────────────┘
                            │
        ┌───────────────────┼───────────────────┐
        │                   │                   │
        ▼                   ▼                   ▼
┌──────────────┐   ┌──────────────┐   ┌──────────────┐
│ Execution    │   │  MetaData    │   │ Data Subject │
│ Area Key     │   │  Tag Key     │   │    Key       │
│(Environment) │   │ (Attribute)  │   │   (User)     │
└──────────────┘   └──────────────┘   └──────────────┘
        │                   │                   │
        └───────────────────┼───────────────────┘
                            │
                    ┌───────▼────────┐
                    │  HMAC-SHA256   │
                    │ Key Derivation │
                    └───────┬────────┘
                            │
                    ┌───────▼────────┐
                    │  AES Secret    │
                    │     Key        │
                    │  (256-bit)     │
                    └───────┬────────┘
                            │
        ┌───────────────────┼───────────────────┐
        │                   │                   │
        ▼                   ▼                   ▼
    ┌──────┐           ┌──────┐           ┌──────┐
    │ Salt │           │Nonce │           │ Data │
    │(AAD) │           │ (IV) │           │      │
    └──────┘           └──────┘           └──────┘
        │                   │                   │
        └───────────────────┼───────────────────┘
                            │
                    ┌───────▼────────┐
                    │  AES-GCM-SIV   │
                    │  Encryption    │
                    └───────┬────────┘
                            │
                    ┌───────▼────────┐
                    │   Encrypted    │
                    │     Value      │
                    └────────────────┘

Key Generation and Derivation

Rather than a single static key, the system dynamically derives a unique data encryption key for every operation:

  1. Retrieve the appropriate keys from a secure Key Management System (KMS).
  2. Combine the three tiers (Execution Area, MDT, Data Subject) using HMAC-SHA256.
  3. Use the resulting unique secret as the final encryption key.

Every data subject and attribute combination ends up with its own cryptographic context.

Supported Key Stores

Master keys are stored in secure, hardware-backed environments (HSMs), never exposed to the application layer:

  • HashiCorp Vault
  • AWS Key Management Service (KMS)
  • Azure Key Vault
  • IBM Cloud Key Protect

Which one you use depends on your system configuration and deployment environment.

What's next