1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2026-06-15 09:06:08 -05:00
Files
VeraCrypt/doc/html/zh-cn/Argon2id.html
T
Mounir IDRASSI a751e75588 docs: clarify Argon2id and BLAKE2b-512 KDF usage
Document BLAKE2b-512 and Argon2id usage in the HTML/CHM user guide and Russian/Chinese translations. Clarify Argon2id's non-system scope, PBKDF2-HMAC system encryption behavior, PIM parameters, and regenerate the CHM files.
2026-06-14 18:43:46 +09:00

175 lines
9.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="Key%20Derivation%20Algorithms.html">密钥推导算法</a>
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
<a href="Argon2id.html">Argon2id</a>
</p></div>
<div class="wikidoc">
<h1>Argon2id</h1>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
Argon2id 是一种内存困难型密钥推导函数,设计用于抵抗时间-内存权衡攻击和侧信道攻击。它在 2015 年被选为密码哈希竞赛(PHC)的获胜算法,并由 RFC 9106 定义。VeraCrypt 支持将 Argon2id 作为 PBKDF2-HMAC 的替代方案用于非系统卷头密钥推导。
</div>
<h3>主要特性</h3>
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>内存困难:</strong>需要可配置数量的内存,从而提高对专用硬件攻击的抵抗能力。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>抗侧信道攻击:</strong>结合了依赖数据和不依赖数据的内存访问模式。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>内部哈希函数:</strong>内部使用 <a href="BLAKE2b-512.html" style="color:#0080c0; text-decoration:none">BLAKE2b-512</a>,无需单独选择哈希算法。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>可调参数:</strong>允许调整内存成本、时间成本和并行度。
</li>
</ul>
<h3>Argon2 变体</h3>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
Argon2 有三个变体:
</div>
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>Argon2d</strong>使用依赖数据的内存访问方式,可抵抗时间-内存权衡攻击,但更容易受到侧信道攻击。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>Argon2i</strong>使用不依赖数据的内存访问方式,可抵抗侧信道攻击,但对时间-内存权衡攻击的抵抗力较弱。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>Argon2id</strong>结合两种变体的混合方式,可同时抵抗两类攻击(VeraCrypt 使用此变体)。
</li>
</ul>
<h3>VeraCrypt 中的参数</h3>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
VeraCrypt 使用 Argon2id 时采用以下参数配置:
</div>
<h4>内存成本(m_cost</h4>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
密钥推导过程中使用的内存量由 PIM 值控制:
</div>
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>公式:</strong>m_cost(pim) = min(64 MiB + (pim - 1) &times; 32 MiB, 1024 MiB)
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>范围:</strong>64 MiB 到 1024 MiB(在 PIM = 31 时达到上限)
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>默认值:</strong>416 MiB(相当于 PIM = 12
</li>
</ul>
<h4>时间成本(t_cost</h4>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
密钥推导过程中执行的迭代次数:
</div>
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>当 PIM &le; 31 时:</strong>t_cost(pim) = 3 + floor((pim - 1) / 3)
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>当 PIM &gt; 31 时:</strong>t_cost(pim) = 13 + (pim - 31)
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>默认值:</strong>6 次迭代(相当于 PIM = 12)
</li>
</ul>
<h4>并行度</h4>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
计算过程中使用的并行线程数:
</div>
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>值:</strong>VeraCrypt 中始终固定为 1 个线程。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>原因:</strong>确保在不同硬件配置上具有一致的行为。
</li>
</ul>
<h3>相对于 PBKDF2 的优势</h3>
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>内存困难性:</strong>需要分配大量内存,使 GPU 和 ASIC 攻击成本更高。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>现代设计:</strong>专门设计用于抵抗当代攻击方法。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>抗侧信道攻击:</strong>内置对缓存计时和其他侧信道攻击的防护。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>标准化:</strong>已在 RFC 9106 中正式标准化。
</li>
</ul>
<h3>使用注意事项</h3>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
在 VeraCrypt 中使用 Argon2id 时:
</div>
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>内存要求:</strong>请确保有足够的 RAM,尤其是在使用较高 PIM 值时。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>性能:</strong>较高的内存成本可能导致挂载时间变慢,但可提供更好的安全性。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>兼容性:</strong>适用于支持多种密钥推导函数的 VeraCrypt 版本。
</li>
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
<strong>无需哈希选择:</strong>与 PBKDF2-HMAC 不同,无需选择单独的哈希算法。
</li>
</ul>
<h3>技术规格</h3>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
<strong>算法:</strong>RFC 9106 定义的 Argon2id<br/>
<strong>内部哈希:</strong><a href="BLAKE2b-512.html" style="color:#0080c0; text-decoration:none">BLAKE2b-512</a><br/>
<strong>盐值大小:</strong>512 位(与 PBKDF2-HMAC 相同)<br/>
<strong>头 KDF 输出长度:</strong>当前 VeraCrypt 格式固定为 1536 位(192 字节)。所选加密算法使用该输出中所需的前缀部分(例如 AES(AES-256-XTS)使用前 64 字节)。第三方实现必须先从 Argon2id 请求 192 字节,再选择所需前缀;如果只请求所选算法的密钥材料长度,将得到不同的 Argon2id 输出。<br/>
<strong>版本:</strong>Argon2 版本 0x13(十进制 19
</div>
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
有关 PIM 值及其对 Argon2id 参数影响的更多信息,请参阅
<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html" style="text-align:left; color:#0080c0; text-decoration:none">
个人迭代乘数(PIM</a>部分。
</div>
</div><div class="ClearBoth"></div></body></html>