Version history .1: 20060401 Sat (svn 518) This just sets up the input/output and packing/unpacking. It tries to convert ASCII characters to a number, then adds them. .2: 20060412 Wed (svn 525) Fixed conversion to ASCII with (int) Fixed read-out of plainArray in Text Fixed ability to handle input longer than one block Added some key values and a partial calculation New bug: a StringOutOfBoundsException at unpackPart .3: 20060419 Wed (svn 531) Changed to BigNumbers Fixed StringIndexOutOfBoundsException Put in actual primes of approximately the required length Fixed off-by-one error in unPackPart This is now actually doing math, and producing a number string Developed main class to allow multiple functions, and to interact with the user accordingly Changed method names in secondary classes to reflect the addition of new dummy functionality Added methods for decryption in both Text and RSA. These don't do anything. Known bugs: user-entered spaces return ASCII of 32; padded spaces return 0 decrypt function doesn't work switch/case only works once, then won't evaluate again, but it increments badSelections .4 20060421 Fri (svn 532) Added label to loop in main Decomposed some functions and changed names Fixed loop and case switch, so it runs as expected Implemented clearing functions to reuse the program Discovered and fixed error in resetting a BigInteger in RSA Changed padding scheme to add '#' instead of trying to fix spaces Discovered and fixed error in addMuck that was leading to occasional StringIndexOutOfBoundsExceptions in unpackPart Included output-length checking Known bugs: decrypt and cryptanalyze functions don't work .5 20060422 Fri and 20060424 Mon (svn 533) now implementing decryption: added methods and variables for decryption changed one of the primes to be smaller, and found the decryption exponent Known bugs: if ciphertext is incorrect length, it does not go through error handling properly, instead just going back to main loop. while the math is reversing properly, there is a problem translating the numbers back to characters .6 20060424 Mon (svn 534) identified and corrected character issue in both directions (due to Java's insistance that exponents be handled by calling the Math class instead of just using an arithmetic operator) fixed the direction when the transcribing the plainArray to plainBlock remembered to reset the number in encrypt Basic encryption and decryption now works and is functional! Known bugs: at least in Terminal, there are character problems with those like 'Ž'; in fact, the StringBuffer thinks these are two characters, neither of which the plainArray can identify error handling not working what would help the above is if I knew how to use labels across classes next, go for some sort of attack .7 20060425 Tues (svn 535) streamlined and cleaned up error handling in the code fixed error when entering a non-integer for selection Known bugs: same character problem as in .6 -- this will remain until 1.0 .8 20060426 Wed (svn 536) removed annoying "Press return to exit" added class AttackRSA added functional chosen plaintext attack generalized NumberFormatException handling to include new functionality added implementation of Pollard's p-1 factorization algorithm -- I need to look at the math some more to understand how to set B .9 20060501 Mon (svn ) adding API documentation (20060502 Tues) Fixed chosen-plaintext attack to include spaces (oops!)