top of page

Java Utilities for Generating and Parsing APDU Commands

This package provides utilities for generating and parsing APDU commands and responses as specified in ISO/IEC 7816. These utilities may be useful for implementers of smart card readers, smart card tracers and debuggers, or smart card emulation (such as Android's Host Card Emulation, or HCE).

We use this package with our own payment terminal and card emulation software to trace, decipher and debug EMV and NFC payment transactions for our clients.


The IFX Mode of Operation for Format-Preserving Encryption Over Non-Uniform Symbols

Format-preserving encryption (FPE) algorithms such as FFSEM or FFX and its derivatives encrypt small messages of uniform, non-binary symbols while preserving the same set of symbols in their output. FPE algorithms for uniform symbols may be used to encrypt credit card numbers, Social Security numbers, or other messages where the symbols used in the message all share a common format.

IFX is an integer-based format-preserving encryption algorithm which encrypts messages of non-uniform symbols. For example, IFX could be used to encrypt vehicle license plate numbers which consist of a specific sequence of digits and letters while preserving this sequence in the ciphertext output.


Format-Preserving Encryption Library for Java

This package implements the FF1, FF3, and FFX algorithms and the A2 and A10 parameter sets for format-preserving encryption. 

The FF1 and FF3 methods for format-preserving encryption are implementations of NIST Special Publication 800-38G, Recommendation for Block Cipher Modes of Operation: Methods for Format-Preserving Encryption. 

The FFX algorithm and A2 and A10 parameter sets are implementations of "The FFX Mode of Operation for Format-Preserving Encryption," by Mihir Bellare, Phillip Rogaway, and Terence Spies. 

Publications: Resources and Tips
bottom of page