what is the state of the art algorithm to encrypt credit card data We have a business requirement to keep credit card data. What is today's (Nov 2013) state of the art algorithm to encrypt credit card data that will be saved on disk? Additionally, I'd appreciate pointers to Java libraries that implement these algorithms

Note that we are PCI compliant and we already store credit card data. I am doing a review to make sure that our encryption method remains state-of-the-art
In practical cryptography, you do not use state-of-the-art, the newest and shiniest algorithms, but instead something required or recommended by the appropriate standards.

In PCI, AES, Triple-DES, SHA-1, RSA etc. are fairly common. PCI is bit slow to adopt  new cryptographic standards. This is for part that payment industry uses devices (like cards) with relatively underpowered processing units.

If you want something that is state-of-the-art, and practical, you may enjoy e.g. cr.yp.to, but those algorithms are likely not accepted by some of the PCI standards.



For encrypting credit card data stored on disc, one modern fancy combination would be  AES-256 with FPE.