Bibliotheken mit fester Vorauswahl an Algorithmen

Kalium

Java-Anbindung an libsodium bzw. NaCl von D.J. Bernstein.
NaCl ist eine Krypto-Bibliothek, die von der Technischen Universität Eindhoven, D.J. Bernstein und anderen entwickelt wurde, um typische Implementierungsfehlern vorzubeugen. Ein typischer Schwachpunkt anderer Bibliotheken sind die oft zahlreichen inzwischen gebrochenen oder schwachen Algorithmen, die aus Gründen der Abwärts-Kompatibilität oder aus historischen Gründen beibehalten werden. Ergänzen ließe sich noch - obwohl nicht ausdrücklich erwähnt - die Probleme, die sich durch die oft fragwürdigen Empfehlungen der NIST ergeben, die für viele einen De-facto-Standard darstellen. NaCl weicht in manchen, aber nicht allen Punkten von den NIST-Empfehlungen ab.
Entsprechend bietet NaCl keine große Auswahl an Algorithmen an, sondern eine durch Kryptolog*innen getroffene Auswahl nach transparenten Kriterien. Zudem zielt NaCl auf eine bessere Performance und Resistenz gegen Seitenkanal-Angriffe ab.
NaCl bietet u.a. Salsa20 als Stromchiffre (alternativ AES-CTR), Kryptographie über elliptische Kurven (Curve25519) zum Schlüsselaustausch, Salsa20/Poly1305 zur authentifizierten Verschlüsselung (alternativ AES-GCM), Sha256 und SHA512 als Hashfunktionen. Es wird jeweils ein neuer und ein älterer Standard-Algorithmus für eine Aufgabe angeboten.
Die Auswahl ist sicher nicht unumstritten, aber bestimmt eine bessere Wahl als den Empfehlungen von Institutionen wie der NIST oder Firmen wie RSA blind zu folgen.
Die Sodium crypto library libsodium ist ein Fork von NaCl, mit einigen Erweiterungen. libsodium enthält auch beispielsweise Scrypt als Passwort-Hashing-Verfahren, d.h. die Entwickler*innen reproduzieren auch nicht bloß stumpf die NIST-Empfehlungen (in diesem Falle PBKDF2).
Kalium ist eine Anbindung an libsodium für die Programmiersprache Java. Kalium setzt das JDK6 und Apache Maven voraus.
Webseite: Kalium bei GitHub
Daneben gibt es noch weitere Java-Anbindungen an NaCl bzw. libsodium: Sodium-JNI, und Kalium-JNI, beide nutzen das Java Native Interface.

Conceal Java crypto library

Facebooks Krypto-Bibliothek.
http://facebook.github.io/conceal/
Ist noch in Arbeit...


Übersicht
JCE-Provider
Easy-To-Use-Bibliotheken
Spezialisierte Bibliotheken