1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 02:58:02 -06:00

Fix a mistake (#1530)

* Fix a mistake

* Fix a mistake
This commit is contained in:
风之暇想
2025-04-23 15:55:26 +08:00
committed by GitHub
parent dc12fb746f
commit 9412b1e119
2 changed files with 44 additions and 20 deletions

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh">
<head> <head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>VeraCrypt - 为偏执提供强大安全保障的免费开源磁盘加密软件</title> <title>VeraCrypt - 为偏执提供强大安全保障的免费开源磁盘加密工具</title>
<meta name="description" content="VeraCrypt是一款适用于Windows、Mac OS X和Linux的免费开源磁盘加密软件。若攻击者迫使您透露密码VeraCrypt可提供似是而非的否认。与文件加密不同VeraCrypt行的数据加密是实时(即插即用)、自动、透明的,占用内存极少,且不涉及临时未加密文件。"/> <meta name="description" content="VeraCrypt是一款适用于Windows、Mac OS X和Linux的免费开源磁盘加密软件。若攻击者迫使您透露密码VeraCrypt可提供似是而非的否认。与文件加密不同VeraCrypt行的数据加密是实时(即)、自动、透明的,仅需极少内存,且不涉及临时未加密文件。"/>
<meta name="keywords" content="加密, 安全"/> <meta name="keywords" content="加密, 安全"/>
<link href="styles.css" rel="stylesheet" type="text/css" /> <link href="styles.css" rel="stylesheet" type="text/css" />
</head> </head>
@@ -29,33 +29,57 @@
<p> <p>
<a href="Documentation.html">文档</a> <a href="Documentation.html">文档</a>
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px"> <img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
<a href="Hardware%20Acceleration.html">硬件加速</a> <a href="Technical%20Details.html">技术细节</a>
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
<a href="Header%20Key%20Derivation.html">头密钥推导、盐值和迭代次数</a>
</p></div> </p></div>
<div class="wikidoc"> <div class="wikidoc">
<h1>硬件加速</h1> <h1>头密钥推导、盐值和迭代次数</h1>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px"> <div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
一些处理器CPU支持硬件加速的 <a href="AES.html" style="text-align:left; color:#0080c0; text-decoration:none.html"> 头密钥用于加密和解密VeraCrypt卷头的加密区域对于
高级加密标准AES</a> 加密*其速度通常比同一处理器上的纯软件实现的加密速度快4 - 8倍。 <a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
系统加密</a>,则是密钥数据区域),该区域包含主密钥和其他数据(请参阅
<a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
加密方案</a><a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
VeraCrypt卷格式规范</a> 部分。在VeraCrypt创建的卷中以及对于
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
系统加密</a>该区域采用XTS模式进行加密请参阅 <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
操作模式</a> 部分。VeraCrypt用于生成头密钥和辅助头密钥XTS模式的方法是PBKDF2该方法在PKCS #5 v2.0中定义;请参阅
<a href="References.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
[7]</a>
</div> </div>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px"> <div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
默认情况下VeraCrypt会在具备支持英特尔高级加密标准新指令集AES-NI的处理器的计算机上使用硬件加速的AES。具体而言VeraCrypt使用执行所谓AES轮即AES算法的主要部分的AES-NI指令**。VeraCrypt不使用任何执行密钥生成的AES-NI指令。 使用了512位的盐值这意味着每个密码有2<sup style="text-align:left; font-size:85%">512</sup> 个密钥。这显著降低了对“离线”字典/“彩虹表”攻击的脆弱性(使用盐值时,为字典中的所有密码预先计算所有密钥非常困难) [7]。盐值由
<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none.html">
VeraCrypt随机数生成器</a> 在卷创建过程中生成的随机值组成。头密钥推导函数基于HMAC - SHA - 512、HMAC - SHA - 256、HMAC - BLAKE2S - 256、HMAC - Whirlpool或HMAC - Streebog请参阅 [8, 9, 20, 22] — 用户可以选择使用哪种。派生密钥的长度不取决于底层哈希函数的输出大小。例如即使使用HMAC - SHA - 512AES - 256密码的头密钥始终为256位长在XTS模式下还会使用一个额外的256位辅助头密钥因此AES - 256总共使用两个256位密钥。更多信息请参阅 [7]。为了推导出头密钥,必须执行大量的密钥推导函数迭代,这增加了进行密码穷举搜索(即暴力攻击)所需的时间 [7]。
</div> </div>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px"> <div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
注意默认情况下当加密的Windows系统启动或从休眠状态恢复时前提是处理器支持英特尔AES-NI指令VeraCrypt也会使用硬件加速的AES <p>在1.12版本之前VeraCrypt始终使用固定的迭代次数该次数仅取决于卷类型和使用的推导算法
从1.12版本开始,<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
PIM </a>字段(<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">个人迭代乘数</a>)使用户能够更好地控制密钥推导函数使用的迭代次数。</p>
<p>
<p>当未指定 <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
PIM </a>值或该值等于零时VeraCrypt使用以下默认值<br/>
<ul>
<li>对于使用SHA - 256、BLAKE2s - 256或Streebog的系统分区加密引导加密使用 <strong>200000</strong> 次迭代。</li>
<li>对于使用SHA - 512或Whirlpool的系统加密使用 <strong>500000</strong> 次迭代。</li>
<li>对于非系统加密和文件容器,所有推导算法都将使用 <strong>500000</strong> 次迭代。
</li></ul>
</p>
<p>当用户提供 <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
PIM </a>值时,密钥推导函数的迭代次数计算如下:</p>
<ul>
<li>对于不使用SHA - 512或Whirlpool的系统加密迭代次数 = <strong>PIM x 2048</strong>
</li><li>对于使用SHA - 512或Whirlpool的系统加密迭代次数 = <strong>15000 + (PIM x 1000)</strong>
</li><li>对于非系统加密和文件容器:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
</li></ul>
</div> </div>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px"> <div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
要了解VeraCrypt是否可以在您的计算机上使用硬件加速的AES请选择 <em style="text-align:left">设置</em> > <em style="text-align:left">性能/驱动程序配置</em>,并查看标记为 '<em style="text-align:left">此计算机的处理器CPU支持AES硬件加速</em>' 的字段。 级联密码中使用的头密钥相互独立即使它们是从单个密码可能已应用密钥文件派生而来。例如对于AES - Twofish - Serpent级联头密钥推导函数会根据给定密码推导出一个768位的加密密钥在XTS模式下还会从给定密码推导出一个768位的
<em style="text-align:left">辅助</em> 头密钥。生成的768位头密钥随后被拆分为三个256位密钥在XTS模式下
<em style="text-align:left">辅助</em> 头密钥也被拆分为三个256位密钥因此级联实际上总共使用六个256位密钥其中第一个密钥由Serpent使用第二个密钥由Twofish使用第三个密钥由AES使用此外在XTS模式下第一个辅助密钥由Serpent使用第二个辅助密钥由Twofish使用第三个辅助密钥由AES使用。因此即使攻击者拥有其中一个密钥他也无法使用该密钥推导出其他密钥因为除了对弱密码进行暴力攻击外没有可行的方法来确定派生该密钥的密码。
</div> </div>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px"> <div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
要了解您想购买的处理器是否支持VeraCrypt用于硬件加速AES的英特尔AES-NI指令也称为“AES新指令”请查看处理器的文档或联系供应商/制造商。或者,点击 <a href="http://ark.intel.com/search/advanced/?AESTech=true" style="text-align:left; color:#0080c0; text-decoration:none"> <a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold.html">下一部分 &gt;&gt;</a></div>
此处</a> 查看支持AES-NI指令的英特尔处理器的官方列表。但是请注意英特尔网站列出的一些支持AES-NI的英特尔处理器实际上仅在进行处理器配置更新后才支持AES-NI指令例如i7 - 2630/2635QM、i7 - 2670/2675QM、i5 - 2430/2435M、i5 - 2410/2415M。在这种情况下您应该联系主板/计算机制造商获取包含处理器最新处理器配置更新的BIOS更新。
</div>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
如果您想禁用AES的硬件加速例如因为您希望VeraCrypt仅使用完全开源的AES实现可以通过选择 <em style="text-align:left">设置</em> > <em style="text-align:left">性能和驱动程序选项</em>,并禁用选项 '<em style="text-align:left">使用处理器的AES指令加速AES加密/解密</em>' 来实现。请注意更改此设置后需要重启操作系统以确保所有VeraCrypt组件在内部执行所请求的模式更改。另外当您创建VeraCrypt救援磁盘时此选项的状态会写入救援磁盘并在您从该磁盘启动时使用影响预启动和初始启动阶段。要创建新的VeraCrypt救援磁盘请选择 <em style="text-align:left">系统</em> > <em style="text-align:left">创建救援磁盘</em>
</div>
<p>&nbsp;</p>
<hr align="left" size="1" width="189" style="text-align:left; height:0px; border-width:0px 1px 1px; border-style:solid; border-color:#000000">
<p><span style="text-align:left; font-size:10px; line-height:12px">* 在本章中,“加密”一词也指解密。</span><br style="text-align:left">
<span style="text-align:left; font-size:10px; line-height:12px">** 这些指令是 <em style="text-align:left">AESENC</em><em style="text-align:left">AESENCLAST</em><em style="text-align:left">AESDEC</em><em style="text-align:left">AESDECLAST</em>它们执行以下AES变换<em style="text-align:left">行移位ShiftRows</em><em style="text-align:left">字节替换SubBytes</em><em style="text-align:left">列混合MixColumns</em><em style="text-align:left">逆行移位InvShiftRows</em><em style="text-align:left">逆字节替换InvSubBytes</em><em style="text-align:left">逆列混合InvMixColumns</em><em style="text-align:left">轮密钥加AddRoundKey</em>(有关这些变换的更多详细信息,请参阅 [3]</span><span style="text-align:left; font-size:10px; line-height:12px">.</span></p>
</div><div class="ClearBoth"></div></body></html> </div><div class="ClearBoth"></div></body></html>