The README file for the program RSADSASignGen.java

1.
It consists of the java source code : RSADSASignGen.java, its byte code
RSADSASignGen.class and certain other files. The shell scripts are to 
run the java program for various possible inputs. Typing just the program
name prints its usage. 

2.
In calculating the time values, the file reading part is not considered as
the aim is to analyse the program and not how long it takes to read from
secondary storeage devices. Like in verification part, the message that was
read during computation of the signature was taken as such without re-reading 
it from the file. Again, the message or key source can be anything and the
task is to find the trend in the computation of variuos algorithms for 
generating signatures and verifying them.

3.
The same java program is used for RSA and DSA by passing various command line
arguments. The way to call the program is
java RSADSASignGen <AlgoName> <AlgoPRNG> <filename> <msgSize> <keysize>

AlgoName is RSA or DSA
AlgoPRNG is SHA1withRSA or SHA1withDSA respetively.
msgsize can be anything from 0 - 4096
and keysize can be 512-1024 or 512-2048 (as per the algorithm)

3.
The usage for the shell scripts is
./RunRSA.sh
It will run the testRSA.sh script in turn with various possible input 
combinations. The usage is
./testRSA.sh <msgsize> <keysize> <setup|msgsize|keysize>

the last parameter is a string out of the three. If its 'setup' then all 
the previous log files are deleted and the program's file and parameters
are reinitialized. RSA and DSA are writing to the same log files so
it will erase both files' data.

If we want to vary the msgsizes then the command would be
./testRSA.sh 2048 512 msgsize

This will call the java program for RSA algorithm with keysize=512 bits
and msg sizes varying from 1, 2, 4, 8, .., 2048 bytes.

A similar description holds for testDSA.sh and RunDSA.sh 
The only change is that it will call the program for DSA algorithm.




Its sufficient to call testRSA.sh and testDSA.sh(instead of testRSA.sh, 
testDSA.sh or the java program multiple times) . It will call the java
program multiple times to have a good set of values.



4. 
There is a contraint on the size of the keysizes that can be specified. The 
shell scripts take care of that. But no error check is done for that
so the recommended values are 512-1024 bits in steps of 64


The program has one file summary.doc which contains various graphs and their
interpretations.



For a particular execution of the program, the statistics are generated in
the folder <log>

In that there are statistics file in which the tables are given in which the
columns are for msg sizes, key sizes, Algorithm used(RSA/DSA), random no.
generation algorithm used(SHA1withRSA/SHA1withDSA), time taken for signature
gemeration(timeGen) and time taken to verify the signature(timeVer). The time
values are in millisec.





5.******************** IMPORTANT ***********
The graphs of the various statistics are stored in the file summary1.sxw  (in 
pictorial form) and also in the file KeyVary.sxc  (with all the raw data).
summary1.sxw file can be viewed using OpenOffice in Linux 
These statistics are from the data set which is in the folder
stats/set1


in the stats folder there are two other folder which contain the execution
of the program with various parameters
the 
stats/comp1
folder also hs a graphical statistics.

stats/set2
has simple plain text statistics



PS : Use OpenOffice tools to view these files







