RSAの勉強をするのであれば、話は別ですが、ライブラリを使用のが良いかと思いますよ。RSAを勉強するなら、「Javaで学ぶ暗号プログラミング」がわかり易いかと思います。
また、どのようなデータを暗号化するのかわかりませんが、携帯ではつらいかも・・・
共通鍵をRSAで暗号化して渡すとかが良いかも知れません。
// p,q は、異る大素数, SIZEは、大素数のビット数
// cは、素数性確立に関連した整数 (see BigInteger#isProbablePrime )
p = new BigInteger(SIZE, c, new Random());
do {
q = new BigInteger(SIZE, c, new Random());
while (q.compareTo(p));
N = p.multiply(p);
// P = (p-1)(q-1)
P = p.subtract(BigInteger.valueOf(1));
P = P.multiply(q.subtract(BigInteger.valueOf(1)));
// 公開鍵
do {
e = new BigInteger(2*SIZE, new Random());
} while ((e.compareTo(p) != -1) || (e.gcd(P).compareTo(BigInteger.valueOf(1)) != 0));
// 暗号化
enc = msg.modPow(e, N); // msg < N
// 秘密鍵 d = e mod P の逆元
d = e.modInverse(P);
// 復号
plane = enc.modPow(d, N):