Format-Preserving Encryption


Format-preserving encryption replaces each character with a comparable character - numbers will remain numbers, letters will remain letters, and special characters will remain as is. The replacement value is case sensitive, so upper case remains upper case and lower case remains lower case. Characters are restricted to the same Unicode group as the original character - a Japanese character is replaced by another Japanese character, a Latin character is replaced by another Latin character, etc. These replacements work correctly because you will select the code page corresponding to the source data type when creating your rule actions.

The replacement value selected by the format-preserving encryption technique is controlled by a user-supplied key, which is required. The key value can be selected from a list of managed keys. If desired, the encryption key value can also be entered as part of defining the format-preserving action within the disguise rule.

The key value provided determines the replacement value. For more information about managed keys, see Manage-Encryption-Keys.

The same source character in different positions produces different replacement characters. For example, the source value of AAAA will not return MMMM, but it could return MSFH. Replacement values maintain the uniqueness of the original value. Multiple source values will not return the same replacement values. If the source values were unique, the replacement values will also be unique.

Format-preserving encryption is repeatable and reversible. Repeatable means that the same results will be returned each time the same value is presented. Reversible means that when decrypt is requested for the disguised value with the same key value that was used to encrypt the original value, the disguised value can be returned to its original value.

The processing option specified on the data element that identifies the data will impact the ability to decrypt to the original value. If the inbound value is not truncated, encrypt and decrypt will work correctly. However, with numeric data, if truncation occurs because the number of decimal positions specified in the inbound adapter for decimal positions for alignment is fewer than the number of decimal positions in the source value, encryption is not reversible.

In number processing, if padding is not requested, all leading zeros are suppressed and the rule sees just the number. Encryption acts on the number of digits presented to the rule. If the leading digit is encrypted to zero, the value cannot be decrypted to the original value since the decrypt action would operate against fewer digits. If padding to a fixed length is not requested, encryption is not reversible since decrypt would have fewer digits to act upon than the original encrypt had.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*