Can anyone give me some documentation on the various format preserving encryption modes?
I'm aware of only one official specification: NIST SP 800-38G, and recommend to ignore it. Rather, consider NIST SP 800-38Gr1-draft, still unofficial, if something next to a rubber stamp is badly needed.
That draft changes both modes in the official specification, FF1 and FF3, fixing security issues:
- The minimal size of the input/output space is increased from a hundred to a million elements (e.g. from two to six decimal digits).
- FF3 is changed to FF3-1 with reduced tweak space, following F. Betül Durak and Serge Vaudenay's Breaking the FF3 Format-Preserving Encryption Standard over Small Domains, in proceedings of Crypto 2017.