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

FIPS 200 compliance
CONFIG_CRYPTO_FIPS

"fips"内核引导参数支持.这是在FIPS200认证的系统中运行所必须的.选"N",除非你确实知道自己在做什么.

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

这是一个通用的软件异步加密守护进程,可将任意的同步软件加密算法转换成在内核线程中执行的异步算法.

Authenc support
CONFIG_CRYPTO_AUTHENC

用于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需要它.

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指令集,建议选"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"系列,目前尚无已知的有效攻击方法.但并未被广泛使用.

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指令集,建议选"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

通用的伪随机数生成器.用于为密码模块提供相应的支持.

User-space interface for hash algorithms
CONFIG_CRYPTO_USER_API_HASH

哈希算法的用户空间接口.

User-space interface for symmetric key cipher algorithms
CONFIG_CRYPTO_USER_API_SKCIPHER

对称加密算法的用户空间接口.

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都支持.

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

签名检查证书

Virtualization
虚拟化支持
仅在将此内核用作宿主机(host)的情况下才需要开启这里的子项

Kernel-based Virtual Machine (KVM) support
CONFIG_KVM

KVM(内核虚拟机)是一种基于Linux内核的全虚拟化技术,需要CPU支持x86硬件虚拟化技术(Intel VT或AMD-V).开启此项后,将可以通过字符文件"/dev/kvm"使用虚拟机.

KVM for Intel processors support
CONFIG_KVM_INTEL
    Intel VT技术支持.也就是cpu-flags中有"vmx"标记.
KVM for AMD processors support
CONFIG_KVM_AMD
    AMD-V技术支持.也就是cpu-flags中有"svm"标记.
Audit KVM MMU
CONFIG_KVM_MMU_AUDIT
    添加一个"kvm.mmu_audit"内核参数,用于控制是否允许在运行时对KVM MMU进行审计."0"表示禁止审计,"1"表示允许审计.主要用于调试目的.不确定的选"N".
KVM legacy PCI device assignment support
CONFIG_KVM_DEVICE_ASSIGNMENT
    通过KVM支持传统的PCI设备分配.内核目前还通过VFIO(CONFIG_VFIO)支持一个全功能的用户空间设备驱动框架,可以取代这里的功能.

Host kernel accelerator for virtio net
CONFIG_VHOST_NET

在宿主机内核中开启此项后,可以加速客户机的网络操作速度(客户机内核必须要加载virtio_net模块(CONFIG_VIRTIO_NET)).

VHOST_SCSI TCM fabric driver
CONFIG_VHOST_SCSI

允许将宿主机的TCM fabric模块(vhost_scsi)用于加载了virtio-scsi模块的客户机.看不懂的选"N".

Cross-endian support for vhost

vhost的跨端支持