开发工具:
文件大小: 9mb
下载次数: 0
上传时间: 2014-08-05
详细说明: Below is a list of Skein files included on the NIST submission CD, along with a very brief description of each file. In both the reference and optimized directories, all C files should be compiled to generate a SHA3 NIST API "library" for Skein. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The following files are identical and common between the reference and optimized versions of the code: File Na me Description -------------------------------------------------------------------------------- brg_endian.h Brian Gladman's header file to auto-detect CPU endianness (with a few extensions for handling various platforms/compilers) brg_types.h Brian Gladman's header file to auto-detect integer types (with a few extensions for handling various platforms/compilers) SHA3api_ref.h API definitions for SHA3 API, implemented in SHA3api_ref.c SHA3api_ref.c "Wrapper" code that implements the NIST SHA3 API on top of the Skein API. skein_debug.h Header for with routines used internally by Skein routines for generating debug i/o (e.g., round-by-round intermediate values) If SKEIN_DEBUG is not defined at compile time, these interface declarations instead become "dummy" macros so that there is no performance impact. skein_debug.c Debug i/o routines called by Skein functions. skein.h Function prototypes, data structures, and constant definitions for Skein. The Skein API is more general than the NIST API (e.g., MAC functions). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The following files are different for the reference and optimized versions of the code. Note that the source files in Optimized_32bit and Optimized_64bit directories are identical. File Name Description -------------------------------------------------------------------------------- skein_port.h Definitions that might need to be changed to port Skein to a different CPU platform (e.g., big-endian). The Skein code should run on most CPU platforms, but the macros/functions here may be helpful in making the code run more efficiently skein.c The main Skein interface functions: Init, Update, and Final, for all three Skein block sizes. Additionally, the InitExt() function allows for MAC and other extended functionality. skein_block.c The Skein block processing function, based on the Threefish block cipher. This module contains the most performance-sensitive code and can be replaced by the assembly modules for slight speedups on some platforms. The functions here are only for internal use inside "skein.c" and are not intended for external APIs. skein_iv.h Initial values for various Skein hash functions. Note that these values are NOT "magic constants", as they are computed using the initial Skein "configuration" block. These values are used only by the optimized code, in order to speed up the hash computations. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The following files are included in the Additional_Implementations directory: File Name Description -------------------------------------------------------------------------------- skein_test.c The Skein test module, used to measure performance and generate KAT vectors for testing. This module should be compiled together with the Skein source files (i.e., from the Reference or the Optimized directories) to generate an executable, skein_test.exe. This program is used internally to test/validate/compare different implementations (e.g., Reference, Optimized, Assembly). skein_block_x64.asm This is the 64-bit assembly language version of skein_block.c. It may be used to replace that file in the Optimized_64bit directory to improve performance on 64-bit Intel/AMD systems. It should be assembled with ml64.exe. skein_block_x86.asm This is the 32-bit assembly language version of skein_block.c. It may be used to replace that file in the Optimized_32bit directory to improve performance on 32-bit Intel/AMD systems. It should be assembled with ml.exe. skein_rot_search.c This is the program that searches for the Threefish rotation constants. It has many different command-line switches, but by default it generates the constants used in the Skein paper. This file is a stand-alone C file. To run it, simply re-direct the output to a test file: "skein_rot_search > srs_log.txt". Note that it takes nearly 3 DAYS on a Core 2 Duo to complete program execution in this case. Alternately, to generate individual files, run the following command lines: skein_rot_search -b256 > srs_256.txt skein_rot_search -b512 > srs_512.txt skein_rot_search -b1024 > srs_1024.txt srs_256.txt These three files contain the results of running skein_rot_search.exe srs_512.txt for the three different Skein block sizes. They are rather large. srs_1024.txt At the end of each file, the "finalists" are re-graded with different number of random samples. Atmel_AVR.c This file was used to compile on the Atmel AVR 8-bit CPU. It includes the optimized versions of skein.c and skein_block.c with compile-time settings to only implement one at time. This was compiled with the free AVR tool set from Atmel and simulated to give the 8-bit C performance numbers. skein_8bit_estimates.xls This file is a spreadsheet used to generate the estimates for code size and speed of assembly versions of Skein on the Atmel 8-bit CPU family. Note that this is MUCH faster than the C versions, since it uses static variables, with optimized loading and rotations. No attempt is made here to minimize code size by sharing code using calls, although the code size could be shrunk significantly using calls, at some cost in performance. skein_perf_core2.txt This file contains code size and performance data running on an Intel Core 2 Duo CPU under Windows Vista 64-bit, using the Microsoft and other compilers and assemblers. It includes results for both 32-bit and 64-bit code. skein_MSC_v9_perf.txt This file contains a subset of the skein_perf_core2.txt file, including only results from the MSVC 2008 compiler, with message sizes that are powers of 10. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The following files are included in the KAT_MCT directory, in addition to the KAT/MCT files required by NIST: genKAT.c NIST-supplied source file for generating KAT_MCT vectors. This module should be compiled together with the Skein source files (i.e., from the Reference or the Optimized directories) to generate an executable genKAT.exe, which can generate the KAT_MCT vectors. [FWIW, compiling this source file under gcc gives several nasty compiler warnings!] skein_golden_kat.txt The "golden" KAT file generated using "skein_test.exe -k". This file tries to cover various block sizes, message sizes, and output sizes, as well as MAC modes. It is used for testing compliance of a Skein implementation, using skein_test.c skein_golden_kat_internals.txt The KAT file generated using "skein_test.exe -k -dc". It covers the same test as "skein_golden_kat.txt" , but also prints out intermediate (round-by-round) values. The file is very large, but it is quite useful in debugging when porting Skein to a new CPU platform and/or programming language. skein_golden_kat_short.txt This is a shorter version (subset) of skein_golden_kat.txt skein_golden_kat_short_internals.txt This is a shorter version (subset) of skein_golden_kat_internals.txt ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.