diff --git a/doc/chm/zh-cn/VeraCrypt User Guide_zh-cn.chm b/doc/chm/zh-cn/VeraCrypt User Guide_zh-cn.chm index 9b398120..67d98a7d 100644 Binary files a/doc/chm/zh-cn/VeraCrypt User Guide_zh-cn.chm and b/doc/chm/zh-cn/VeraCrypt User Guide_zh-cn.chm differ diff --git a/doc/html_zh-cn/Header Key Derivation.html b/doc/html_zh-cn/Header Key Derivation.html index ed51c7b6..da469251 100644 --- a/doc/html_zh-cn/Header Key Derivation.html +++ b/doc/html_zh-cn/Header Key Derivation.html @@ -1,10 +1,10 @@ - + -VeraCrypt - 为偏执者提供强大安全保障的免费开源磁盘加密软件 - +VeraCrypt - 为偏执狂提供强大安全保障的免费开源磁盘加密工具 + @@ -29,33 +29,57 @@

文档 >> -硬件加速 +技术细节 +>> +头密钥推导、盐值和迭代次数

-

硬件加速

+

头密钥推导、盐值和迭代次数

-一些处理器(CPU)支持硬件加速的 -高级加密标准(AES) 加密*,其速度通常比同一处理器上的纯软件实现的加密速度快4 - 8倍。 +头密钥用于加密和解密VeraCrypt卷头的加密区域(对于 + +系统加密,则是密钥数据区域),该区域包含主密钥和其他数据(请参阅 + +加密方案 +VeraCrypt卷格式规范 部分)。在VeraCrypt创建的卷中(以及对于 + +系统加密),该区域采用XTS模式进行加密(请参阅 +操作模式 部分)。VeraCrypt用于生成头密钥和辅助头密钥(XTS模式)的方法是PBKDF2,该方法在PKCS #5 v2.0中定义;请参阅 + +[7]
-默认情况下,VeraCrypt会在具备支持英特尔高级加密标准新指令集(AES-NI)的处理器的计算机上使用硬件加速的AES。具体而言,VeraCrypt使用执行所谓AES轮(即AES算法的主要部分)的AES-NI指令**。VeraCrypt不使用任何执行密钥生成的AES-NI指令。 +使用了512位的盐值,这意味着每个密码有2512 个密钥。这显著降低了对“离线”字典/“彩虹表”攻击的脆弱性(使用盐值时,为字典中的所有密码预先计算所有密钥非常困难) [7]。盐值由 + +VeraCrypt随机数生成器 在卷创建过程中生成的随机值组成。头密钥推导函数基于HMAC - SHA - 512、HMAC - SHA - 256、HMAC - BLAKE2S - 256、HMAC - Whirlpool或HMAC - Streebog(请参阅 [8, 9, 20, 22]) — 用户可以选择使用哪种。派生密钥的长度不取决于底层哈希函数的输出大小。例如,即使使用HMAC - SHA - 512,AES - 256密码的头密钥始终为256位长(在XTS模式下,还会使用一个额外的256位辅助头密钥;因此,AES - 256总共使用两个256位密钥)。更多信息,请参阅 [7]。为了推导出头密钥,必须执行大量的密钥推导函数迭代,这增加了进行密码穷举搜索(即暴力攻击)所需的时间 [7]。
-注意:默认情况下,当加密的Windows系统启动或从休眠状态恢复时(前提是处理器支持英特尔AES-NI指令),VeraCrypt也会使用硬件加速的AES。 +

在1.12版本之前,VeraCrypt始终使用固定的迭代次数,该次数仅取决于卷类型和使用的推导算法。 +从1.12版本开始, +PIM 字段(个人迭代乘数)使用户能够更好地控制密钥推导函数使用的迭代次数。

+

+

当未指定 +PIM 值或该值等于零时,VeraCrypt使用以下默认值:
+

+

+

当用户提供 +PIM 值时,密钥推导函数的迭代次数计算如下:

+
-要了解VeraCrypt是否可以在您的计算机上使用硬件加速的AES,请选择 设置 > 性能/驱动程序配置,并查看标记为 '此计算机的处理器(CPU)支持AES硬件加速' 的字段。 +级联密码中使用的头密钥相互独立,即使它们是从单个密码(可能已应用密钥文件)派生而来。例如,对于AES - Twofish - Serpent级联,头密钥推导函数会根据给定密码推导出一个768位的加密密钥(在XTS模式下,还会从给定密码推导出一个768位的 +辅助 头密钥)。生成的768位头密钥随后被拆分为三个256位密钥(在XTS模式下, +辅助 头密钥也被拆分为三个256位密钥,因此级联实际上总共使用六个256位密钥),其中第一个密钥由Serpent使用,第二个密钥由Twofish使用,第三个密钥由AES使用(此外,在XTS模式下,第一个辅助密钥由Serpent使用,第二个辅助密钥由Twofish使用,第三个辅助密钥由AES使用)。因此,即使攻击者拥有其中一个密钥,他也无法使用该密钥推导出其他密钥,因为除了对弱密码进行暴力攻击外,没有可行的方法来确定派生该密钥的密码。
-要了解您想购买的处理器是否支持VeraCrypt用于硬件加速AES的英特尔AES-NI指令(也称为“AES新指令”),请查看处理器的文档或联系供应商/制造商。或者,点击 -此处 查看支持AES-NI指令的英特尔处理器的官方列表。但是,请注意,英特尔网站列出的一些支持AES-NI的英特尔处理器,实际上仅在进行处理器配置更新后才支持AES-NI指令(例如,i7 - 2630/2635QM、i7 - 2670/2675QM、i5 - 2430/2435M、i5 - 2410/2415M)。在这种情况下,您应该联系主板/计算机制造商获取包含处理器最新处理器配置更新的BIOS更新。 -
-
-如果您想禁用AES的硬件加速(例如,因为您希望VeraCrypt仅使用完全开源的AES实现),可以通过选择 设置 > 性能和驱动程序选项,并禁用选项 '使用处理器的AES指令加速AES加密/解密' 来实现。请注意,更改此设置后,需要重启操作系统以确保所有VeraCrypt组件在内部执行所请求的模式更改。另外,当您创建VeraCrypt救援磁盘时,此选项的状态会写入救援磁盘,并在您从该磁盘启动时使用(影响预启动和初始启动阶段)。要创建新的VeraCrypt救援磁盘,请选择 系统 > 创建救援磁盘。 -
-

 

-
-

* 在本章中,“加密”一词也指解密。
-** 这些指令是 AESENCAESENCLASTAESDECAESDECLAST,它们执行以下AES变换:行移位(ShiftRows)字节替换(SubBytes)列混合(MixColumns)逆行移位(InvShiftRows)逆字节替换(InvSubBytes)逆列混合(InvMixColumns)轮密钥加(AddRoundKey)(有关这些变换的更多详细信息,请参阅 [3]).

+下一部分 >>
\ No newline at end of file