Name		: Amit Jaiswal
Roll No.	: 03329011
Assignment	: Network Security , Assignment 1
email		: amitj@it.iitb.ac.in


The readme file for the statistical analysis of the RSA key generation.


The program consists of the following files.
RSA.java	: The source code of the RSA encryption
RSA.class	: The bytecode
FileMessage.txt : The file from which messages are taken
template	: A file required by the program
testRSA.sh	: The script file that is used to execute the program
WriteToFile.class : The byte code of the compiled class
ReadFromFile.class : The byte code of the compiled class


The usage is
$testRSA.sh <keysize> <certainty> <MsgLen> <keysize|certainty|msgLen|setup>

The first three parameters are integer values which are for specifying
keysize, the probability factor for P, Q to be prime and the length of the
message encrypted and decrypted.

The last parameter is a string : "keysize" or "certainty" or "msgLen" or "setup"
It means if the last parameter is keysize then the first paarmeter means the
upper limit till which the program will give the keysize value.


For eg.
$testRSA.sh 512 10 100 keysize
It means that the program will fix the probabilty for P, Q to be prime at {1-1/(2^10)}, the length of the message at 100 and since the last parameter is
"keysize" so , the program will find the various time values for 
keysizes = 128, 256, 512. The lower limit for key sizes is 128.

Same holds for
$testRSA.sh 512 10 100 msgLen
It means that keysize=512 bits, Probabilty value={1-1/(2^10)} 
and the message length varies from 2 to 100 in factor of 2 i.e 2, 4, 8, 16, 32, 64.


The lower value for the certainty factor is 2 and it increases linearly in step 
of 2


The "setup" in the last parameter means that clean all the previous data.


After various executions, the summary of the various execution are put in
log/FileOutDiffKeyTmp		: For the variations  in Key sizes
log/FileOutDiffCertTmp		: For the variations in Certainty
log/FileOutDiffMsgLenTmp	: For the variations in Message Length



In these files the meaning of various fields are
Key		: Key size
Prob.		: the certainty factor = {1-1/(2^certainty)}
MsgLen		: The message lengths
TimePQ		: Time (in milliseconds) taken to generate P, Q
TimeN		: Time (in milliseconds) taken to find N =P*Q
TimeE		: Time (in milliseconds) taken to find E
TimeD		: Time (in milliseconds) taken to calculate D = mod inverse of E
TimeEnc		: Time (in milliseconds) taken for encryption
TimeDcr		: Time (in microseconds) taken for decryption


Some sample run are kept in the foler 
samples



