Я копирую ссылку @Aqua, опубликованную как новый ответ, потому что я думаю, что это НАМНОГО более полезно, чем любой из приведенных ответов. Используйте ЭТО для чтения / записи закрытых / открытых ключей из файлов:
http://codeartisan.blogspot.ru/2009/05/public-key-cryptography-in-java.html
Ссылка ничего не говорит о подписании и проверке, но подписать намного проще. Я использовал этот код для подписи:
Signature signature = Signature.getInstance("SHA256WithRSA");
signature.initSign(privateKey);
signature.update("text to sign".getBytes());
signature.sign();
И для проверки:
Signature signature = Signature.getInstance("SHA256WithRSA");
signature.initVerify(publicKey);
signature.update("text to sign".getBytes);
signature.verify(signatureMadeEarlier);