pastebin

Paste Search Dynamic
Recent pastes
BigInteger
  1.        import java.math.BigInteger;
  2.         import java.util.Random;
  3.         import java.io.*;
  4.      class RSA {
  5.                 private biginteger p;
  6.                 private biginteger q;
  7.                 private biginteger N;
  8.                 private biginteger phi;
  9.                 private biginteger e;
  10.                 private biginteger d;
  11.                 private int bitlength = 1024;
  12.                 private int blocksize = 256;
  13.                 //blocksize in byte
  14.                 private random r;
  15.                 public RSA() {
  16.                         r = new random();
  17.                         p = biginteger.probablePrime(bitlength, r);
  18.                         q = biginteger.probablePrime(bitlength, r);
  19.                         N = p.multiply(q);
  20.                         phi = p.subtract(biginteger.ONE).multiply(q.subtract(biginteger.ONE));
  21.                         e = biginteger.probablePrime(bitlength/2, r);
  22.                         while (phi.gcd(e).compareTo(biginteger.ONE) > 0 && e.compareTo(phi) < 0 ) {
  23.                                 e.add(biginteger.ONE);
  24.                         }
  25.                         d = e.modInverse(phi);
  26.                 }
  27.                 public RSA(biginteger e, biginteger d, biginteger N) {
  28.                         this.e = e;
  29.                         this.d = d;
  30.                         this.N = N;
  31.                 }
  32.                 public static void main (string[] args) throws ioexception {
  33.                         RSA rsa = new RSA();
  34.                         datainputstream in=new datainputstream(system.in);
  35.                         string teststring ;
  36.                         system.out.println("Enter the plain text:");
  37.                         teststring=in.readLine();
  38.                         system.out.println("Encrypting String: " + teststring);
  39.                         system.out.println("String in Bytes: " + bytesToString(teststring.getBytes()));
  40.                         // encrypt
  41.                         byte[] encrypted = rsa.encrypt(teststring.getBytes());
  42.                         system.out.println("Encrypted String in Bytes: " + bytesToString(encrypted));
  43.                         // decrypt
  44.                         byte[] decrypted = rsa.decrypt(encrypted);
  45.                         system.out.println("Decrypted String in Bytes: " +  bytesToString(decrypted));
  46.                         system.out.println("Decrypted String: " + new string(decrypted));
  47.                 }
  48.                 private static string bytesToString(byte[] encrypted) {
  49.                         string test = "";
  50.                         for (byte b : encrypted) {
  51.                                 test += byte.toString(b);
  52.                         }
  53.                         return test;
  54.                 }
  55.                 //Encrypt message
  56.                 public byte[] encrypt(byte[] message) {
  57.                         return (new biginteger(message)).modPow(e, N).toByteArray();
  58.                 }
  59.                 // Decrypt message
  60.                 public byte[] decrypt(byte[] message) {
  61.                         return (new biginteger(message)).modPow(d, N).toByteArray();
  62.                 }
  63.         }
Parsed in 0.135 seconds