Cryptographic API

优质
小牛编辑
134浏览
2023-12-01

Cryptographic API
内核加密API支持
这里的加密算法被广泛的应用于驱动程序通信协议等机制中.子选项可以全不选,内核中若有其他部分依赖它,会自动选上.使用内核树外的模块时可能需要手动选择.

FIPS 200 compliance
CONFIG_CRYPTO_FIPS
"fips"内核引导参数支持.这是在FIPS200认证的系统中运行所必须的.选"N",除非你确实知道自己在做什么.
RSA algorithm
CONFIG_CRYPTO_RSA
"RSA"公钥加密算法.能同时用于密钥交换和数字签名.
Cryptographic algorithm manager
CONFIG_CRYPTO_MANAGER
创建默认的加密模版实例,提供了操作内核的加密特性所需的软件.
Userspace cryptographic algorithm configuration
CONFIG_CRYPTO_USER
允许用户空间配置内核加密实例.不确定的选"N".
Disable run-time self tests
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS
禁止在注册算法时进行简单的自我检测.不确定的选"Y".
GF(2^128) multiplication functions
CONFIG_CRYPTO_GF128MUL
由高效表格驱动的伽罗瓦域 GF(2^128)乘法器支持.某些加密模式需要它.不确定的选"N".如果有其它模块需要此特性,会被自动选中.
Null algorithms
CONFIG_CRYPTO_NULL
NULL加密算法(什么也不做),用于IPsec协议的封装安全载荷模块(ESP)
Parallel crypto engine
CONFIG_CRYPTO_PCRYPT
将任意加密算法转化成并行算法,并在内核线程中执行.
Software async crypto daemon
CONFIG_CRYPTO_CRYPTD
这是一个通用的软件异步加密守护进程,可将任意的同步软件加密算法转换成在内核线程中执行的异步算法.
Software async multi-buffer crypto daemon
CONFIG_CRYPTO_MCRYPTD
这是一个通用的软件异步加密守护进程,可将任意的多缓冲加密算法转换成在内核线程中执行的异步多缓冲加密算法.
Authenc support
CONFIG_CRYPTO_AUTHENC
用于IPSec组合模式的包装器:认证加密并对IPSec提供多重加密.
Testing module
CONFIG_CRYPTO_TEST
丑陋的加密测试模块.仅供调试使用.
CCM support
CONFIG_CRYPTO_CCM
CBC-MAC计数器.IPsec需要它.
GCM/GMAC support
CONFIG_CRYPTO_GCM
GCM(Galois/Counter Mode)与GMAC(Galois Message Authentication Code)支持.IPsec需要它.[注释]GCM是一种对称加密算法的块密码工作模式,使用128位块大小.块密码工作模式可以分为加密模式,认证模式,认证加密模式.GCM模式为认证模式的一种,提供认证和加密两种功能.
Sequence Number IV Generator
CONFIG_CRYPTO_SEQIV
序号初始向量(IV)生成器.它基于一个序号与一个盐粒子(salt)的异或值生成一个向量.此算法主要用于块密码的CTR(计数模式).
CBC support
CONFIG_CRYPTO_CBC
块密码工作模式:密码分组链接(Cipher Block Chaining)模式.IPSec需要它.
CTR support
CONFIG_CRYPTO_CTR
块密码工作模式:计数器(Counter)模式.IPSec需要它.
CTS support
CONFIG_CRYPTO_CTS
块密码工作模式:密文窃取(Cipher Text Stealing)模式.Kerberos gss机制支持的AES加密需要它.
ECB support
CONFIG_CRYPTO_ECB
块密码工作模式电子密码本(Electronic CodeBook)模式.这是最简单的分组密码算法,只是简单的分别加密每个块.
LRW support
CONFIG_CRYPTO_LRW
块密码工作模式:LRW(Liskov Rivest Wagner)模式.这个模式以三个人名命名.这是一种小数据块加密模式,加密后的数据保持与明文数据同样的长度,专门用于CONFIG_DM_CRYPT模块加密磁盘区块(使用"aes-lrw-benbi"指定).
PCBC support
CONFIG_CRYPTO_PCBC
块密码工作模式:填充密码块链接(Propagating Cipher Block Chaining)模式.CONFIG_AF_RXRPC需要它.
XTS support
CONFIG_CRYPTO_XTS
块密码工作模式:XTS模式.这是IEEE1619/D16规范制定的一种小数据块加密模式,加密后的数据保持与明文数据同样的长度,专门用于加密磁盘区块(使用"aes-xts-plain"指定).
CMAC support
CONFIG_CRYPTO_CMAC
NIST(美国国家标准与技术研究所)制定的基于密文的消息认证码(Cipher-based Message Authentication Code)
HMAC support
CONFIG_CRYPTO_HMAC
基于哈希的消息验证代码(RFC2104).在发送方和接收方共享机密密钥的前提下,HMAC可用于确定通过不安全信道发送的消息是否被篡改.IPSec需要它.systemd依赖于它.
XCBC support
CONFIG_CRYPTO_XCBC
基于哈希的加密算法(RFC3566)
VMAC support
CONFIG_CRYPTO_VMAC
VMAC是一种专用于64位CPU的高速消息认证算法
CRC32c CRC algorithm
CONFIG_CRYPTO_CRC32C
CRC32c摘要算法是常见的CRC32循环冗余校验的一个变种,仅多项式常数不同,算法完全一样.常用于iSCSI和SCTP数据校验.
CRC32c INTEL hardware acceleration
CONFIG_CRYPTO_CRC32C_INTEL
利用SSE4.2指令集中专用的"CRC32"指令,可以提高最少10倍的运算速度.如果你的CPU支持SSE4.2,建议选"Y".
CRC32 CRC algorithm
CONFIG_CRYPTO_CRC32
经典的CRC32循环冗余校验算法.
CRC32 PCLMULQDQ hardware acceleration
CONFIG_CRYPTO_CRC32_PCLMUL
使用处理器的PCLMULQDQ指令(又称CLMUL指令集,其实只有一条指令)加速CRC32的运算.PCLMULQDQ是从Intel Westmere和AMD Bulldozer开始引入的指令(隶属于AES指令集).可以大幅提升CRC32的运算速度.如果你的CPU支持AES指令集(grep aes /proc/cpuinfo),建议选"Y".
CRCT10DIF algorithm
CONFIG_CRYPTO_CRCT10DIF
CRC T10 DIF(Data Integrity Field)算法可用于保障T10/SCSI设备的端到端的数据完整性.
CRCT10DIF PCLMULQDQ hardware acceleration
CONFIG_CRYPTO_CRCT10DIF_PCLMUL
使用处理器的PCLMULQDQ指令(又称CLMUL指令集,其实只有一条指令)加速CRC T10 DIF的运算.PCLMULQDQ是从Intel Westmere和AMD Bulldozer开始引入的指令(隶属于AES指令集).可以大幅提升CRC T10 DIF的运算速度.如果你的CPU支持AES指令集(grep aes /proc/cpuinfo),建议选"Y".
GHASH digest algorithm
CONFIG_CRYPTO_GHASH
GHASH是用于GCM(Galois/Counter Mode)的消息摘要算法.
MD4 digest algorithm
CONFIG_CRYPTO_MD4
老旧的MD4(RFC1320)摘要算法,已经被淘汰.
MD5 digest algorithm
CONFIG_CRYPTO_MD5
广泛使用的MD5(RFC1321)摘要算法,128位.已经被发现可以快速找到碰撞,正逐渐淘汰中.
Michael MIC keyed digest algorithm
CONFIG_CRYPTO_MICHAEL_MIC
Michael MIC是仅用于TKIP(IEEE 802.11i)的摘要算法.不能用于其它场合,因为它存在一些缺陷.
RIPEMD-128 digest algorithm
CONFIG_CRYPTO_RMD128
RIPEMD-128(ISO/IEC 10118-3:2004)128位摘要算法.安全性不高,不建议使用.
RIPEMD-160 digest algorithm
CONFIG_CRYPTO_RMD160
RIPEMD-160(ISO/IEC 10118-3:2004)160位摘要算法.是替代各种128位摘要算法(RIPEMD-128,MD5,MD4)的首选.其运算速度和SHA1相当,但是目前尚无已知有效的攻击方法.
RIPEMD-256 digest algorithm
CONFIG_CRYPTO_RMD256
RIPEMD-
256在本质上和RIPEMD-128是一样的.因为RIPEMD的设计者们根本就没有真正设计256和320位这两种标准,他们只是在128位和160
位的基础上,修改了初始参数和s-box来达到输出为256和320位的目的.所以,256位的强度和128相当,而320位的强度和160位相当.
RIPEMD-320 digest algorithm
CONFIG_CRYPTO_RMD320
RIPEMD-
320在本质上和RIPEMD-160是一样的.因为RIPEMD的设计者们根本就没有真正设计256和320位这两种标准,他们只是在128位和160
位的基础上,修改了初始参数和s-box来达到输出为256和320位的目的.所以,256位的强度和128相当,而320位的强度和160位相当.
SHA1 digest algorithm
CONFIG_CRYPTO_SHA1
目前使用最广泛的SHA-1(FIPS 180-1/DFIPS 180-2)160位摘要算法是SHA家族中的一员,在许多安全协议中广为使用(TLS,SSL,PGP,SSH,S/MIME,IPsec等).SHA-1曾被视为是MD5的后继者,但由于出现了针对SHA-1的理论上破解的方法(不等于实践中被破解),有些人已经开始改用其它的替代算法(例如SHA-3).
SHA1 digest algorithm (SSSE3/AVX)
CONFIG_CRYPTO_SHA1_SSSE3
使用SSSE3/AVX指令集加速SHA-1的计算.如果你的CPU支持SSSE3/AVX指令集,建议选"Y".
SHA256 digest algorithm (SSSE3/AVX/AVX2)
CONFIG_CRYPTO_SHA256_SSSE3
使用SSSE3/AVX/AVX2指令集加速SHA-256的计算.
SHA512 digest algorithm (SSSE3/AVX/AVX2)
CONFIG_CRYPTO_SHA512_SSSE3
使用SSSE3/AVX/AVX2指令集加速SHA-512的计算.
SHA224 and SHA256 digest algorithm
CONFIG_CRYPTO_SHA256
SHA-224和SHA-256摘要算法,速度较SHA1稍慢,都属于"SHA-2"系列,目前尚无已知的有效攻击方法.但并未被广泛使用.systemd依赖于它.
SHA384 and SHA512 digest algorithms
CONFIG_CRYPTO_SHA512
SHA-384和SHA-512摘要算法,速度大约只有SHA1的40-50%,都属于"SHA-2"系列,目前尚无已知的有效攻击方法.但并未被广泛使用.
Tiger digest algorithms
CONFIG_CRYPTO_TGR192
Tiger号称是最快的哈希算法,专门为64位机器做了优化.
Whirlpool digest algorithms
CONFIG_CRYPTO_WP512
Whirlpool是一种512位的摘要算法,利用了已有的AES分组密码算法构造Hash函数,拥有相当高的安全性,已经被列入了ISO标准,目前最新版本为3.0(2003年发布).
GHASH digest algorithm (CLMUL-NI accelerated)
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL
使用CPU的CLMUL指令集(包含在AES指令集中)加速GHASH摘要算法.
AES cipher algorithms
CONFIG_CRYPTO_AES
AES(FIPS-197)又称"Rijndael",是目前最佳的对称加密算法,快速且节省内存,可以使用128/192/256位密钥,是目前使用最广泛的对称加密算法.
AES cipher algorithms (x86_64)
CONFIG_CRYPTO_AES_X86_64
针对x86_64架构的AES实现.
AES cipher algorithms (AES-NI)
CONFIG_CRYPTO_AES_NI_INTEL
使用AES指令集加速AES的计算.如果你的CPU支持AES指令集(grep aes /proc/cpuinfo),建议选"Y".
Anubis cipher algorithm
CONFIG_CRYPTO_ANUBIS
Anubis是一种分组密码算法.分组长度为128位,密钥长度可变(最低128位),圈数可变(最低12圈).是欧洲于2000年1月1日启动的NESSIE计划17个候选分组加密算法之一.
ARC4 cipher algorithm
CONFIG_CRYPTO_ARC4
一种脆弱的流对称加密算法,仅用于已经被淘汰的WEP.
Blowfish cipher algorithm
CONFIG_CRYPTO_BLOWFISH
Blowfish对称加密算法,一种又老又慢的对称加密算法.
Blowfish cipher algorithm (x86_64)
CONFIG_CRYPTO_BLOWFISH_X86_64
针对x86_64架构的Blowfish实现
Blowfish cipher algorithm (x86_64/AVX2)
CONFIG_CRYPTO_BLOWFISH_AVX2_X86_64
使用AVX2指令集加速Blowfish的计算.
Camellia cipher algorithms
CONFIG_CRYPTO_CAMELLIA
Camellia是欧盟NESSIE项目的选定算法,也是日本CRYPTREC项目的推荐算法.可以使用128/192/256位密钥,具有与AES同等级的安全强度及运算速度.
Camellia cipher algorithm (x86_64)
CONFIG_CRYPTO_CAMELLIA_X86_64
针对x86_64架构的Camellia实现
Camellia cipher algorithm (x86_64/AES-NI/AVX)
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64
使用AES指令集/AVX指令集加速Camellia的计算.
Camellia cipher algorithm (x86_64/AES-NI/AVX2)
CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64
使用AES指令集/AVX2指令集加速Camellia的计算.
CAST5 (CAST-128) cipher algorithm
CONFIG_CRYPTO_CAST5
老旧的CAST5(CAST-128)对称加密算法
CAST5 (CAST-128) cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_CAST5_AVX_X86_64
使用AVX指令集加速CAST5的计算.
CAST6 (CAST-256) cipher algorithm
CONFIG_CRYPTO_CAST6
老旧的CAST6(CAST-256)对称加密算法
CAST6 (CAST-256) cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_CAST6_AVX_X86_64
使用AVX指令集加速CAST6的计算.
DES and Triple DES EDE cipher algorithms
CONFIG_CRYPTO_DES
老旧的DES和三重DES对称加密算法.
FCrypt cipher algorithm
CONFIG_CRYPTO_FCRYPT
FCrypt对称加密算法仅用于CONFIG_AF_RXRPC
Khazad cipher algorithm
CONFIG_CRYPTO_KHAZAD
Khazad是一种最终进入NESSIE决赛的对称加密算法,专为64位CPU设计,支持128位密钥.
Salsa20 stream cipher algorithm
CONFIG_CRYPTO_SALSA20
Salsa20是一种流密码算法,也是eSTREAM工程最终胜选算法之一.
Salsa20 stream cipher algorithm (x86_64)
CONFIG_CRYPTO_SALSA20_X86_64
针对x86_64架构的Salsa20实现
SEED cipher algorithm
CONFIG_CRYPTO_SEED
SEED(RFC4269)对称分组加密算法,采用128位密钥,是韩国的国家标准.
Serpent cipher algorithm
CONFIG_CRYPTO_SERPENT
Serpent对称加密算法曾经是AES的最终5个候选算法之一,因为速度较Rijndael慢而最终得票数次之.目前尚未发现针对Serpent的有效攻击,因此被认为是一种强安全算法(甚至被认为比Rijndael更安全).
Serpent cipher algorithm (x86_64/SSE2)
CONFIG_CRYPTO_SERPENT_SSE2_X86_64
使用SSE2指令集加速Serpent的计算.
Serpent cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_SERPENT_AVX_X86_64
使用AVX指令集加速Serpent的计算.
Serpent cipher algorithm (x86_64/AVX2)
CONFIG_CRYPTO_SERPENT_AVX2_X86_64
使用AVX2指令集加速Serpent的计算.
TEA, XTEA and XETA cipher algorithms
CONFIG_CRYPTO_TEA
较弱的几种对称加密算法
Twofish cipher algorithm
CONFIG_CRYPTO_TWOFISH
Twofish是派生自Blowfish的对称加密算法,曾经是AES的最终5个候选算法之一,最终得票数第三.
Twofish cipher algorithm (x86_64)
CONFIG_CRYPTO_TWOFISH_X86_64
针对x86_64架构的Twofish实现
Twofish cipher algorithm (x86_64, 3-way parallel)
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY
针对x86_64架构的三路并行Twofish实现.能够充分利用乱序执行CPU的指令周期.
Twofish cipher algorithm (x86_64/AVX)
CONFIG_CRYPTO_TWOFISH_AVX_X86_64
使用AVX指令集加速Twofish的计算.
Twofish cipher algorithm (x86_64/AVX2)
CONFIG_CRYPTO_TWOFISH_AVX2_X86_64
使用AVX2指令集加速Twofish的计算.
Deflate compression algorithm
CONFIG_CRYPTO_DEFLATE
Deflate(RFC1951)无损数据压缩算法.当在IPSec中使用IPCOMP协议时才需要.
Zlib compression algorithm
CONFIG_CRYPTO_ZLIB
zlib无损数据压缩算法是一种事实上的业界标准.被广泛应用.
LZO compression algorithm
CONFIG_CRYPTO_LZO
LZO是致力于解压速度的一种无损数据压缩算法.
Pseudo Random Number Generation for Cryptographic modules
CONFIG_CRYPTO_ANSI_CPRNG
符合ANSI(美国国家标准学会)X9.31-1998附录A.2.4所描述的伪随机数发生器(基于3DES).这是一种较老的算法,生成的随机数质量不高.
NIST SP800-90A DRBG
CONFIG_CRYPTO_DRBG_MENU
符合NIST(美国国家标准技术局)SP800-90A标准的伪随机数发生器(DRBG).SP800-90A是美国政府FIPS 140-2安全认证强制推广的加密标准,其中包含了生成强随机数的算法.这是一种较新的算法,生成的随机数质量较高.建议选"Y".选中此项后,还需选中至少一个子项.
Enable Hash DRBG
CONFIG_CRYPTO_DRBG_HASH
符合 NIST SP800-90A 标准的 Hash DRBG 变种算法(基于SHA256).建议选"Y".
Enable CTR DRBG
CONFIG_CRYPTO_DRBG_CTR
符合 NIST SP800-90A 标准的 CTR DRBG 变种算法(基于AES).建议选"Y".
Jitterentropy Non-Deterministic Random Number Generator
CONFIG_CRYPTO_JITTERENTROPY
JitterEntropy伪随机数生成器以CPU执行时间的抖动作为熵源,这是一种高质量的熵源,可作为其他随机数生成器(/dev/urandom)的种子.这样就无需在系统启动时从磁盘上加载已经保存的种子文件了.
User-space interface for hash algorithms
CONFIG_CRYPTO_USER_API_HASH
哈希算法的用户空间接口.systemd依赖于它.
User-space interface for symmetric key cipher algorithms
CONFIG_CRYPTO_USER_API_SKCIPHER
对称加密算法的用户空间接口.不确定的选"N".
User-space interface for random number generator algorithms
CONFIG_CRYPTO_USER_API_RNG
随机数发生器算法的用户空间接口.不确定的选"N".
User-space interface for AEAD cipher algorithms
CONFIG_CRYPTO_USER_API_AEAD
AEAD(Authenticated-Encryption with Addtional Data)加密算法的用户空间接口.AEAD是当前最好的加密模式.不确定的选"N".
Hardware crypto devices
CONFIG_CRYPTO_HW
硬件加密设备支持
Support for VIA PadLock ACE
CONFIG_CRYPTO_DEV_PADLOCK
带有PadLock技术的VIA系列处理器支持
PadLock driver for AES algorithm
CONFIG_CRYPTO_DEV_PADLOCK_AES
利用PadLock技术加速AES运算.VIA C3及以上的CPU都支持.
PadLock driver for SHA1 and SHA256 algorithms
CONFIG_CRYPTO_DEV_PADLOCK_SHA
利用PadLock技术加速SHA1和SHA256运算.VIA C7及以上的CPU都支持.
Support for AMD Cryptographic Coprocessor
CONFIG_CRYPTO_DEV_CCP
AMD密码协处理器支持.
Support for Intel(R) DH895xCC
CONFIG_CRYPTO_DEV_QAT_DH895xCC
支持QuickAssist技术的Intel DH895xcc芯片.Skylake的服务器平台的部分CPU型号支持QuickAssist技术.
Support for Intel(R) DH895xCC Virtual Function
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF
支持QuickAssist技术的Intel DH895xcc芯片.Skylake的服务器平台的部分CPU型号支持QuickAssist技术.
Asymmetric (public-key cryptographic) key type
CONFIG_ASYMMETRIC_KEY_TYPE
非对称加密算法(公钥加密算法)
Asymmetric public-key crypto algorithm subtype
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE
非对称公钥加密算法子类型.如果需要生成或者校验签名,那就还必须配合哈希算法一起使用.
RSA public-key algorithm
CONFIG_PUBLIC_KEY_ALGO_RSA
RSA算法(PKCS#1, RFC3447)支持
X.509 certificate parser
CONFIG_X509_CERTIFICATE_PARSER
X.509证书解析支持
Certificates for signature checking
用于检查签名有效性的证书:(1)用于检查内核模块的签名,(2)用于检查全局密钥环(keyring)中的密钥的可靠性.