Rijndael hatte in einer leichten Variante (wenn ich mich nicht täusche ging es hier um Rundenzahl und Schlüssellängen) es auf Platz 1 geschafft und wurde damit zum Sieger von AES (weshalb Rijndael und AES gerne synonym benutzt werden - auch wenn sie nicht ganz identisch sind).
Java-Code zu Serpent gibt es unter
http://www.cl.cam.ac.uk/~rja14/serpent.html (der offiziellen Seite).
Wenn Plattformunabhängigkeit keine Rolle spielt, würde ich jedoch eher auf die hochoptimierte Assembler-Variante von Brian Gladman setzen:
http://fp.gladman.plus.com/cryptography_technology/serpent/
EDIT: ach ja, bevor du irgendetwas praktisch umsetzt, empfehle ich dir dringend, dir über folgende Begriffe klarzuwerden. Denn praktisch alle Sicherheitslücken bei kryptographischen Verfahren entstehen nicht durch Schwächen der Ciphers, sondern durch fehlerhafte Anwendung:
-Blockchiffre
-Stromchiffre
-Initialisierungsvektor (IV): starker IV, schwacher IV
-ECB (wo ist das Problem? Warum wird er dennoch eingesetzt?),
-Betriebsarten von Blockciphers jenseits von ECB (besonders CBC, CFB, OFB - aber es schadet nicht, weitere zu kennen): auch hier: warum verwendet man sie und wo sind deren Schwächen (Stichworte: Übertragungsfehler, Fehlertoleranz)
- symmetrischer und asymmetrischer Cipher (Public und Private Key)
- sichere Schlüsselübertragung (Public und Private Key vs. Diffie Hellman Key Exchange)
um nur ein paar Stichworte in den Raum zu werfen