
	Assignment no: 2
	Rollno: 03329004
	Name: santosh dwivedi
	
	Source files:	MD5digest.java	(digest generation using MD5 Algorithm)
			SHA1digest.java (digest generation using SHA1 Algorithm)
			RSASignGen.java (signature generation and verification using RSA Algorithm)
			DSASignGen.java (signature generation and verification using DSA Algorithm) 
			LogProb.java    (Diffie-Hellmann problem, computes private key)

	Message file:	ip (given message)

	Output files:	
			ip.md5_digest		
			ip.sha1_digest
			ip.rsa_sign
			ip.rsa_sign_private_key
			ip.rsa_sign_public_key
			ip.dsa_sign
			ip.dsa_sign_private_key
			ip.dsa_sign_public_key
	
	Graph file:	Graphs.sxc (Graphs)
	
	Units:		Message Size - bytes
			Time - milliseconds
			Key size - bits

	Conclusions:	(see graph file for specific conclusion on each graph)
			General:
			1) RSA Signature Generation time is more than RSA Verification time
			   since signature generation uses larger size private key and 
			   signature verification uses comparatively smaller size public key.
			2) DSA Signature Generation time is less than DSA Verification time because
			   signature generation uses comparatively smaller size private key and
			   signature verification uses comparatively larger size public key.
			   Also more computation is involved at the time of verification. 		
			3) Signature generation and verification time increases with key size for both algorithms.
			4) Signature generation and verification time increases with message size for RSA algorithm.
			5) Signature generation and verification time shows no direct relationship with 
			   message size for DSA algorithm.may be because some computations do not depend 
			   on message and be precomputed.
			6) digest generation time for both MD5 and SHA1 increase with message size since no of 
		 	   blocks to be processed increase with message size.
	
			
			   	

			
