| Category | Parameter | Requirement | Description |
|---|---|---|---|
| General | Encryption Method | Ue Hybrid Encryption (Symmetric + Asymmetric) | Combines symmetric encryption for payload protection with asymmetric encryption for secure key exchange |
| Payload Encryption | Algorithm | Use AES-256-GCM | Provides confidentiality and integrity via authenticated encryption |
| Payload Encryption | Content Encryption Key (CEK) | Must be 256 bits and generated using CSPRNG | Symmetric key used for payload encryption |
| Payload Encryption | Initialization Vector (IV) | Must be 96 bits (12 bytes), generated using CSPRNG and must be unique per encryption | Nonce required for AES-GCM to ensure security and prevent reuse attacks |
| Payload Encryption | Authentication Tag | Must be 128 bits and generated during AES-GCM encryption | Ensures integrity and authenticity of encrypted data |
| Key Encryption | Algorithm | Use RSA-OAEP-256 | Asymmetric encryption of CEK using OAEP padding with SHA-256 |
| Key Encryption | Public Key | Use recipient’s RSA public key | Used to encrypt the CEK |
| Key Encryption | RSA Key Length | Must be ≥ 2048 bits | Ensures sufficient cryptographic strength |
| Encoding | Encoding Scheme | Use Base64URL (without padding) | URL-safe encoding for binary data (header, encrypted key, IV, ciphertext, authentication tag) |
{
"pan": "1234567890123456",
"expDate": "202802",
"cvv2": "123",
"timestamp": "20260318123045"
}{
"alg": "RSA-OAEP-256",
"enc": "A256GCM",
"kid": "<key identifier>"
}| The serialization order is strictly defined by the JWE specification and must be preserved.eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIiwia2lkIjoiNzYxYSJ9
.
OKOawDo13gRp2ojaHV7LFp...
.
48V1_ALb6US04U3b
.
5eym8TW_c8SuK0ltJ3rpYIzO...
.
XFBoMYUZodetZdvTiFvSkQ. (dot) separator:<protected_header> .
<encrypted_key> .
<iv> .
<ciphertext> .
<authentication_tag>| Component | Description |
|---|---|
| Protected Header | Base64URL-encoded JSON containing metadata about encryption algorithms and key identifier |
| Encrypted Key | Base64URL-encoded CEK encrypted using RSA-OAEP-256 |
| Initialization Vector (IV) | Base64URL-encoded 96-bit nonce used in AES-GCM |
| Ciphertext | Base64URL-encoded encrypted payload |
| Authentication Tag | Base64URL-encoded integrity/authentication tag generated by AES-GCM |
{
"alg": "RSA-OAEP-256",
"enc": "A256GCM",
"kid": "<key identifier>"
}| Field | Description |
|---|---|
| alg | Key encryption algorithm (RSA-OAEP-256) |
| enc | Content encryption algorithm (A256GCM) |
| kid | Key identifier used to select the correct decryption key |
| If validation fails, processing will be terminated.| If verification fails, the message will be rejected and will not be processed further.{
"pan": "1234567890123456",
"expDate": "202802",
"cvv2": "123",
"timestamp": "YYYYMMDDHHMMSS"
}