Java Randomness Test Suite

Home
Tests
Algorimths
FAQ
JavaDoc
Mailing List
Change Log
Contact
License
Links
Contribute
CVS
JRandTest at SourceForge
SourceForge Logo

JRandTest Change Log

version 0.4 - 20 April, 2005

Fourth version with Algorithms' additions and changes and small enhancements
  1. 30 Mar 2005: add prng algorithm Lcg1Prng class based on NIST test suite
  2. 30 Mar 2005: add algorithm Lcg1 class with Lcg1Prng class
  3. 30 Mar 2005: add prng algorithm BbsPrng class
  4. 30 Mar 2005: add algorithm BBS class with BbsPrng class
  5. 31 Mar 2005: add algorithm MicaliSchnorr class with MicaliSchnorrPrng class
  6. 01 Apr 2005: add method reset() to BbsPrng and MicaliSchnorrPrng classes to restore x to x0.
    • added code to keep initial x in x0.
    • this change will cause prng to deliver same stream for each openInput() stream.
  7. 02 Apr 2005: add algorithm QuadraticResidue1 class with QuadraticResidue1Prng class
  8. 02 Apr 2005: add algorithm QuadraticResidue2 class with QuadraticResidue2Prng class
  9. 02 Apr 2005: add algorithm CubicResidue class with CubicResiduePrng class
  10. 02 Apr 2005: add algorithm ModulusExponentResidue class with ModulusExponentPrng class
  11. 03 Apr 2005: plan to add algos.html with algorithms descrption:
  12. 08 Apr 2005: modified SHA1 class, from package lapint.crypto, to support init IV and returns internal vector.
  13. 08 Apr 2005: add SHA1Random class as a random stream, based on SHA1 class.
  14. 09 Apr 2004: add ZAC3 encryption algorithm
  15. 09 Apr 2005: add ZAC3Random class as a random stream, based on ZAC3 class.
  16. 10 Apr 2005: rename MT19937.class (old name) algorithm to MT19937Prng.class
  17. 10 Apr 2005: rename MT.class (old name) algorithm to MT19937.class
  18. 17 Apr 2004: add ZAC5 encryption algorithm
  19. 12 Apr 2005: add ZAC5Random class as a random stream, based on ZAC5 class.
  20. 16 Apr 2004: added finalize() method to clear internal buffers to RC4Key, ZAC3 and ZAC5.
  21. 17 Apr 2004: add Skipjack encryption algorithm
  22. 17 Apr 2004: add SkipjackRandom class as a random stream, based on Skipjack class
  23. 19 Apr 2004: add Cipher class as a base class to all algorithms. Note: no variables. Few classes use the methods in this class.
  24. 19 Apr 2004: change all ciphers/prngs algorithms to extends Cipher class.
  25. 19 Apr 2004: fix some javadoc documentations

version 0.3 - 26 March, 2005

Third version with GUI changes and small enhancements
  1. 13 Mar 2005: plan help
  2. 14 Mar 2005: add tests description in tests.html
  3. 14 Mar 2005: now openInputStream in algorithm will open both file (f any) and setup() method to reset all setup of keys. Needed by several tests "reading" the "file" several times.
  4. 15 Mar 2005: small changes in OPSO - remove unnecessary paramter in method get_w in OverlappingPairsSparseOccupancy class.
  5. 15 Mar 2005: small change in Overlapping20TuplesBitstream class. w20 int is now long, to calculate correctly "w20 += 1" (java does not support unsigned 32 bits). Calculation is done on 64 bits, long, and the loweset 32 bits are used (as before).
  6. 16 Mar 2005: add RSA
  7. 17 Mar 2005: change RSA to encrypt (0 || random 32 bits || data).
  8. 17 Mar 2005: change formatting of output data. use DecimalFormat.
    		java.text.DecimalFormat df = new java.text.DecimalFormat();
    		df.setMaximumFraction(4);
    		df.setMinimumFraction(4);
    
  9. 18 Mar 2005: added tests to BlowFish.
    	some changes... but need to test. chain for CBC and CFB.
    	http://www.schneier.com/code/vectors.txt
    	
    	chaining mode test data
    	key[16]   = 0123456789ABCDEFF0E1D2C3B4A59687
    	iv[8]     = FEDCBA9876543210
    	data[29]  = "7654321 Now is the time for " (includes trailing '\0')
    	data[29]  = 37363534333231204E6F77206973207468652074696D6520666F722000
    	cbc cipher text
    	cipher[32]= 6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC
    	cfb64 cipher text cipher[29]= 
    	E73214A2822139CAF26ECF6D2EB9E76E3DA3DE04D1517200519D57A6C3 
    	ofb64 cipher text cipher[29]= 
    	E73214A2822139CA62B343CC5B65587310DD908D0C241B2263C2CF80DA
    
  10. 18 Mar 2005: change BlowFish class to use BFcipher written by Andrew Tuman. Use iv bytes array.
  11. 20 Mar 2005: change loadAllTests to loadPropFile. Returns vector of two elements: array of string names, array of string values.
  12. 20 Mar 2005: Now support allalgos.txt file. Dynamic list of algorithm names (and classes).
  13. 20 Mar 2005: rename SimplePaenl to SimplePanel (!)
  14. 20 Mar 2005: fix some bugs in JavaRandom and JabaSecuredRandom. Private buffer handling (not shared with input file buffer).
  15. 20 Mar 2005: add DES algorithm. Based on JCE algorithm.
  16. 20 Mar 2005: add AES algorithm. Based on JCE algorithm.
  17. 20 Mar 2005: add TripleDES (DESEDE) algorithm. Based on JCE algorithm.
  18. 25 Mar 2005: add actualSize to FileRandomStream to correct last buffer handling (< SIZE).
  19. 25 Mar 2005: change AES to ecnrypt large buffer, and not 16 bytes buffer. This speeds up processing.
  20. 25 Mar 2005: change AES to use actualSize.
  21. 25 Mar 2005: add run.bat and run.sh to jrandtest-03 directory. add bin to classpath. run.bat runs com.fasteasytrade.JRandTest.GUI.Gui class.
  22. 25 Mar 2005: add to ant javadoc.xml a link to http://java.sun.com/j2se/1.4.2/docs/api/ also added copyright (at bottom of javadoc html page).
  23. 25 Mar 2005: add "Javadoc" in "Help" menu. Use "start javadoc\\index.html" command, so we assume current directory is jrandtest-x.y (with bin and javadoc folders in it). Works with Windows 95/98/ME. Windows NT/2000/XP needs "cmd /c \"start javadoc\\index.html\""
  24. 25 Mar 2005: add "Homepage" in "Help" menu. Use "start http://hrandtest.sourceforge.net" command.
  25. 25 Mar 2005: change CmdLine class to support algorithm and/or filename with several runs of tests.
  26. 25 Mar 2005: add runCmdLine.bat and runCmdLine.sh to jrandtest-03 directory. add bin to classpath. runCmdLine.bat runs com.fasteasytrade.JRandTest.Tests.CmdLine class.
  27. 26 Mar 2005: add license.txt to package zip file.
  28. 26 Mar 2005: add readm.txt to package zip file.

version 0.2 - 12 March, 2005

Second version with GUI changes and small enhancements
  1. 4 March 2005: bug: count3bits print "count 2 bits for ...". should be "count 3 bits for ..."
  2. 7 Mar 2005: add AlgoRandomStream interface
  3. 7 Mar 2005: add FileAlgoRandomStream class, implements AlgoRandomStream interface.
  4. 7 Mar 2005: change ARC4 to extends FileAlgoRandomStream
  5. 8 Mar 2005: add "Exit" in menu. With System.exit(0).... too harsh....
  6. 8 Mar 2005: change file textfield to be null, and with size 45. (was full of spaces!).
  7. 8 Mar 2005: remove option: filename with "algo@xyz" with xyz algorithm class name.
  8. 8 Mar 2005: add list of algorithm names, optionally, to be selected.
  9. 8 Mar 2005: add set/getFilename to AlgoRandomStream
  10. 8 Mar 2005: support 4 input sources to tests:
    1. input filename. Example: check randomness of already encrypted file.
    2. algorithm as PRNG. Example: check randomness of ARC4.
    3. algorithm with filename. Example: check randomness of running algorithm with input filename.
    4. input data from HTTP URL.
  11. 9 Mar 2005: gui change - show list of tests as list (was radio buttons)
  12. 9 Mar 2005: add "<<" "<" "Run.." ">" ">>" to scroll and run tests
  13. 9 Mar 2005: add "edit" in menu with "Font size x", where x from 13 to 33. This will change all text area / test printouts.
  14. 10 Mar 2005: add "clear" button to clear current test listing (text area).
  15. 10 Mar 2005: add "clear all" button to clear all test listings (text area).
  16. 10 Mar 2005: change algo/tests list from java.awt.List to java.awt.Choice. A pull down menu.
  17. 10 Mar 2005: add SimpleButton with preferred size so all buttons has width=100 and height=20.
  18. 11 March 2005: change MT19937 to new interface
  19. 11 March 2005: add BlowFish algorithm. Implementation with bugs?
  20. 11 March 2005: add a very simple interface implementation / algorithm demonstration using Java Random class. Named JavaRandom.
  21. 11 March 2005: add a very simple interface implementation / algorithm demonstration using Java SecuredRandom class. Named JavaSecuredRandom.
  22. 12 March 2005: add setCursor to wait/default while running test. Set it to frame and textarea listing.
  23. 12 March 2005: change SimpleButton as public class (moved from Gui class)
  24. 12 March 2005: change SimpleDialog as public class (moved from Gui class)
  25. 12 March 2005: rename SimpeDialog class to SimplePanel class.
  26. 12 March 2005: add MsgBox class to display short messages. Show warning if user click run but no algorithm and/or file is set.
  27. 12 March 2005: fix javadoc comments.

version 0.1 - 4 March, 2005

Initial version
  1. 31 Jan 2005: add Runtest (from DieHard)
  2. 2 Feb 2005: description is separated in a help method
  3. 2 Feb 2005: test and help methods are abstract methods in base
  4. 3 Feb 2005: Added throw exception
  5. 4 Feb 2005: Now, test and help methods are NOT abstract methods in base. base is a simple class.
  6. 6 Feb 2005 - add erf and cerf (derf class)
  7. 9 Feb 2005 - add queeze test (from DieHard)
  8. 11 Feb 2005 - change test buttons to radio buttons
  9. 11 Feb 2005 - add minimum distance test (from DieHard)
  10. 11 Feb 2005 - add d4 method to base class to return double with 4 decimal places (similar to C formatting with "%.4f").
  11. 11 Feb 2005 - move all tests to com.fasteasytrade.com.JRandTest.Tests
  12. 11 Feb 2005 - move all io interfaces and classes to com.fasteasytrade.com.JRandTest.IO
  13. 11 Feb 2005 - move all GUI classes to com.fasteasytrade.com.JRandTest.GUI
  14. 11 Feb 2005 - move derf class to com.fasteasytrade.com.JRandTest.Utils
  15. 11 Feb 2005 - add menu: file/file... and help/about. remove About button.
  16. 11 Feb 2005 - add title to page and copyright name year.
  17. 12 Feb 2005: list of tests:
            Runs=com.fasteasytrade.JRandTest.Tests.Runtest
            1 Bit=com.fasteasytrade.JRandTest.Tests.TestCount1Bit
            2 Bits=com.fasteasytrade.JRandTest.Tests.TestCount2Bits
            3 Bits=com.fasteasytrade.JRandTest.Tests.TestCount3Bits
            4 Bits=com.fasteasytrade.JRandTest.Tests.TestCount4Bits
            8 Bits=com.fasteasytrade.JRandTest.Tests.TestCount8Bits
            1 6Bits=com.fasteasytrade.JRandTest.Tests.TestCount16Bits
            Monte Carlo=com.fasteasytrade.JRandTest.Tests.TestMonteCarlo - diehard
            Squeeze=com.fasteasytrade.JRandTest.Tests.SqueezeTest - diehard
    	Min Distance=com.fasteasytrade.JRandTest.Tests.MinimumDistanceTest - diehard
    
  18. 12 Feb 2005: add CountThe1s (from DieHard)
  19. 12 Feb 2005: add CountThe1sSpecificBytes (from DieHard)
  20. 12 Feb 2005: add BirthdaySpacingsTest (from DieHard)
  21. 12 Feb 2005: add BinaryRankTestFor6x8Matrices (from DieHard)
  22. 12 Feb 2005: add BinaryRankTestFor31x31Matrices (from DieHard)
  23. 12 Feb 2005: add BinaryRankTestFor32x32Matrices (from DieHard)
  24. 12 Feb 2005: add Overlapping20TuplesBitstream (from DieHard)
  25. 12 Feb 2004: list of tests:
    	Runs	=	com.fasteasytrade.JRandTest.Tests.Runtest
    	1 Bit	=	com.fasteasytrade.JRandTest.Tests.TestCount1Bit
    	2 Bits	=	com.fasteasytrade.JRandTest.Tests.TestCount2Bits
    	3 Bits	=	com.fasteasytrade.JRandTest.Tests.TestCount3Bits
    	4 Bits	=	com.fasteasytrade.JRandTest.Tests.TestCount4Bits
    	8 Bits	=	com.fasteasytrade.JRandTest.Tests.TestCount8Bits
    	1 6Bits	=	com.fasteasytrade.JRandTest.Tests.TestCount16Bits
    	Monte Carlo	=	com.fasteasytrade.JRandTest.Tests.TestMonteCarlo
    	Squeeze		=	com.fasteasytrade.JRandTest.Tests.SqueezeTest
    	Min Distance	=	com.fasteasytrade.JRandTest.Tests.MinimumDistanceTest
    	CountThe1s	=	com.fasteasytrade.JRandTest.Tests.CountThe1s
    	CountThe1sSpecificBytes = com.fasteasytrade.JRandTest.Tests.CountThe1sSpecificBytes
    	BirthdaySpacingsTest	= com.fasteasytrade.JRandTest.Tests.BirthdaySpacingsTest
    	BinaryRank6x8Matrices = com.fasteasytrade.JRandTest.Tests.BinaryRankTestFor6x8Matrices
    	BinaryRank31x31Matrices = com.fasteasytrade.JRandTest.Tests.BinaryRankTestFor31x31Matrices
    	BinaryRank32x32Matrices = com.fasteasytrade.JRandTest.Tests.BinaryRankTestFor32x32Matrices
    	Overlapping20TuplesBitstream = com.fasteasytrade.JRandTest.Tests.Overlapping20TuplesBitstream
    
  26. 13 Feb 2005: add OverlappingPairsSparseOccupancy (from DieHard)
  27. 13 Feb 2005: add OverlappingQuadruplesSparseOccupancy (from DieHard)
  28. 13 Feb 2005: add DNA (from DieHard)
  29. 13 Feb 2005: rename several classes. removing the verb "test".
  30. 12 Feb 2005: list of tests:
    	Runs	=	com.fasteasytrade.JRandTest.Tests.Run
    	1 Bit	=	com.fasteasytrade.JRandTest.Tests.Count1Bit
    	2 Bits	=	com.fasteasytrade.JRandTest.Tests.Count2Bits
    	3 Bits	=	com.fasteasytrade.JRandTest.Tests.Count3Bits
    	4 Bits	=	com.fasteasytrade.JRandTest.Tests.Count4Bits
    	8 Bits	=	com.fasteasytrade.JRandTest.Tests.Count8Bits
    	1 6Bits	=	com.fasteasytrade.JRandTest.Tests.Count16Bits
    	Monte Carlo	=	com.fasteasytrade.JRandTest.Tests.MonteCarlo
    	Squeeze		=	com.fasteasytrade.JRandTest.Tests.Squeeze
    	Min Distance	=	com.fasteasytrade.JRandTest.Tests.MinimumDistance
    	CountThe1s	=	com.fasteasytrade.JRandTest.Tests.CountThe1s
    	CountThe1sSpecificBytes = com.fasteasytrade.JRandTest.Tests.CountThe1sSpecificBytes
    	BirthdaySpacings	= com.fasteasytrade.JRandTest.Tests.BirthdaySpacings
    	BinaryRank6x8Matrices = com.fasteasytrade.JRandTest.Tests.BinaryRankTestFor6x8Matrices
    	BinaryRank31x31Matrices = com.fasteasytrade.JRandTest.Tests.BinaryRankTestFor31x31Matrices
    	BinaryRank32x32Matrices = com.fasteasytrade.JRandTest.Tests.BinaryRankTestFor32x32Matrices
    	Overlapping20TuplesBitstream = com.fasteasytrade.JRandTest.Tests.Overlapping20TuplesBitstream
    	OverlappingPairsSparseOccupancy = com.fasteasytrade.JRandTest.Tests.OverlappingPairsSparseOccupancy
    	OverlappingQuadruplesSparseOccupancy = com.fasteasytrade.JRandTest.Tests.OverlappingQuadruplesSparseOccupancy
    	DNA = com.fasteasytrade.JRandTest.Tests.DNA
    
  31. 16 Feb 2005: add HttpGetUrlRandomStream to read http get resource
  32. 16 Feb 2005: change GUI.class to support text field for file name, so user can type "http://...".
  33. 17 Feb 2005: change method d4 in Baseclass to return a string of exactly 4 decimal places.
  34. 17 Feb 2005: add MT19937.class algorithm. Runs MT.class. Located at com.fasteasytrade.JRandTest.Algo package.
  35. 17 Feb 2005: change filename mthod d4 in Baseclass to return a string of exactly 4 decimal places.
  36. 17 Feb 2005: change syntax of filename in Gui.class as "algo@name" so name algorithm/class is loaded from "com.fasteasytrade.JRandTest.Algo.name".
  37. 17 Feb 2005: MT19937 works fast for tests with 32 integers. Runs slow for byte oriented tests. Need to check performance.
  38. 17 Feb 2005: add ARC4.class algorithm. Runs RC4Key.class. Located at com.fasteasytrade.JRandTest.Algo package.
  39. 17 Feb 2005: change method d4 in Baseclass to return a string of exactly length 10 or more. So format is ZZZZZ.DDDD.
  40. 19 Feb 2005: add ant javadoc.xml to copy src + compile + javadoc + build src.jar/classes.jar/javadoc.jar in lib. use "ant -f javadoc.xml" to run. To be used by developers.
  41. 19 Feb 2005: add javadoc.xml. ant build only the javadoc. add it to eclipse project.
  42. 19 Feb 2005: build.xml is a developer utility to generate (run ant) copy/compile/jar/javadoc. add it to eclipse project.
  43. 19 Feb 2005: add and fix javadoc comments in source code.
  44. 19 Feb 2005: remove all main mthods from each test. going to write a command line / main application to request input from user and run tests.
  45. 19 Feb 2005: add CmdLine to run all tests with input file. Input from console, line mode. Can run several test on one input file.
  46. 20 Feb 2005: fix java imports.
  47. 20 Feb 2005: change methods base.readByte/int/long/uni(String filename) to be readXXX().
    Add openInputStream()/closeInputStream()to handle RandomStream. Eliminate implicit open/close while reading data.
  48. 20 Feb 2005: send SourceForge registration for jrandtest open source software project.

Copyright © 2005 Zur Aougav
aougav@hotmail.com
All rights reserved
Last modified: Wed Apr 20 21:36:38 2005