加密算法

本文深入探讨了加密算法的基本原理,包括常见的对称加密和非对称加密技术,如AES、RSA等。同时,还介绍了加密在实际应用中的场景,如网络安全、数据保护等方面的重要作用。对于开发者来说,理解加密算法对于保障信息安全至关重要。
摘要由CSDN通过智能技术生成

锻钢,加密与解密(第三版), 131-192
单向散列算法>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  >> MD5, Message Digest Algorithm 5
     消息摘要算法第五版
     R.Rivest
     128-bit
  >> SHA, Secure Hash Algorithm
     安全散列算法
     SHA-1,SHA-256,SHA-384,SHA-512
     160-bit,256-bit,384-bit,512-bit
  >> REPEMD, HAVAL, Tiger
  >> Whirlpool
对称加密算法>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  >> DES, Dtat Encryption Standard
     数据加密标准
  >> IDEA, International Data Encrytion Algrorithm
     国际数据加密算法
     XueJia Lai, 来学嘉; L. Massey, 1991
     128-bit
  >> AES, Advanced Encryption Standard
     高级加密标准
     NIST, National Institute of Standards Technology, 1997
     Rijndael, AES-128, A
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 Name 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值