mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 02:58:02 -06:00
* Documentation: Remove XHTML spec and fix errors None of the docs follow the XHTML specification, which means that programs that expect this (such as Gnome Web) as it is advertised as such, will completely fail to parse it as it is incorrect syntax. So it is removed. * Remove .chm files
91 lines
7.0 KiB
HTML
91 lines
7.0 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||
<title>VeraCrypt - 为偏执者提供强大安全保障的免费开源磁盘加密工具</title>
|
||
<meta name="description" content="VeraCrypt是一款适用于Windows、Mac OS X和Linux的免费开源磁盘加密软件。在攻击者强迫你透露密码的情况下,VeraCrypt提供了似是而非的否认性。与文件加密不同,VeraCrypt执行的数据加密是实时(即时)、自动、透明的,只需要很少的内存,并且不涉及临时未加密文件。"/>
|
||
<meta name="keywords" content="加密, 安全"/>
|
||
<link href="styles.css" rel="stylesheet" type="text/css" />
|
||
</head>
|
||
<body>
|
||
|
||
<div>
|
||
<a href="Documentation.html"><img src="VeraCrypt128x128.png" alt="VeraCrypt"/></a>
|
||
</div>
|
||
|
||
<div id="menu">
|
||
<ul>
|
||
<li><a href="Home.html">主页</a></li>
|
||
<li><a href="Code.html">源代码</a></li>
|
||
<li><a href="Downloads.html">下载</a></li>
|
||
<li><a class="active" href="Documentation.html">文档</a></li>
|
||
<li><a href="Donation.html">捐赠</a></li>
|
||
<li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">论坛</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div>
|
||
<p>
|
||
<a href="Documentation.html">文档</a>
|
||
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||
<a href="Technical%20Details.html">技术细节</a>
|
||
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||
<a href="Encryption%20Scheme.html">加密方案</a>
|
||
</p></div>
|
||
|
||
<div class="wikidoc">
|
||
<h1>加密方案</h1>
|
||
<p>在挂载VeraCrypt卷时(假设没有缓存的密码/密钥文件)或执行预启动认证时,会执行以下步骤:</p>
|
||
<ol>
|
||
<li>将卷的前512字节(即标准卷头)读入内存,其中前64字节是盐值(请参阅
|
||
<a href="VeraCrypt%20Volume%20Format%20Specification.html">
|
||
<em>VeraCrypt卷格式规范</em></a>)。对于系统加密(请参阅
|
||
<a href="System%20Encryption.html"><em>系统加密</em></a>章节),将第一个逻辑驱动器磁道的最后512字节读入内存(VeraCrypt引导加载程序存储在系统驱动器的第一个磁道和/或VeraCrypt救援磁盘上)。 </li>
|
||
<li>将卷的第65536 - 66047字节读入内存(请参阅
|
||
<a href="VeraCrypt%20Volume%20Format%20Specification.html">
|
||
<em>VeraCrypt卷格式规范</em></a>部分)。对于系统加密,将活动分区后面的第一个分区的第65536 - 66047字节读入内存(请参阅
|
||
<a href="Hidden%20Operating%20System.html">
|
||
<em>隐藏操作系统</em></a>部分)。如果此卷(或引导分区后面的分区)内有隐藏卷,此时我们已经读取了其卷头;否则,我们只是读取了随机数据(是否存在隐藏卷必须通过尝试解密此数据来确定;更多信息请参阅
|
||
<a href="Hidden%20Volume.html"><em>隐藏卷</em></a>部分)。
|
||
</li>
|
||
<li>现在VeraCrypt尝试解密在步骤(1)中读取的标准卷头。解密过程中使用和生成的所有数据都保存在内存中(VeraCrypt从不将它们保存到磁盘)。以下参数是未知的†,必须通过试错过程(即测试以下所有可能的组合)来确定:
|
||
<ol type="a">
|
||
<li>头密钥派生函数使用的伪随机函数(PRF,如PKCS #5 v2.0中所指定;请参阅
|
||
<a href="Header%20Key%20Derivation.html">
|
||
<em>头密钥派生、盐值和迭代次数</em></a>部分),可以是以下之一:
|
||
<p>HMAC - SHA - 512、HMAC - SHA - 256、HMAC - BLAKE2S - 256、HMAC - Whirlpool。如果用户明确指定了PRF,则将直接使用它,而不尝试其他可能性。</p>
|
||
<p>用户输入的密码(可能已应用了一个或多个密钥文件 - 请参阅
|
||
<a href="Keyfiles%20in%20VeraCrypt.html">
|
||
<em>密钥文件</em></a>部分)、PIM值(如果指定)和在步骤(1)中读取的盐值将传递给头密钥派生函数,该函数会生成一系列值(请参阅
|
||
<a href="Header%20Key%20Derivation.html">
|
||
<em>头密钥派生、盐值和迭代次数</em></a>部分),从中形成头加密密钥和辅助头密钥(XTS模式)。(这些密钥用于解密卷头。)</p>
|
||
</li>
|
||
<li>加密算法:AES - 256、Serpent、Twofish、AES - Serpent、AES - Twofish - Serpent等。</li>
|
||
<li>操作模式:仅支持XTS模式</li>
|
||
<li>密钥大小</li>
|
||
</ol>
|
||
</li>
|
||
<li>如果解密数据的前4个字节包含ASCII字符串“VERA”,并且解密数据(卷头)的最后256字节的CRC - 32校验和与解密数据的第8字节处的值匹配,则认为解密成功(该值对手是未知的,因为它是加密的 - 请参阅
|
||
<a href="VeraCrypt%20Volume%20Format%20Specification.html">
|
||
<em>VeraCrypt卷格式规范</em></a>部分)。如果不满足这些条件,过程将从步骤(3)重新开始,但这次使用在步骤(2)中读取的数据(即可能的隐藏卷头)。如果仍然不满足条件,则挂载终止(密码错误、卷损坏或不是VeraCrypt卷)。
|
||
</li>
|
||
<li>现在我们知道(或极有可能假设)我们拥有正确的密码、正确的加密算法、模式、密钥大小和正确的头密钥派生算法。如果我们成功解密了在步骤(2)中读取的数据,我们还知道我们正在挂载一个隐藏卷,并且其大小可以从在步骤(3)中解密的步骤(2)读取的数据中获取。
|
||
</li>
|
||
<li>使用主主密钥**和辅助主密钥(XTS模式 - 请参阅
|
||
<a href="Modes%20of%20Operation.html"><em>操作模式</em></a>部分)重新初始化加密例程,这些密钥从解密的卷头中获取(请参阅
|
||
<a href="VeraCrypt%20Volume%20Format%20Specification.html">
|
||
<em>VeraCrypt卷格式规范</em></a>部分)。这些密钥可用于解密卷的任何扇区,但卷头区域(或系统加密的密钥数据区域)除外,该区域使用头密钥进行加密。卷被挂载。
|
||
</li>
|
||
</ol>
|
||
<p>另请参阅
|
||
<a href="Modes%20of%20Operation.html">
|
||
<em>操作模式</em></a>部分、
|
||
<a href="Header%20Key%20Derivation.html">
|
||
<em>头密钥派生、盐值和迭代次数</em></a>部分以及
|
||
<a href="Security%20Model.html"><em>安全模型</em></a>章节。</p>
|
||
<p>* 如果活动分区的大小小于256 MB,则从活动分区后面的<em>第二个</em>分区读取数据(Windows 7及更高版本默认不从安装它们的分区启动)。</p>
|
||
<p>† 保留这些参数的秘密并不是为了增加攻击的复杂性,主要是为了使VeraCrypt卷无法识别(与随机数据无法区分),如果这些参数未加密存储在卷头中,这将很难实现。另请注意,在传统MBR引导模式下,如果系统加密使用非级联加密算法,则该算法<em>是</em>已知的(可以通过分析存储在第一个逻辑驱动器磁道或VeraCrypt救援磁盘上的未加密VeraCrypt引导加载程序的内容来确定)。</p>
|
||
<p>** 主密钥是在卷创建期间生成的,之后无法更改。更改卷密码是通过使用新的头密钥(从新密码派生)重新加密卷头来实现的。</p>
|
||
<p> </p>
|
||
<p><a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></p>
|
||
</div><div class="ClearBoth"></div></body></html> |