File: README Author: Ronald L. Rivest Date: 9/1/2008 This file describes all of the files that are in the MD6 submission package for the NIST SHA-3 competition. /README This file. /Reference_Implementation README_Reference.txt a README file for the directory Reference_Implementation md6.h main header file for MD6 md6_compress.c defines MD6 compression function md6_mode.c defines MD6 mode of operation md6_nist.h header file for adapting MD6 to NIST SHA-3 API md6_nist.c defines routines implemeting NIST SHA-3 API inttypes.h standard header file already present for gcc, but necessary to compile with MS Visual Studio stdint.h standard header file already present for gcc, but necessary to compile with MS Visual Studio /Optimized_32bit README_32bit.txt a README file for the directory Optimized_32bit md6.h main header file for MD6 md6_compress.c defines MD6 compression function md6_mode.c defines MD6 mode of operation md6_nist.h header file for adapting MD6 to NIST SHA-3 API md6_nist.c defines routines implemeting NIST SHA-3 API inttypes.h standard header file already present for gcc, but necessary to compile with MS Visual Studio stdint.h standard header file already present for gcc, but necessary to compile with MS Visual Studio /Optimized_64bit README_64bit.txt a README file for the directory Optimized_64bit md6.h main header file for MD6 md6_compress.c defines MD6 compression function md6_mode.c defines MD6 mode of operation md6_nist.h header file for adapting MD6 to NIST SHA-3 API md6_nist.c defines routines implemeting NIST SHA-3 API inttypes.h standard header file already present for gcc, but necessary to compile with MS Visual Studio stdint.h standard header file already present for gcc, but necessary to compile with MS Visual Studio /Supporting_Documentation md6_report.pdf the main report on MD6 crypto2008.ppt Powerpoint slides presented by Rivest on MD6 for his invited talk at CRYPTO 2008 crutchfield_ms_thesis.pdf the Master's thesis of Christopher Crutchfield tapopt.c program used to determind MD6 tap positions shiftopt.c program used to determine MD6 shift amounts md6sum.c program used to print intermediate values and obtain timing results one_block_MD6_224.txt intermediate values for MD6 with 224-bit output on a one-block (400-byte) input one_block_MD6_256.txt intermediate values for MD6 with 256-bit output on a one-block (400-byte) input one_block_MD6_384.txt intermediate values for MD6 with 384-bit output on a one-block (400-byte) input one_block_MD6_512.txt intermediate values for MD6 with 512-bit output on a one-block (400-byte) input two_block_MD6_224.txt intermediate values for MD6 with 224-bit output on a two-block (800-byte) input two_block_MD6_256.txt intermediate values for MD6 with 256-bit output on a two-block (800-byte) input two_block_MD6_384.txt intermediate values for MD6 with 384-bit output on a two-block (800-byte) input two_block_MD6_512.txt intermediate values for MD6 with 512-bit output on a two-block (800-byte) input one_block_MD6_224_L0.txt intermediate values for MD6 with 224-bit output on a one-block (400-byte) input in optional sequential mode (L=0) one_block_MD6_256_L0.txt intermediate values for MD6 with 256-bit output on a one-block (400-byte) input in optional sequential mode (L=0) one_block_MD6_384_L0.txt intermediate values for MD6 with 384-bit output on a one-block (400-byte) input in optional sequential mode (L=0) one_block_MD6_512_L0.txt intermediate values for MD6 with 512-bit output on a one-block (400-byte) input in optional sequential mode (L=0) two_block_MD6_224_L0.txt intermediate values for MD6 with 224-bit output on a two-block (600-byte) input in optional sequential mode (L=0) two_block_MD6_256_L0.txt intermediate values for MD6 with 256-bit output on a two-block (600-byte) input in optional sequential mode (L=0) two_block_MD6_384_L0.txt intermediate values for MD6 with 384-bit output on a two-block (600-byte) input in optional sequential mode (L=0) two_block_MD6_512_L0.txt intermediate values for MD6 with 512-bit output on a two-block (600-byte) input in optional sequential mode (L=0) one_block_MD6_224_k9.txt intermediate values for MD6 with 224-bit output on a one-block (400-byte) input with nine-byte key '111222333' one_block_MD6_256_k9.txt intermediate values for MD6 with 256-bit output on a one-block (400-byte) input with nine-byte key '111222333' one_block_MD6_384_k9.txt intermediate values for MD6 with 384-bit output on a one-block (400-byte) input with nine-byte key '111222333' one_block_MD6_512_k9.txt intermediate values for MD6 with 512-bit output on a one-block (400-byte) input with nine-byte key '111222333' two_block_MD6_224_k9.txt intermediate values for MD6 with 224-bit output on a two-block (800-byte) input with nine-byte key '111222333' two_block_MD6_256_k9.txt intermediate values for MD6 with 256-bit output on a two-block (800-byte) input with nine-byte key '111222333' two_block_MD6_384_k9.txt intermediate values for MD6 with 384-bit output on a two-block (800-byte) input with nine-byte key '111222333' two_block_MD6_512_k9.txt intermediate values for MD6 with 512-bit output on a two-block (800-byte) input with nine-byte key '111222333' /KAT_MCT genkat.c KAT and MCT program from NIST, modified as needed to call MD6 routines ShortMsgKAT.txt test input file from NIST for short messages ShortMsgKAT_224.txt short message test output for 224-bit outputs ShortMsgKAT_256.txt short message test output for 256-bit outputs ShortMsgKAT_384.txt short message test output for 384-bit outputs ShortMsgKAT_512.txt short message test output for 512-bit outputs LongMsgKAT.txt test input file from NIST for long messages LongMsgKAT_224.txt long message test output for 224-bit outputs LongMsgKAT_256.txt long message test output for 256-bit outputs LongMsgKAT_384.txt long message test output for 384-bit outputs LongMsgKAT_512.txt long message test output for 512-bit outputs ExtremelyLongMsgKAT.txt test input file from NIST for extremely long messages ExtremelyLongMSGKAT_224.txt extremely long message test output for 224-bit outputs ExtremelyLongMSGKAT_256.txt extremely long message test output for 256-bit outputs ExtremelyLongMSGKAT_384.txt extremely long message test output for 384-bit outputs ExtremelyLongMSGKAT_512.txt extremely long message test output for 512-bit outputs MonteCarlo.txt test input file from NIST for Monte Carlo tests MonteCarlo_224.txt Monte Carlo test output for 224-bit outputs MonteCarlo_256.txt Monte Carlo test output for 256-bit outputs MonteCarlo_384.txt Monte Carlo test output for 384-bit outputs MonteCarlo_512.txt Monte Carlo test output for 512-bit outputs /Additional_Implementations --none-- /CoverSheet CoverSheet.pdf required coversheet /Statements Statement by the Submitter.doc required statement Statement by Reference Implementation Owner.doc required statement