BigInteger p,q,pMinus1,qMinus1,phi;

BigInteger n = new BigInteger("1024473827439487595911508269529");

BigInteger e = new BigInteger("65537"); // 공개키

BigInteger d = new BigInteger("828292334017974914559192359153"); // 개인키

int certainty = 80;

SecureRandom rand = SecureRandom.getInstance("SHA1PRNG");

do {

p = new BigInteger(50, certainty, rand);

pMinus1 = p.subtract(BigInteger.ONE);

}while(!(pMinus1.gcd(e).equals(BigInteger.ONE)));

do {

q = new BigInteger(50, certainty, rand);

qMinus1 = q.subtract(BigInteger.ONE);

}while(!(qMinus1.gcd(e).equals(BigInteger.ONE)));

phi = pMinus1.multiply(qMinus1);

String m = "암호화할거";//////// 평문 m


KeyGenerator gen = KeyGenerator.getInstance("AES");

gen.init(256);

SecretKey K = gen.generateKey(); 

SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");

byte[] iv = new byte[16];

sr.nextBytes(iv);

Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");

IvParameterSpec spec = new IvParameterSpec(iv);

c.init(Cipher.ENCRYPT_MODE,K, spec);

byte[] encData = c.doFinal(m.getBytes());//암호문등록


main안에 있는 코드에요 단순히 x^emodn으로 풀어오라한게아니라 대칭키암호문하는법 알려주고 공개키,비밀키로 암호문하는법 가르켜주고 대칭키를 RSA 공개키를 통해서 암호화 하라 했었어용