All pastes #741942 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-10-19 02:50 UTC
rendered paste body
import java.io.*;
import java.lang.Exception;


class Encrypt {

	public static void main (String args[])  throws java.lang.Exception {
		long			n, e, d, ptext;
		int				pos;
		FileReader		in;
		BufferedReader	bufRead;
		String			line;
		char			charPtext[] = new char[3];
		
		
		n = e = d = ptext = 0;
		
		if(args.length < 2) {
			System.out.println("Usage:  Encrypt <plaintext> <keyfile>\n");
			System.exit(-1);
		}
		
		
		//Read keys
		in = new FileReader(args[1]);
		bufRead = new BufferedReader(in);
		
		//Read n
		line = bufRead.readLine();
		n = Long.parseLong(line);
		
		//Read e
		line = bufRead.readLine();
		e = Long.parseLong(line);
		
		//Read d
		line = bufRead.readLine();
		d = Long.parseLong(line);
		
		System.out.println("Keys\n----\n");
		System.out.println("n: "+n+"\ne: "+e+"\nd: "+d+"\n");
		
		in = new FileReader(args[0]);
		bufRead = new BufferedReader(in);
		
		//Read plaintext
		pos = 0;
		int temp = bufRead.read();
		while(temp > 0) {
			charPtext[pos%3] = (char)temp;
			if((++pos % 3) == 0) {
				System.out.print(charPtext);
				Encrypt(charPtext, e, n);
				charPtext[0] = charPtext[1] = charPtext[2] = 0;
				//Write(M);
			}
			temp = bufRead.read();
		}
		if((charPtext[0] + charPtext[1] + charPtext[2]) > 0) {
			Encrypt(charPtext, e, n);
		}
		
		System.out.println();
		System.out.println(expMod(2, 8, 5));
	} // end main


	public static long expMod(long b, long e, long n) {
		String	bin;
		long	tmp;
		int		i;
		
		
		bin = Long.toBinaryString(b);
		System.out.println(bin);

		tmp = 1;
		for(i = 0; i < bin.length(); i++) {
			if(bin.substring(i,i+1).equals("1")) {
				tmp = (tmp * tmp) % n;
				tmp = (tmp * b) % n;
				System.out.println("1: "+tmp);
			}
			else if(bin.substring(i,i+1).equals("0")) {
				tmp = (tmp * tmp) % n;
				System.out.println("0: "+tmp);
			}
			else {
				System.out.println("expMod error:  non binary value: " + bin.substring(i,i+1));
				System.exit(-1);
			}
		}
		
		return tmp;
	}


	public static void Encrypt(char[] M, long e, long n) {
		String	bin;
		
		//Convert to long
		long v = ((int)M[0] * 65536) + ((int)M[1] * 256) + (int)M[2];
		
		
		//System.out.print(v + " ^ " + e + " mod " + n + " = ");
		//v = expMod(v, e, n);
		//System.out.println(v);
	}

}// end class Encrypt