mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-06-15 00:56:07 -05:00
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.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||||
|
.gitattributes text eol=lf
|
||||||
* text=auto
|
* text=auto
|
||||||
|
|
||||||
# Explicitly declare text files that could be normalized and converted
|
# Explicitly declare text files that could be normalized and converted
|
||||||
@@ -36,6 +37,8 @@ Sources text eol=lf
|
|||||||
*.rc text eol=crlf
|
*.rc text eol=crlf
|
||||||
*.bat text eol=crlf
|
*.bat text eol=crlf
|
||||||
*.cmd text eol=crlf
|
*.cmd text eol=crlf
|
||||||
|
*.hhc -text whitespace=cr-at-eol
|
||||||
|
*.hhp -text whitespace=cr-at-eol
|
||||||
|
|
||||||
# Denote all files that are truly binary and should not be modified.
|
# Denote all files that are truly binary and should not be modified.
|
||||||
*.png binary
|
*.png binary
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -190,6 +190,10 @@
|
|||||||
<param name="Name" value="BLAKE2s-256">
|
<param name="Name" value="BLAKE2s-256">
|
||||||
<param name="Local" value="BLAKE2s-256.html">
|
<param name="Local" value="BLAKE2s-256.html">
|
||||||
</OBJECT>
|
</OBJECT>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="BLAKE2b-512">
|
||||||
|
<param name="Local" value="BLAKE2b-512.html">
|
||||||
|
</OBJECT>
|
||||||
<LI> <OBJECT type="text/sitemap">
|
<LI> <OBJECT type="text/sitemap">
|
||||||
<param name="Name" value="SHA-256">
|
<param name="Name" value="SHA-256">
|
||||||
<param name="Local" value="SHA-256.html">
|
<param name="Local" value="SHA-256.html">
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ Beginner's Tutorial_Image_023.gif
|
|||||||
Beginner's Tutorial_Image_024.gif
|
Beginner's Tutorial_Image_024.gif
|
||||||
Beginner's Tutorial_Image_034.png
|
Beginner's Tutorial_Image_034.png
|
||||||
BLAKE2s-256.html
|
BLAKE2s-256.html
|
||||||
|
BLAKE2b-512.html
|
||||||
Camellia.html
|
Camellia.html
|
||||||
Cascades.html
|
Cascades.html
|
||||||
Changing Passwords and Keyfiles.html
|
Changing Passwords and Keyfiles.html
|
||||||
|
|||||||
@@ -190,6 +190,10 @@
|
|||||||
<param name="Name" value="BLAKE2s-256">
|
<param name="Name" value="BLAKE2s-256">
|
||||||
<param name="Local" value="BLAKE2s-256.html">
|
<param name="Local" value="BLAKE2s-256.html">
|
||||||
</OBJECT>
|
</OBJECT>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="BLAKE2b-512">
|
||||||
|
<param name="Local" value="BLAKE2b-512.html">
|
||||||
|
</OBJECT>
|
||||||
<LI> <OBJECT type="text/sitemap">
|
<LI> <OBJECT type="text/sitemap">
|
||||||
<param name="Name" value="SHA-256">
|
<param name="Name" value="SHA-256">
|
||||||
<param name="Local" value="SHA-256.html">
|
<param name="Local" value="SHA-256.html">
|
||||||
@@ -207,6 +211,20 @@
|
|||||||
<param name="Local" value="Streebog.html">
|
<param name="Local" value="Streebog.html">
|
||||||
</OBJECT>
|
</OBJECT>
|
||||||
</UL>
|
</UL>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="Àëãîðèòìû ôîðìèðîâàíèÿ êëþ÷à">
|
||||||
|
<param name="Local" value="Key Derivation Algorithms.html">
|
||||||
|
</OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="Argon2id">
|
||||||
|
<param name="Local" value="Argon2id.html">
|
||||||
|
</OBJECT>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="PBKDF2">
|
||||||
|
<param name="Local" value="pbkdf2.html">
|
||||||
|
</OBJECT>
|
||||||
|
</UL>
|
||||||
<LI> <OBJECT type="text/sitemap">
|
<LI> <OBJECT type="text/sitemap">
|
||||||
<param name="Name" value="Ïîääåðæèâàåìûå îïåðàöèîííûå ñèñòåìû">
|
<param name="Name" value="Ïîääåðæèâàåìûå îïåðàöèîííûå ñèñòåìû">
|
||||||
<param name="Local" value="Supported Operating Systems.html">
|
<param name="Local" value="Supported Operating Systems.html">
|
||||||
@@ -446,4 +464,4 @@
|
|||||||
<param name="Local" value="References.html">
|
<param name="Local" value="References.html">
|
||||||
</OBJECT>
|
</OBJECT>
|
||||||
</UL>
|
</UL>
|
||||||
</BODY></HTML>
|
</BODY></HTML>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Title=
|
|||||||
Acknowledgements.html
|
Acknowledgements.html
|
||||||
Additional Security Requirements and Precautions.html
|
Additional Security Requirements and Precautions.html
|
||||||
AES.html
|
AES.html
|
||||||
|
Argon2id.html
|
||||||
arrow_right.gif
|
arrow_right.gif
|
||||||
Authenticity and Integrity.html
|
Authenticity and Integrity.html
|
||||||
Authors.html
|
Authors.html
|
||||||
@@ -46,6 +47,7 @@ Beginner's Tutorial_Image_023.png
|
|||||||
Beginner's Tutorial_Image_024.png
|
Beginner's Tutorial_Image_024.png
|
||||||
Beginner's Tutorial_Image_034.png
|
Beginner's Tutorial_Image_034.png
|
||||||
BLAKE2s-256.html
|
BLAKE2s-256.html
|
||||||
|
BLAKE2b-512.html
|
||||||
Camellia.html
|
Camellia.html
|
||||||
Cascades.html
|
Cascades.html
|
||||||
Changing Passwords and Keyfiles.html
|
Changing Passwords and Keyfiles.html
|
||||||
@@ -90,6 +92,7 @@ Incompatibilities.html
|
|||||||
Introduction.html
|
Introduction.html
|
||||||
Issues and Limitations.html
|
Issues and Limitations.html
|
||||||
Journaling File Systems.html
|
Journaling File Systems.html
|
||||||
|
Key Derivation Algorithms.html
|
||||||
Keyfiles in VeraCrypt.html
|
Keyfiles in VeraCrypt.html
|
||||||
Keyfiles in VeraCrypt_Image_040.png
|
Keyfiles in VeraCrypt_Image_040.png
|
||||||
Keyfiles.html
|
Keyfiles.html
|
||||||
@@ -111,6 +114,7 @@ Notation.html
|
|||||||
Paging File.html
|
Paging File.html
|
||||||
Parallelization.html
|
Parallelization.html
|
||||||
paypal_30x30.png
|
paypal_30x30.png
|
||||||
|
pbkdf2.html
|
||||||
Personal Iterations Multiplier (PIM).html
|
Personal Iterations Multiplier (PIM).html
|
||||||
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png
|
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png
|
||||||
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png
|
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png
|
||||||
|
|||||||
@@ -190,6 +190,10 @@
|
|||||||
<param name="Name" value="BLAKE2s-256">
|
<param name="Name" value="BLAKE2s-256">
|
||||||
<param name="Local" value="BLAKE2s-256.html">
|
<param name="Local" value="BLAKE2s-256.html">
|
||||||
</OBJECT>
|
</OBJECT>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="BLAKE2b-512">
|
||||||
|
<param name="Local" value="BLAKE2b-512.html">
|
||||||
|
</OBJECT>
|
||||||
<LI> <OBJECT type="text/sitemap">
|
<LI> <OBJECT type="text/sitemap">
|
||||||
<param name="Name" value="SHA-256">
|
<param name="Name" value="SHA-256">
|
||||||
<param name="Local" value="SHA-256.html">
|
<param name="Local" value="SHA-256.html">
|
||||||
@@ -207,6 +211,20 @@
|
|||||||
<param name="Local" value="Streebog.html">
|
<param name="Local" value="Streebog.html">
|
||||||
</OBJECT>
|
</OBJECT>
|
||||||
</UL>
|
</UL>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="密钥推导算法">
|
||||||
|
<param name="Local" value="Key Derivation Algorithms.html">
|
||||||
|
</OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="Argon2id">
|
||||||
|
<param name="Local" value="Argon2id.html">
|
||||||
|
</OBJECT>
|
||||||
|
<LI> <OBJECT type="text/sitemap">
|
||||||
|
<param name="Name" value="PBKDF2">
|
||||||
|
<param name="Local" value="pbkdf2.html">
|
||||||
|
</OBJECT>
|
||||||
|
</UL>
|
||||||
<LI> <OBJECT type="text/sitemap">
|
<LI> <OBJECT type="text/sitemap">
|
||||||
<param name="Name" value="支持的操作系统">
|
<param name="Name" value="支持的操作系统">
|
||||||
<param name="Local" value="Supported Operating Systems.html">
|
<param name="Local" value="Supported Operating Systems.html">
|
||||||
@@ -446,4 +464,4 @@
|
|||||||
<param name="Local" value="References.html">
|
<param name="Local" value="References.html">
|
||||||
</OBJECT>
|
</OBJECT>
|
||||||
</UL>
|
</UL>
|
||||||
</BODY></HTML>
|
</BODY></HTML>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ Title=VeraCrypt
|
|||||||
Acknowledgements.html
|
Acknowledgements.html
|
||||||
Additional Security Requirements and Precautions.html
|
Additional Security Requirements and Precautions.html
|
||||||
AES.html
|
AES.html
|
||||||
|
Argon2id.html
|
||||||
arrow_right.gif
|
arrow_right.gif
|
||||||
Authenticity and Integrity.html
|
Authenticity and Integrity.html
|
||||||
Authors.html
|
Authors.html
|
||||||
@@ -47,6 +48,7 @@ Beginner's Tutorial_Image_023.gif
|
|||||||
Beginner's Tutorial_Image_024.gif
|
Beginner's Tutorial_Image_024.gif
|
||||||
Beginner's Tutorial_Image_034.png
|
Beginner's Tutorial_Image_034.png
|
||||||
BLAKE2s-256.html
|
BLAKE2s-256.html
|
||||||
|
BLAKE2b-512.html
|
||||||
Camellia.html
|
Camellia.html
|
||||||
Cascades.html
|
Cascades.html
|
||||||
Changing Passwords and Keyfiles.html
|
Changing Passwords and Keyfiles.html
|
||||||
@@ -91,6 +93,7 @@ Incompatibilities.html
|
|||||||
Introduction.html
|
Introduction.html
|
||||||
Issues and Limitations.html
|
Issues and Limitations.html
|
||||||
Journaling File Systems.html
|
Journaling File Systems.html
|
||||||
|
Key Derivation Algorithms.html
|
||||||
Keyfiles in VeraCrypt.html
|
Keyfiles in VeraCrypt.html
|
||||||
Keyfiles in VeraCrypt_Image_040.gif
|
Keyfiles in VeraCrypt_Image_040.gif
|
||||||
Keyfiles.html
|
Keyfiles.html
|
||||||
@@ -112,6 +115,7 @@ Notation.html
|
|||||||
Paging File.html
|
Paging File.html
|
||||||
Parallelization.html
|
Parallelization.html
|
||||||
paypal_30x30.png
|
paypal_30x30.png
|
||||||
|
pbkdf2.html
|
||||||
Personal Iterations Multiplier (PIM).html
|
Personal Iterations Multiplier (PIM).html
|
||||||
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png
|
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step1.png
|
||||||
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png
|
Personal Iterations Multiplier (PIM)_VeraCrypt_ChangePIM_Step2.png
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
<div class="wikidoc">
|
<div class="wikidoc">
|
||||||
<h1>Argon2id</h1>
|
<h1>Argon2id</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">
|
||||||
Argon2id is a memory-hard key derivation function designed to resist both time-memory trade-off attacks and side-channel attacks. It was selected as the winner of the Password Hashing Competition (PHC) in 2015 and is defined in RFC 9106. VeraCrypt supports Argon2id as an alternative to PBKDF2-HMAC for header key derivation.
|
Argon2id is a memory-hard key derivation function designed to resist both time-memory trade-off attacks and side-channel attacks. It was selected as the winner of the Password Hashing Competition (PHC) in 2015 and is defined in RFC 9106. VeraCrypt supports Argon2id as an alternative to PBKDF2-HMAC for non-system volume header key derivation.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3>Key Features</h3>
|
<h3>Key Features</h3>
|
||||||
@@ -48,7 +48,7 @@ Argon2id is a memory-hard key derivation function designed to resist both time-m
|
|||||||
<strong>Side-channel resistant:</strong> Combines data-dependent and data-independent memory access patterns
|
<strong>Side-channel resistant:</strong> Combines data-dependent and data-independent memory access patterns
|
||||||
</li>
|
</li>
|
||||||
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<strong>Internal hash function:</strong> Uses BLAKE2b internally, eliminating the need for separate hash algorithm selection
|
<strong>Internal hash function:</strong> Uses <a href="BLAKE2b-512.html" style="color:#0080c0; text-decoration:none">BLAKE2b-512</a> internally, eliminating the need for separate hash algorithm selection
|
||||||
</li>
|
</li>
|
||||||
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<strong>Tunable parameters:</strong> Allows adjustment of memory cost, time cost, and parallelism
|
<strong>Tunable parameters:</strong> Allows adjustment of memory cost, time cost, and parallelism
|
||||||
@@ -159,7 +159,7 @@ When using Argon2id in VeraCrypt:
|
|||||||
<h3>Technical Specifications</h3>
|
<h3>Technical Specifications</h3>
|
||||||
<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">
|
||||||
<strong>Algorithm:</strong> Argon2id as defined in RFC 9106<br/>
|
<strong>Algorithm:</strong> Argon2id as defined in RFC 9106<br/>
|
||||||
<strong>Internal hash:</strong> BLAKE2b<br/>
|
<strong>Internal hash:</strong> <a href="BLAKE2b-512.html" style="color:#0080c0; text-decoration:none">BLAKE2b-512</a><br/>
|
||||||
<strong>Salt size:</strong> 512 bits (same as PBKDF2-HMAC)<br/>
|
<strong>Salt size:</strong> 512 bits (same as PBKDF2-HMAC)<br/>
|
||||||
<strong>Header KDF output length:</strong> Fixed at 1536 bits (192 bytes) for the current VeraCrypt format. The required prefix is used for the selected encryption algorithm (for example, the first 64 bytes for AES (AES-256-XTS)). Third-party implementations must request 192 bytes from Argon2id before selecting the required prefix; requesting only the selected algorithm's key material length produces a different Argon2id output.<br/>
|
<strong>Header KDF output length:</strong> Fixed at 1536 bits (192 bytes) for the current VeraCrypt format. The required prefix is used for the selected encryption algorithm (for example, the first 64 bytes for AES (AES-256-XTS)). Third-party implementations must request 192 bytes from Argon2id before selecting the required prefix; requesting only the selected algorithm's key material length produces a different Argon2id output.<br/>
|
||||||
<strong>Version:</strong> Argon2 version 0x13 (19 decimal)
|
<strong>Version:</strong> Argon2 version 0x13 (19 decimal)
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<title>VeraCrypt - Free Open source disk encryption with strong security for the Paranoid</title>
|
||||||
|
<meta name="description" content="VeraCrypt is free open-source disk encryption software for Windows, Mac OS X and Linux. In case an attacker forces you to reveal the password, VeraCrypt provides plausible deniability. In contrast to file encryption, data encryption performed by VeraCrypt is real-time (on-the-fly), automatic, transparent, needs very little memory, and does not involve temporary unencrypted files."/>
|
||||||
|
<meta name="keywords" content="encryption, security"/>
|
||||||
|
<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">Home</a></li>
|
||||||
|
<li><a href="Code.html">Source Code</a></li>
|
||||||
|
<li><a href="Downloads.html">Downloads</a></li>
|
||||||
|
<li><a class="active" href="Documentation.html">Documentation</a></li>
|
||||||
|
<li><a href="Donation.html">Donate</a></li>
|
||||||
|
<li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Forums</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
<a href="Documentation.html">Documentation</a>
|
||||||
|
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||||||
|
<a href="Hash%20Algorithms.html">Hash Algorithms</a>
|
||||||
|
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||||||
|
<a href="BLAKE2b-512.html">BLAKE2b-512</a>
|
||||||
|
</p></div>
|
||||||
|
|
||||||
|
<div class="wikidoc">
|
||||||
|
<h1>BLAKE2b-512</h1>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
<p>
|
||||||
|
BLAKE2b is the 64-bit-word variant of BLAKE2 and the successor of BLAKE-512. BLAKE2b and BLAKE2s are specified in RFC 7693.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
VeraCrypt uses BLAKE2b with its maximum output size of 64 bytes (512 bits) internally in <a href="Argon2id.html" style="text-align:left; color:#0080c0; text-decoration:none">Argon2id</a>. For non-system volume header key derivation, BLAKE2b-512 is reached by selecting the Argon2 key derivation algorithm in VeraCrypt; this corresponds to Argon2id internally. In hash-oriented contexts such as random pool mixing and keyfile generation, the same underlying hash may be displayed as BLAKE2b-512.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
BLAKE2b-512 is not offered as a separate PBKDF2-HMAC hash algorithm. To use BLAKE2b-512 in VeraCrypt non-system volume header key derivation, select <a href="Argon2id.html" style="text-align:left; color:#0080c0; text-decoration:none">Argon2id</a>; no separate hash algorithm selection is available for Argon2id.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
<a href="SHA-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Next Section >></a></div>
|
||||||
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
@@ -42,9 +42,9 @@ BLAKE2 removes addition of constants to message words from BLAKE round function,
|
|||||||
BLAKE2b and BLAKE2s are specified in RFC 7693.
|
BLAKE2b and BLAKE2s are specified in RFC 7693.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
VeraCrypt uses only BLAKE2s with its maximum output size of 32-bytes (256 bits).
|
VeraCrypt uses BLAKE2s with its maximum output size of 32 bytes (256 bits) as a PBKDF2-HMAC hash algorithm. For Argon2id, VeraCrypt uses <a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none">BLAKE2b-512</a> internally.
|
||||||
</p>
|
</p>
|
||||||
</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">
|
||||||
<a href="SHA-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Next Section >></a></div>
|
<a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Next Section >></a></div>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -49,8 +49,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><em>/hash</em></td>
|
<td><em>/hash</em></td>
|
||||||
<td>It must be followed by a parameter indicating the PRF hash algorithm to use when mounting the volume. Possible values for /hash parameter are: sha256, sha-256, sha512, sha-512, whirlpool, blake2s and blake2s-256. When /hash is omitted, VeraCrypt will try
|
<td>It must be followed by a parameter indicating the PRF hash algorithm or KDF to use when mounting the volume. Possible values for /hash parameter are: sha256, sha-256, sha512, sha-512, whirlpool, blake2s, blake2s-256, streebog, and blake2b-512 (for Argon2id volumes). When /hash is omitted, VeraCrypt will try
|
||||||
all possible PRF algorithms thus lengthening the mount operation time.</td>
|
all possible PRF/KDF algorithms thus lengthening the mount operation time.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td id="volume"><em>/volume</em> or <em>/v</em></td>
|
<td id="volume"><em>/volume</em> or <em>/v</em></td>
|
||||||
@@ -252,7 +252,7 @@ It must be followed by a parameter indicating the PIN to use in order to authent
|
|||||||
<tr>
|
<tr>
|
||||||
<td> <em>/hash</em></td>
|
<td> <em>/hash</em></td>
|
||||||
<td>(Only with /create)<br>
|
<td>(Only with /create)<br>
|
||||||
It must be followed by a parameter indicating the PRF hash algorithm to use when creating the volume. It has the same syntax as VeraCrypt.exe.</td>
|
It must be followed by a parameter indicating the PRF hash algorithm or KDF to use when creating the volume. It has the same syntax as VeraCrypt.exe, and also accepts argon2 as an alias for Argon2id.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>/encryption</td>
|
<td>/encryption</td>
|
||||||
@@ -324,9 +324,9 @@ If it is followed by <strong>n</strong> or <strong>no</strong>: the password dia
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h4>Syntax</h4>
|
<h4>Syntax</h4>
|
||||||
<p>VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool |blake2s|blake2s-256}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}]
|
<p>VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}]
|
||||||
[/p password] [/pim pimvalue] [/q [background|preferences]] [/s] [/tokenlib path] [/v volume] [/w]</p>
|
[/p password] [/pim pimvalue] [/q [background|preferences]] [/s] [/tokenlib path] [/v volume] [/w]</p>
|
||||||
<p>"VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password] [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia)))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256}]
|
<p>"VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password] [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia)))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512|argon2}]
|
||||||
[/filesystem {None|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]</p>
|
[/filesystem {None|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]</p>
|
||||||
<p>Note that the order in which options are specified does not matter.</p>
|
<p>Note that the order in which options are specified does not matter.</p>
|
||||||
<h4>Examples</h4>
|
<h4>Examples</h4>
|
||||||
|
|||||||
@@ -82,6 +82,7 @@
|
|||||||
</li><li><strong><a href="Hash%20Algorithms.html">Hash Algorithms</a></strong>
|
</li><li><strong><a href="Hash%20Algorithms.html">Hash Algorithms</a></strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="BLAKE2s-256.html">BLAKE2s-256</a>
|
<li><a href="BLAKE2s-256.html">BLAKE2s-256</a>
|
||||||
|
</li><li><a href="BLAKE2b-512.html">BLAKE2b-512</a>
|
||||||
</li><li><a href="SHA-256.html">SHA-256</a> </li><li><a href="SHA-512.html">SHA-512</a> </li><li><a href="Whirlpool.html">Whirlpool</a>
|
</li><li><a href="SHA-256.html">SHA-256</a> </li><li><a href="SHA-512.html">SHA-512</a> </li><li><a href="Whirlpool.html">Whirlpool</a>
|
||||||
</li><li><a href="Streebog.html">Streebog</a></li></ul>
|
</li><li><a href="Streebog.html">Streebog</a></li></ul>
|
||||||
</li><li><strong><a href="Key%20Derivation%20Algorithms.html">Key Derivation Algorithms</a></strong>
|
</li><li><strong><a href="Key%20Derivation%20Algorithms.html">Key Derivation Algorithms</a></strong>
|
||||||
|
|||||||
@@ -56,9 +56,9 @@ Hidden Operating System</a>). If there is a hidden volume within this volume (or
|
|||||||
<a href="Header%20Key%20Derivation.html">
|
<a href="Header%20Key%20Derivation.html">
|
||||||
<em>Header Key Derivation, Salt, and Iteration Count</em></a>), which can be one of the following:
|
<em>Header Key Derivation, Salt, and Iteration Count</em></a>), which can be one of the following:
|
||||||
HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool, HMAC-Streebog.</li>
|
HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool, HMAC-Streebog.</li>
|
||||||
<li><strong>Argon2id:</strong> Memory-hard key derivation function with internal BLAKE2b hash function.</li>
|
<li><strong>Argon2id:</strong> Memory-hard key derivation function for non-system volumes, with internal <a href="BLAKE2b-512.html">BLAKE2b-512</a> hash function.</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>If a PRF is explicitly specified by the user, it will be used directly without trying the other possibilities.</p>
|
<p>If a header key derivation algorithm (or, for PBKDF2-HMAC, a PRF hash) is explicitly specified by the user, it will be used directly without trying the other possibilities.</p>
|
||||||
<p>A password entered by the user (to which one or more keyfiles may have been applied – see the section
|
<p>A password entered by the user (to which one or more keyfiles may have been applied – see the section
|
||||||
<a href="Keyfiles%20in%20VeraCrypt.html">
|
<a href="Keyfiles%20in%20VeraCrypt.html">
|
||||||
<em>Keyfiles</em></a>), a PIM value (if specified) and the salt read in (1) are passed to the header key derivation function, which produces a sequence of values (see the section
|
<em>Keyfiles</em></a>), a PIM value (if specified) and the salt read in (1) are passed to the header key derivation function, which produces a sequence of values (see the section
|
||||||
|
|||||||
@@ -34,13 +34,14 @@
|
|||||||
<div class="wikidoc">
|
<div class="wikidoc">
|
||||||
<h1>Hash Algorithms</h1>
|
<h1>Hash Algorithms</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">
|
||||||
In the Volume Creation Wizard, in the password change dialog window, and in the Keyfile Generator dialog window, you can select a hash algorithm when using PBKDF2-HMAC as the key derivation function. When Argon2id is selected as the key derivation function, no hash algorithm selection is available as Argon2id uses its own internal BLAKE2b hash function.
|
In the Volume Creation Wizard and in the password change dialog window, you can select a hash algorithm when using PBKDF2-HMAC as the key derivation function. In the Keyfile Generator dialog window, the selected hash algorithm is used by the VeraCrypt Random Number Generator as its pool mixing function. When Argon2id is selected as the key derivation function, no separate hash algorithm selection is available for header key derivation because Argon2id uses its own internal BLAKE2b-512 hash function.
|
||||||
</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">
|
||||||
For PBKDF2-HMAC, the user-selected hash algorithm is used by the VeraCrypt Random Number Generator as a pseudorandom "mixing" function, and by the header key derivation function (HMAC based on a hash function, as specified in PKCS #5 v2.0) as a pseudorandom function. When creating a new volume, the Random Number Generator generates the master key, secondary key (XTS mode), and salt. For more
|
For PBKDF2-HMAC, the user-selected hash algorithm is used by the VeraCrypt Random Number Generator as a pseudorandom "mixing" function, and by the header key derivation function (HMAC based on a hash function, as specified in PKCS #5 v2.0) as a pseudorandom function. When creating a new volume, the Random Number Generator generates the master key, secondary key (XTS mode), and salt. For more
|
||||||
information, please see the section <a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
information, please see the section <a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
Random Number Generator</a> and section <a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
Random Number Generator</a> and section <a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
Header Key Derivation, Salt, and Iteration Count</a>.</div>
|
Header Key Derivation, Salt, and Iteration Count</a>.</div>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
VeraCrypt currently supports the following hash algorithms for PBKDF2-HMAC:</div>
|
VeraCrypt currently supports the following hash algorithms for PBKDF2-HMAC:</div>
|
||||||
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
<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">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
@@ -54,5 +55,11 @@ VeraCrypt currently supports the following hash algorithms for PBKDF2-HMAC:</div
|
|||||||
</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<strong style="text-align:left"><a href="Streebog.html">Streebog</a></strong>
|
<strong style="text-align:left"><a href="Streebog.html">Streebog</a></strong>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
VeraCrypt also associates the following hash with 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">
|
||||||
|
<a href="BLAKE2b-512.html"><strong style="text-align:left">BLAKE2b-512</strong></a> (associated with Argon2id; not selectable for PBKDF2-HMAC)
|
||||||
|
</li></ul>
|
||||||
<p><a href="BLAKE2s-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Next Section >></a></p>
|
<p><a href="BLAKE2s-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Next Section >></a></p>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ Encryption Scheme</a> and <a href="VeraCrypt%20Volume%20Format%20Specification.h
|
|||||||
VeraCrypt Volume Format Specification</a>). In volumes created by VeraCrypt (and for
|
VeraCrypt Volume Format Specification</a>). In volumes created by VeraCrypt (and for
|
||||||
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
system encryption</a>), the area is encrypted in XTS mode (see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
system encryption</a>), the area is encrypted in XTS mode (see the section <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
Modes of Operation</a>). VeraCrypt supports two key derivation functions for generating header keys: PBKDF2 (specified in PKCS #5 v2.0) and Argon2id.</div>
|
Modes of Operation</a>). For system encryption, VeraCrypt uses PBKDF2-HMAC. For non-system volumes and file containers, VeraCrypt supports two key derivation functions for generating header keys: PBKDF2 (specified in PKCS #5 v2.0) and Argon2id.</div>
|
||||||
|
|
||||||
<h3>PBKDF2-HMAC Key Derivation</h3>
|
<h3>PBKDF2-HMAC Key Derivation</h3>
|
||||||
<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">
|
||||||
@@ -55,7 +55,7 @@ The PBKDF2 method uses HMAC-based pseudorandom functions with the following hash
|
|||||||
|
|
||||||
<h3>Argon2id Key Derivation</h3>
|
<h3>Argon2id Key Derivation</h3>
|
||||||
<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">
|
||||||
Argon2id is a memory-hard key derivation function that provides resistance against both time-memory trade-off attacks and side-channel attacks. Unlike PBKDF2-HMAC, Argon2id does not use a separate hash algorithm selection – it uses its own internal hash function (BLAKE2b). Argon2id requires three parameters: memory cost (amount of memory used), time cost (number of iterations), and parallelism (number of threads). VeraCrypt sets the parallelism parameter to 1 for all cases.</div>
|
Argon2id is a memory-hard key derivation function that provides resistance against both time-memory trade-off attacks and side-channel attacks. Unlike PBKDF2-HMAC, Argon2id does not use a separate hash algorithm selection – it uses its own internal hash function (<a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none">BLAKE2b-512</a>). Argon2id requires three parameters: memory cost (amount of memory used), time cost (number of iterations), and parallelism (number of threads). VeraCrypt sets the parallelism parameter to 1 for all cases.</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">
|
||||||
512-bit salt is used for both key derivation functions, which means there are 2<sup style="text-align:left; font-size:85%">512</sup> keys for each password. This significantly decreases vulnerability to 'off-line' dictionary/'rainbow table' attacks (pre-computing all the keys for a dictionary
|
512-bit salt is used for both key derivation functions, which means there are 2<sup style="text-align:left; font-size:85%">512</sup> keys for each password. This significantly decreases vulnerability to 'off-line' dictionary/'rainbow table' attacks (pre-computing all the keys for a dictionary
|
||||||
@@ -74,7 +74,7 @@ PIM </a>value is not specified or if it is equal to zero, VeraCrypt uses the def
|
|||||||
<ul>
|
<ul>
|
||||||
<li>For system partition encryption (boot encryption) that uses SHA-256, BLAKE2s-256 or Streebog, <strong>200000</strong> iterations are used.</li>
|
<li>For system partition encryption (boot encryption) that uses SHA-256, BLAKE2s-256 or Streebog, <strong>200000</strong> iterations are used.</li>
|
||||||
<li>For system encryption that uses SHA-512 or Whirlpool, <strong>500000</strong> iterations are used.</li>
|
<li>For system encryption that uses SHA-512 or Whirlpool, <strong>500000</strong> iterations are used.</li>
|
||||||
<li>For non-system encryption and file containers, all derivation algorithms will use <strong>500000</strong> iterations.
|
<li>For non-system encryption and file containers, all PBKDF2-HMAC variants will use <strong>500000</strong> iterations.
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</p>
|
</p>
|
||||||
<p>When a <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
<p>When a <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ A key derivation function (KDF) transforms your password (and optional keyfiles)
|
|||||||
<h3>Available Algorithms in VeraCrypt</h3>
|
<h3>Available Algorithms in VeraCrypt</h3>
|
||||||
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
<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:8px; padding:0px">
|
<li style="text-align:left; margin-top:0px; margin-bottom:8px; padding:0px">
|
||||||
<strong><a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a>:</strong> A modern, memory-hard KDF (based on BLAKE2b internally). Recommended for new volumes. No separate hash selection is required.
|
<strong><a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a>:</strong> A modern, memory-hard KDF (based on <a href="BLAKE2b-512.html" style="color:#0080c0; text-decoration:none">BLAKE2b-512</a> internally). Recommended for new non-system volumes. No separate hash selection is required.
|
||||||
</li>
|
</li>
|
||||||
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding:0px">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding:0px">
|
||||||
<strong><a href="pbkdf2.html" style="color:#0080c0; text-decoration:none">PBKDF2-HMAC</a>:</strong> A widely deployed KDF that uses HMAC with a selectable hash function. Supported HMAC hashes in VeraCrypt:
|
<strong><a href="pbkdf2.html" style="color:#0080c0; text-decoration:none">PBKDF2-HMAC</a>:</strong> A widely deployed KDF that uses HMAC with a selectable hash function. Supported HMAC hashes in VeraCrypt:
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ When creating a volume or when changing the password, the user has the possibili
|
|||||||
<div> </div>
|
<div> </div>
|
||||||
<div>The PIM is treated like a secret value that must be entered by the user each time alongside the password. If the incorrect PIM value is specified, the mount/boot operation will fail.</div>
|
<div>The PIM is treated like a secret value that must be entered by the user each time alongside the password. If the incorrect PIM value is specified, the mount/boot operation will fail.</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
<div>Using high PIM values leads to better security thanks to the increased number of iterations but it comes with slower mounting/booting times.</div>
|
<div>Using high PIM values leads to better security thanks to increased KDF cost parameters but it comes with slower mounting/booting times.</div>
|
||||||
<div>With small PIM values, mounting/booting is quicker but this could decrease security if a weak password is used.</div>
|
<div>With small PIM values, mounting/booting is quicker but this could decrease security if a weak password is used.</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
<div>During the creation of a volume or the encryption of the system, VeraCrypt forces the PIM value to be greater than or equal to a certain minimal value when the password is less than 20 characters. This check is done in order to ensure that, for short passwords,
|
<div>During the creation of a volume or the encryption of the system, VeraCrypt forces the PIM value to be greater than or equal to a certain minimal value when the password is less than 20 characters. This check is done in order to ensure that, for short passwords,
|
||||||
|
|||||||
@@ -50,11 +50,11 @@
|
|||||||
written to the pool, this function is applied to the entire pool.</p>
|
written to the pool, this function is applied to the entire pool.</p>
|
||||||
<p>Description of the pool mixing function:</p>
|
<p>Description of the pool mixing function:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Let <em>R</em> be the randomness pool. </li><li>Let <em>H</em> be the hash function selected by the user (SHA-512, BLAKE2S-256, or Whirlpool).
|
<li>Let <em>R</em> be the randomness pool. </li><li>Let <em>H</em> be the current RNG pool-mixing hash function. In standalone random-pool and keyfile-generation contexts, this is the hash selected by the user. During volume operations, VeraCrypt derives it from the selected header key derivation algorithm: for PBKDF2-HMAC, it is the selected hash (SHA-512, SHA-256, BLAKE2s-256, Whirlpool, or Streebog); for Argon2id, it is <a href="BLAKE2b-512.html">BLAKE2b-512</a>.
|
||||||
</li><li><em>l</em> = byte size of the output of the hash function <em>H</em> (i.e., if
|
</li><li><em>l</em> = byte size of the output of the hash function <em>H</em> (i.e., if
|
||||||
<em>H</em> is BLAKE2S-256, then <em>l</em> = 20; if <em>H</em> is SHA-512, <em>l</em> = 64)
|
<em>H</em> is BLAKE2s-256 or SHA-256, then <em>l</em> = 32; if <em>H</em> is SHA-512, Whirlpool, Streebog, or BLAKE2b-512, <em>l</em> = 64)
|
||||||
</li><li><em>z</em> = byte size of the randomness pool <em>R </em>(320 bytes) </li><li><em>q</em> = <em>z</em> / <em>l</em> – 1 (e.g., if <em>H</em> is Whirlpool, then
|
</li><li><em>z</em> = byte size of the randomness pool <em>R </em>(320 bytes) </li><li><em>q</em> = <em>z</em> / <em>l</em> – 1 (e.g., if <em>H</em> is Whirlpool, then
|
||||||
<em>q</em> = 4) </li><li>Ris divided intol-byte blocksB0...Bq.
|
<em>q</em> = 4) </li><li><em>R</em> is divided into <em>l</em>-byte blocks <em>B</em>0...<em>B</em>q.
|
||||||
<p>For 0 ≤ i ≤ q (i.e., for each block B) the following steps are performed:</p>
|
<p>For 0 ≤ i ≤ q (i.e., for each block B) the following steps are performed:</p>
|
||||||
<ol type="a">
|
<ol type="a">
|
||||||
<li><em>M = H</em> (<em>B</em>0 || <em>B</em>1 || ... || <em>B</em>q) [i.e., the randomness pool is hashed using the hash function H, which produces a hash M]
|
<li><em>M = H</em> (<em>B</em>0 || <em>B</em>1 || ... || <em>B</em>q) [i.e., the randomness pool is hashed using the hash function H, which produces a hash M]
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
is greater than the size of the pool, no value is generated and an error is returned).
|
is greater than the size of the pool, no value is generated and an error is returned).
|
||||||
</li><li>The state of each bit in the pool is inverted (i.e., 0 is changed to 1, and 1 is changed to 0).
|
</li><li>The state of each bit in the pool is inverted (i.e., 0 is changed to 1, and 1 is changed to 0).
|
||||||
</li><li>Data obtained from some of the sources listed above is added to the pool as described above.
|
</li><li>Data obtained from some of the sources listed above is added to the pool as described above.
|
||||||
</li><li>The content of the pool is transformed using the pool mixing function. Note: The function uses a cryptographically secure one-way hash function selected by the user (for more information, see the section
|
</li><li>The content of the pool is transformed using the pool mixing function. Note: The function uses the cryptographically secure one-way hash function associated with the selected KDF/hash option (for more information, see the section
|
||||||
<em>Pool Mixing Function</em> above). </li><li>The transformed content of the pool is XORed into the output buffer as follows:
|
<em>Pool Mixing Function</em> above). </li><li>The transformed content of the pool is XORed into the output buffer as follows:
|
||||||
<ol type="a">
|
<ol type="a">
|
||||||
<li>The output buffer write cursor is set to 0 (the first byte of the buffer). </li><li>The byte at the position of the pool cursor is read from the pool and XORed into the byte in the output buffer at the position of the output buffer write cursor.
|
<li>The output buffer write cursor is set to 0 (the first byte of the buffer). </li><li>The byte at the position of the pool cursor is read from the pool and XORed into the byte in the output buffer at the position of the output buffer write cursor.
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ The number of PBKDF2 iterations depends on the selected HMAC hash, the context (
|
|||||||
|
|
||||||
<h4>Output Length</h4>
|
<h4>Output Length</h4>
|
||||||
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
The derived key length depends on the selected encryption algorithm(s) (e.g., 256 bits for AES-256, 768 bits for AES-Twofish-Serpent cascades).
|
The amount of derived header key material consumed depends on the selected encryption algorithm(s). For current XTS volumes, VeraCrypt uses both primary and secondary header keys; for example, AES-256-XTS uses 512 bits in total (two 256-bit keys), and an AES-Twofish-Serpent-XTS cascade uses 1536 bits in total (six 256-bit keys).
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3>Advantages and Considerations</h3>
|
<h3>Advantages and Considerations</h3>
|
||||||
|
|||||||
@@ -0,0 +1,174 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<title>VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом</title>
|
||||||
|
<meta name="description" content="VeraCrypt это бесплатное программное обеспечение для шифрования дисков с открытым исходным кодом для Windows, Mac OS X (macOS) и Linux. В случае, если злоумышленник вынуждает вас раскрыть пароль, VeraCrypt обеспечивает правдоподобное отрицание наличия шифрования. В отличие от пофайлового шифрования, VeraCrypt шифрует данные в реальном времени (на лету), автоматически, прозрачно, требует очень мало памяти и не использует временные незашифрованные файлы."/>
|
||||||
|
<meta name="keywords" content="encryption, security, шифрование, безопасность"/>
|
||||||
|
<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 году она была выбрана победителем Password Hashing Competition (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) × 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 ≤ 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 > 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">
|
||||||
|
При использовании Argon2id в VeraCrypt:
|
||||||
|
</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> убедитесь, что доступен достаточный объём ОЗУ, особенно при больших значениях 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> Argon2id согласно RFC 9106<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> фиксирована и составляет 1536 бит (192 байта) для текущего формата VeraCrypt. Для выбранного алгоритма шифрования используется требуемый префикс этого вывода (например, первые 64 байта для AES (AES-256-XTS)). Сторонние реализации должны запрашивать у 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>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<title>VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом</title>
|
||||||
|
<meta name="description" content="VeraCrypt это бесплатное программное обеспечение для шифрования дисков с открытым исходным кодом для Windows, Mac OS X (macOS) и Linux. В случае, если злоумышленник вынуждает вас раскрыть пароль, VeraCrypt обеспечивает правдоподобное отрицание наличия шифрования. В отличие от пофайлового шифрования, VeraCrypt шифрует данные в реальном времени (на лету), автоматически, прозрачно, требует очень мало памяти и не использует временные незашифрованные файлы."/>
|
||||||
|
<meta name="keywords" content="encryption, security, шифрование, безопасность"/>
|
||||||
|
<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="Hash%20Algorithms.html">Алгоритмы хеширования</a>
|
||||||
|
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||||||
|
<a href="BLAKE2b-512.html">BLAKE2b-512</a>
|
||||||
|
</p></div>
|
||||||
|
|
||||||
|
<div class="wikidoc">
|
||||||
|
<h1>BLAKE2b-512</h1>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
<p>
|
||||||
|
BLAKE2b — это вариант BLAKE2 с 64-битовыми словами и преемник BLAKE-512. BLAKE2b и BLAKE2s указаны в документе RFC 7693.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
VeraCrypt использует BLAKE2b с максимальным выходным размером 64 байта (512 бит) внутри <a href="Argon2id.html" style="text-align:left; color:#0080c0; text-decoration:none">Argon2id</a>. Для формирования ключа заголовка несистемных томов BLAKE2b-512 применяется при выборе алгоритма формирования ключа Argon2 в VeraCrypt; внутри это соответствует Argon2id. В контекстах, связанных с хешированием, например при перемешивании пула случайных чисел и создании ключевых файлов, эта же базовая хеш-функция может отображаться как BLAKE2b-512.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
BLAKE2b-512 не предлагается как отдельный алгоритм хеширования PBKDF2-HMAC. Чтобы использовать BLAKE2b-512 при формировании ключа заголовка несистемного тома VeraCrypt, выберите <a href="Argon2id.html" style="text-align:left; color:#0080c0; text-decoration:none">Argon2id</a>; для Argon2id отдельный выбор алгоритма хеширования недоступен.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
<a href="SHA-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Следующий раздел >></a></div>
|
||||||
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
@@ -50,9 +50,9 @@ BLAKE2 убирает добавление констант к словам со
|
|||||||
BLAKE2b и BLAKE2s указаны в документе RFC 7693.
|
BLAKE2b и BLAKE2s указаны в документе RFC 7693.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
VeraCrypt использует только BLAKE2s с максимальным выходным размером 32 байта (256 бит).
|
VeraCrypt использует BLAKE2s с максимальным выходным размером 32 байта (256 бит) как алгоритм хеширования PBKDF2-HMAC. Для Argon2id VeraCrypt внутренне использует <a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none">BLAKE2b-512</a>.
|
||||||
</p>
|
</p>
|
||||||
</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">
|
||||||
<a href="SHA-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Следующий раздел >></a></div>
|
<a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Следующий раздел >></a></div>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -48,8 +48,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td> <em>/hash</em></td>
|
<td> <em>/hash</em></td>
|
||||||
<td>После этого ключа указывается хеш-алгоритм PRF, используемый при монтировании тома. Возможные значения ключа /hash: <code>sha256, sha-256, sha512, sha-512, whirlpool, blake2s</code> и <code>blake2s-256</code>. Если ключ <code>/hash</code> не указан, VeraCrypt будет пробовать
|
<td>После этого ключа указывается хеш-алгоритм PRF или KDF, используемый при монтировании тома. Возможные значения ключа /hash: <code>sha256, sha-256, sha512, sha-512, whirlpool, blake2s, blake2s-256, streebog</code> и <code>blake2b-512</code> (для томов Argon2id). Если ключ <code>/hash</code> не указан, VeraCrypt будет пробовать
|
||||||
все доступные PRF-алгоритмы, тем самым увеличивая время монтирования.</td>
|
все доступные PRF/KDF-алгоритмы, тем самым увеличивая время монтирования.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td id="volume"> <em>/volume</em> или <em>/v</em></td>
|
<td id="volume"> <em>/volume</em> или <em>/v</em></td>
|
||||||
@@ -233,7 +233,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td> <em>/hash</em></td>
|
<td> <em>/hash</em></td>
|
||||||
<td>(Только с ключом <code>/create</code>)<br>
|
<td>(Только с ключом <code>/create</code>)<br>
|
||||||
После этого ключа указывается хеш-алгоритм PRF, используемый при создании тома. Синтаксис такой же, как у VeraCrypt.exe.</td>
|
После этого ключа указывается хеш-алгоритм PRF или KDF, используемый при создании тома. Синтаксис такой же, как у VeraCrypt.exe; также принимается <code>argon2</code> как псевдоним Argon2id.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td> <em>/encryption</em></td>
|
<td> <em>/encryption</em></td>
|
||||||
@@ -305,9 +305,9 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h4>Синтаксис</h4>
|
<h4>Синтаксис</h4>
|
||||||
<p><code>VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool |blake2s|blake2s-256}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [буква диска]] [/e] [/f] [/h [y|n]] [/k ключевой файл или путь поиска] [tryemptypass [y|n]] [/l буква диска] [/m {bk|rm|recovery|ro|sm|ts|noattach}]
|
<p><code>VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [буква диска]] [/e] [/f] [/h [y|n]] [/k ключевой файл или путь поиска] [tryemptypass [y|n]] [/l буква диска] [/m {bk|rm|recovery|ro|sm|ts|noattach}]
|
||||||
[/p пароль] [/pim значение pim] [/q [background|preferences]] [/s] [/tokenlib путь] [/v том] [/w]</code></p>
|
[/p пароль] [/pim значение pim] [/q [background|preferences]] [/s] [/tokenlib путь] [/v том] [/w]</code></p>
|
||||||
<p><code>"VeraCrypt Format.exe" [/n] [/create] [/size число[{K|M|G|T}]] [/p пароль] [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256}]
|
<p><code>"VeraCrypt Format.exe" [/n] [/create] [/size число[{K|M|G|T}]] [/p пароль] [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512|argon2}]
|
||||||
[/filesystem {пусто|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]</code></p>
|
[/filesystem {пусто|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]</code></p>
|
||||||
<p>Порядок, в котором указаны параметры, не имеет значения.</p>
|
<p>Порядок, в котором указаны параметры, не имеет значения.</p>
|
||||||
<h4>Примеры</h4>
|
<h4>Примеры</h4>
|
||||||
|
|||||||
@@ -82,11 +82,17 @@
|
|||||||
</li><li><strong><a href="Hash%20Algorithms.html">Алгоритмы хеширования</a></strong>
|
</li><li><strong><a href="Hash%20Algorithms.html">Алгоритмы хеширования</a></strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="BLAKE2s-256.html">BLAKE2s-256</a></li>
|
<li><a href="BLAKE2s-256.html">BLAKE2s-256</a></li>
|
||||||
|
<li><a href="BLAKE2b-512.html">BLAKE2b-512</a></li>
|
||||||
<li><a href="SHA-256.html">SHA-256</a></li>
|
<li><a href="SHA-256.html">SHA-256</a></li>
|
||||||
<li><a href="SHA-512.html">SHA-512</a></li>
|
<li><a href="SHA-512.html">SHA-512</a></li>
|
||||||
<li><a href="Whirlpool.html">Whirlpool</a></li>
|
<li><a href="Whirlpool.html">Whirlpool</a></li>
|
||||||
<li><a href="Streebog.html">Streebog</a></li>
|
<li><a href="Streebog.html">Streebog</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
</li><li><strong><a href="Key%20Derivation%20Algorithms.html">Алгоритмы формирования ключа</a></strong>
|
||||||
|
<ul>
|
||||||
|
<li><a href="Argon2id.html">Argon2id</a></li>
|
||||||
|
<li><a href="pbkdf2.html">PBKDF2</a></li>
|
||||||
|
</ul>
|
||||||
</li><li><strong><a href="Supported%20Operating%20Systems.html">Поддерживаемые операционные системы</a></strong>
|
</li><li><strong><a href="Supported%20Operating%20Systems.html">Поддерживаемые операционные системы</a></strong>
|
||||||
</li><li><strong><a href="Command%20Line%20Usage.html">Использование в командной строке</a></strong>
|
</li><li><strong><a href="Command%20Line%20Usage.html">Использование в командной строке</a></strong>
|
||||||
</li><li><strong><a href="Security%20Model.html">Модель безопасности</a></strong>
|
</li><li><strong><a href="Security%20Model.html">Модель безопасности</a></strong>
|
||||||
|
|||||||
@@ -53,11 +53,15 @@
|
|||||||
и сгенерированные в ходе дешифрования, хранятся в ОЗУ (VeraCrypt никогда не сохраняет их на диске). Указанные ниже параметры
|
и сгенерированные в ходе дешифрования, хранятся в ОЗУ (VeraCrypt никогда не сохраняет их на диске). Указанные ниже параметры
|
||||||
неизвестны и определяются методом проб и ошибок (то есть проверкой всех возможных комбинаций следующего):
|
неизвестны и определяются методом проб и ошибок (то есть проверкой всех возможных комбинаций следующего):
|
||||||
<ol type="a">
|
<ol type="a">
|
||||||
<li>PRF (псевдослучайная функция), применяемая при формировании (деривации) ключа заголовка (как определено в PKCS #5 v2.0; см.
|
<li>Функция формирования ключа (KDF) и связанные параметры:
|
||||||
|
<ul>
|
||||||
|
<li><strong>PBKDF2-HMAC:</strong> PRF (псевдослучайная функция), применяемая при формировании (деривации) ключа заголовка (как определено в PKCS #5 v2.0; см.
|
||||||
<a href="Header%20Key%20Derivation.html">
|
<a href="Header%20Key%20Derivation.html">
|
||||||
<em>Формирование ключа заголовка, соль и количество итераций</em></a>), которая может быть одной из следующих:
|
<em>Формирование ключа заголовка, соль и количество итераций</em></a>), которая может быть одной из следующих:
|
||||||
<p>HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool.</p>
|
HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool, HMAC-Streebog.</li>
|
||||||
<p>Если PRF указана пользователем явно, используется непосредственно она, без опробования других функций.</p>
|
<li><strong>Argon2id:</strong> функция формирования ключа с повышенными требованиями к памяти для несистемных томов, использующая внутреннюю хеш-функцию <a href="BLAKE2b-512.html">BLAKE2b-512</a>.</li>
|
||||||
|
</ul>
|
||||||
|
<p>Если алгоритм формирования ключа заголовка (или, для PBKDF2-HMAC, хеш PRF) явно указан пользователем, он используется напрямую без опробования других вариантов.</p>
|
||||||
<p>Введённый пользователем пароль (который может сопровождаться одним или несколькими ключевыми файлами – см. раздел
|
<p>Введённый пользователем пароль (который может сопровождаться одним или несколькими ключевыми файлами – см. раздел
|
||||||
<a href="Keyfiles%20in%20VeraCrypt.html">
|
<a href="Keyfiles%20in%20VeraCrypt.html">
|
||||||
<em>Ключевые файлы</em></a>), значение PIM (если указано) и соль, считанные на этапе 1, передаются в функцию формирования
|
<em>Ключевые файлы</em></a>), значение PIM (если указано) и соль, считанные на этапе 1, передаются в функцию формирования
|
||||||
|
|||||||
@@ -34,17 +34,14 @@
|
|||||||
<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">
|
||||||
Выбор алгоритма хеширования предлагается в мастере создания томов, в диалоговом окне смены пароля,
|
В мастере создания томов и диалоговом окне смены пароля можно выбрать алгоритм хеширования при использовании PBKDF2-HMAC как функции формирования ключа. В окне генератора ключевых файлов выбранный алгоритм хеширования применяется генератором случайных чисел VeraCrypt как функция перемешивания пула. Если в качестве функции формирования ключа выбран Argon2id, отдельный выбор алгоритма хеширования для формирования ключа заголовка недоступен, поскольку Argon2id использует собственную внутреннюю хеш-функцию BLAKE2b-512.
|
||||||
а также в окне генератора ключевых файлов. Выбранный пользователем алгоритм хеширования применяется
|
</div>
|
||||||
во встроенном в VeraCrypt генераторе случайных чисел как функция псевдослучайного "смешивания",
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
а также в функции формирования ключа заголовка (HMAC – алгоритме усиления криптостойкости других
|
Для PBKDF2-HMAC выбранный пользователем алгоритм хеширования применяется генератором случайных чисел VeraCrypt как псевдослучайная функция "смешивания", а также функцией формирования ключа заголовка (HMAC на основе хеш-функции, как определено в PKCS #5 v2.0) как псевдослучайная функция. При создании нового тома генератор случайных чисел создаёт мастер-ключ, вторичный ключ (режим XTS) и соль. Более подробную информацию см. в разделах <a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
криптоалгоритмов на основе хеш-функции, как определено в PKCS #5 v2.0) как псевдослучайная функция.
|
|
||||||
При создании нового тома, генератором случайных чисел создаются мастер-ключ, вторичный ключ (режим XTS)
|
|
||||||
и соль. Более подробную информацию см. в разделах <a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
|
||||||
Генератор случайных чисел</a> и <a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
Генератор случайных чисел</a> и <a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
Формирование ключа заголовка, соль и количество итераций</a>.</div>
|
Формирование ключа заголовка, соль и количество итераций</a>.</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 поддерживает следующие алгоритмы хеширования:</div>
|
В настоящее время VeraCrypt поддерживает следующие алгоритмы хеширования для PBKDF2-HMAC:</div>
|
||||||
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
<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">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<a href="BLAKE2s-256.html"><strong style="text-align:left">BLAKE2s-256</strong></a>
|
<a href="BLAKE2s-256.html"><strong style="text-align:left">BLAKE2s-256</strong></a>
|
||||||
@@ -57,5 +54,11 @@
|
|||||||
</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
</li><li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<strong style="text-align:left"><a href="Streebog.html">Streebog</a></strong>
|
<strong style="text-align:left"><a href="Streebog.html">Streebog</a></strong>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
<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">
|
||||||
|
<a href="BLAKE2b-512.html"><strong style="text-align:left">BLAKE2b-512</strong></a> (связана с Argon2id; недоступна для выбора в PBKDF2-HMAC)
|
||||||
|
</li></ul>
|
||||||
<p><a href="BLAKE2s-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Следующий раздел >></a></p>
|
<p><a href="BLAKE2s-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">Следующий раздел >></a></p>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -45,44 +45,55 @@ VeraCrypt (в случае
|
|||||||
Спецификация формата томов VeraCrypt</a>). В томах, созданных с помощью VeraCrypt (и для
|
Спецификация формата томов VeraCrypt</a>). В томах, созданных с помощью VeraCrypt (и для
|
||||||
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
шифрования системы</a>), эта область зашифрована в режиме XTS (см. раздел <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
шифрования системы</a>), эта область зашифрована в режиме XTS (см. раздел <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
Режимы работы</a>). Для генерирования ключа заголовка и вторичного ключа заголовка (режим XTS)
|
Режимы работы</a>). Для шифрования системы VeraCrypt использует PBKDF2-HMAC. Для несистемных томов и файловых контейнеров VeraCrypt поддерживает две функции формирования ключей заголовка: PBKDF2,
|
||||||
VeraCrypt использует метод PBKDF2, определённый в PKCS #5 v2.0; см.
|
определённую в PKCS #5 v2.0; см.
|
||||||
<a href="References.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
<a href="References.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
[7]</a>.</div>
|
[7]</a>, и Argon2id.</div>
|
||||||
|
|
||||||
|
<h3>Формирование ключа PBKDF2-HMAC</h3>
|
||||||
<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">
|
||||||
В программе применяется 512-битовая соль, что означает 2<sup style="text-align:left; font-size:85%">512</sup>
|
Метод PBKDF2 использует псевдослучайные функции на основе HMAC со следующими доступными алгоритмами хеширования: HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool или HMAC-Streebog (см. [8, 9, 20, 22]) –
|
||||||
ключей для каждого пароля. Благодаря этому значительно повышается устойчивость к атакам с офлайн-словарями/"радужной
|
|
||||||
таблицей" (соль крайне осложняет предвычисление всех ключей для словаря паролей) [7]. Соль состоит из
|
|
||||||
случайных значений, созданных
|
|
||||||
<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
|
||||||
генератором случайных чисел VeraCrypt</a> в процессе создания тома. Функция формирования (деривации) ключа
|
|
||||||
заголовка основана на HMAC-SHA-512, HMAC-SHA-256, HMAC-BLAKE2S-256, HMAC-Whirlpool или HMAC-Streebog (см. [8, 9, 20, 22]) –
|
|
||||||
какая из них будет применяться, выбирается пользователем. Длина сформированного ключа не зависит от
|
какая из них будет применяться, выбирается пользователем. Длина сформированного ключа не зависит от
|
||||||
размера вывода лежащей в основе хеш-функции. Например, длина ключа заголовка для шифра AES-256 всегда равна
|
размера вывода лежащей в основе хеш-функции. Например, длина ключа заголовка для шифра AES-256 всегда равна
|
||||||
256 битам, даже если используется HMAC-SHA-512 (в режиме XTS применяется дополнительный 256-битовый
|
256 битам, даже если используется HMAC-SHA-512 (в режиме XTS применяется дополнительный 256-битовый
|
||||||
вторичный ключ заголовка; следовательно, для AES-256 в целом применяются два 256-битовых ключа). Более
|
вторичный ключ заголовка; следовательно, для AES-256 в целом применяются два 256-битовых ключа). Более
|
||||||
подробную информацию см. в [7]. Для формирования ключа заголовка выполняется большое количество итераций,
|
подробную информацию см. в [7]. Для формирования ключа заголовка выполняется большое количество итераций,
|
||||||
что увеличивает время, необходимое для полного поиска паролей (то есть атакой методом перебора) [7].</div>
|
что увеличивает время, необходимое для полного поиска паролей (то есть атакой методом перебора) [7].</div>
|
||||||
|
|
||||||
|
<h3>Формирование ключа Argon2id</h3>
|
||||||
<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">
|
||||||
<p>До версии 1.12 в VeraCrypt всегда использовалось фиксированное количество итераций, зависящее только от типа
|
Argon2id — это функция формирования ключа с повышенными требованиями к памяти, обеспечивающая устойчивость к атакам с компромиссом время-память и атакам по сторонним каналам. В отличие от PBKDF2-HMAC, Argon2id не использует отдельный выбор алгоритма хеширования, а применяет собственную внутреннюю хеш-функцию (<a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none">BLAKE2b-512</a>). Для Argon2id требуются три параметра: затраты памяти (объём используемой памяти), затраты времени (число итераций) и параллелизм (число потоков). VeraCrypt во всех случаях устанавливает параметр параллелизма равным 1.</div>
|
||||||
тома и алгоритма формирования ключа.</p>
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
Для обеих функций формирования ключа применяется 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">
|
||||||
|
генератором случайных чисел VeraCrypt</a> в процессе создания тома.</div>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
<p>До версии 1.12 VeraCrypt всегда использовал PBKDF2-HMAC с фиксированным количеством итераций, зависящим только от типа
|
||||||
|
тома и используемого алгоритма хеширования.</p>
|
||||||
<ul></ul>
|
<ul></ul>
|
||||||
<p>Начиная с версии 1.12, поле <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
<p>Начиная с версии 1.12, поле <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
||||||
PIM</a> (<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">Персональный множитель итераций</a>)
|
PIM</a> (<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">Персональный множитель итераций</a>)
|
||||||
даёт пользователям больший контроль за количеством итераций, используемых в функции формирования ключа.</p>
|
даёт пользователям больший контроль над вычислительными параметрами, используемыми функцией формирования ключа.</p>
|
||||||
|
<h4>Параметры PBKDF2-HMAC</h4>
|
||||||
<p>Если <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
<p>Если <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
||||||
PIM</a> не указан или равен нулю, VeraCrypt использует следующие стандартные значения:</p>
|
PIM</a> не указан или равен нулю, VeraCrypt использует следующие стандартные значения для PBKDF2-HMAC:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Для шифрования системы (шифрование загрузки), если используется SHA-256, BLAKE2s-256 или Streebog, <i>число итераций</i> = <strong>200 000</strong>.</li>
|
<li>Для шифрования системы (шифрование загрузки), если используется SHA-256, BLAKE2s-256 или Streebog, <i>число итераций</i> = <strong>200 000</strong>.</li>
|
||||||
<li>Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файловых контейнеров <i>число итераций</i> = <strong>500 000</strong>.
|
<li>Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файловых контейнеров с PBKDF2-HMAC <i>число итераций</i> = <strong>500 000</strong>.
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</p>
|
</p>
|
||||||
<p>Если <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
<p>Если <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
||||||
PIM</a> указан, то количество итераций функции формирования ключа вычисляется следующим образом:</p>
|
PIM</a> указан, то количество итераций функции формирования ключа PBKDF2 вычисляется следующим образом:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Для шифрования системы, если не используется SHA-512 или Whirlpool, <i>число итераций</i> = <strong>PIM × 2048</strong>.</li>
|
<li>Для шифрования системы, если не используется SHA-512 или Whirlpool, <i>число итераций</i> = <strong>PIM × 2048</strong>.</li>
|
||||||
<li>Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файлов-контейнеров <i>число итераций</i> = <strong>15 000 + (PIM × 1000)</strong>.
|
<li>Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файлов-контейнеров с PBKDF2-HMAC <i>число итераций</i> = <strong>15 000 + (PIM × 1000)</strong>.
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
<h4>Параметры Argon2id</h4>
|
||||||
|
<p>Для Argon2id значение PIM управляет затратами памяти и времени. Если PIM не указан, используются параметры по умолчанию, соответствующие PIM = 12 (416 MiB памяти, 6 итераций).</p>
|
||||||
|
<p>Для Argon2id VeraCrypt формирует фиксированные 192 байта ключевого материала заголовка для текущего формата томов независимо от выбранного алгоритма шифрования. Затем выбранный алгоритм шифрования использует требуемый префикс этого вывода. Например, AES-XTS использует первые 64 байта. Реализации должны запрашивать у Argon2id 192 байта, а затем выбирать требуемый префикс; запрос только длины ключевого материала выбранного алгоритма даёт другой вывод Argon2id, поскольку Argon2id включает запрошенную длину вывода в своё вычисление.</p>
|
||||||
</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">
|
||||||
Ключи заголовка, используемые шифрами при каскадном (последовательном) шифровании, не зависят друг от друга,
|
Ключи заголовка, используемые шифрами при каскадном (последовательном) шифровании, не зависят друг от друга,
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<title>VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом</title>
|
||||||
|
<meta name="description" content="VeraCrypt это бесплатное программное обеспечение для шифрования дисков с открытым исходным кодом для Windows, Mac OS X (macOS) и Linux. В случае, если злоумышленник вынуждает вас раскрыть пароль, VeraCrypt обеспечивает правдоподобное отрицание наличия шифрования. В отличие от пофайлового шифрования, VeraCrypt шифрует данные в реальном времени (на лету), автоматически, прозрачно, требует очень мало памяти и не использует временные незашифрованные файлы."/>
|
||||||
|
<meta name="keywords" content="encryption, security, шифрование, безопасность"/>
|
||||||
|
<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>
|
||||||
|
</p></div>
|
||||||
|
<div class="wikidoc">
|
||||||
|
<h1>Алгоритмы формирования ключа</h1>
|
||||||
|
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
Функция формирования ключа (KDF) преобразует пароль и, при наличии, ключевые файлы в криптографические ключи, используемые для расшифрования заголовка тома VeraCrypt. Такие функции замедляют атаки перебором и защищают от предвычислений благодаря большой случайной соли и настраиваемому рабочему фактору, например числу итераций или объему памяти.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Доступные алгоритмы в VeraCrypt</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:8px; padding:0px">
|
||||||
|
<strong><a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a>:</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:0px">
|
||||||
|
<strong><a href="pbkdf2.html" style="color:#0080c0; text-decoration:none">PBKDF2-HMAC</a>:</strong> широко применяемая KDF, использующая HMAC с выбираемой хеш-функцией. Поддерживаемые HMAC-хеши в VeraCrypt:
|
||||||
|
<a href="SHA-512.html" style="color:#0080c0; text-decoration:none">SHA-512</a>, <a href="SHA-256.html" style="color:#0080c0; text-decoration:none">SHA-256</a>, <a href="Whirlpool.html" style="color:#0080c0; text-decoration:none">Whirlpool</a>, <a href="BLAKE2s-256.html" style="color:#0080c0; text-decoration:none">BLAKE2s-256</a> и <a href="Streebog.html" style="color:#0080c0; text-decoration:none">Streebog</a>.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
@@ -37,27 +37,57 @@
|
|||||||
<h1>PIM (Персональный множитель итераций)</h1>
|
<h1>PIM (Персональный множитель итераций)</h1>
|
||||||
<div>
|
<div>
|
||||||
<p>PIM расшифровывается как "Персональный множитель итераций". Это параметр впервые появился в VeraCrypt 1.12,
|
<p>PIM расшифровывается как "Персональный множитель итераций". Это параметр впервые появился в VeraCrypt 1.12,
|
||||||
его значение определяет количество итераций, используемых функцией формирования ключа заголовка. Это значение можно
|
его значение управляет вычислительными параметрами функции формирования ключа заголовка. Это значение можно указать
|
||||||
указать в диалоговом окне пароля или в командной строке.</p>
|
в диалоговом окне пароля или в командной строке.</p>
|
||||||
<p>Если значение PIM указано, количество итераций вычисляется следующим образом:</p>
|
<p>Точное значение PIM зависит от используемой функции формирования ключа (KDF):</p>
|
||||||
|
|
||||||
|
<h3>Формирование ключа PBKDF2-HMAC</h3>
|
||||||
|
<p>При использовании PBKDF2-HMAC значение PIM управляет количеством итераций следующим образом:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Для шифрования системного раздела без использования SHA-512 или Whirlpool <i>количество итераций</i> = <strong>PIM × 2048</strong> </li>
|
<li>Для шифрования системного раздела без использования SHA-512 или Whirlpool <i>количество итераций</i> = <strong>PIM × 2048</strong> </li>
|
||||||
<li>Для шифрования системного раздела с использованием SHA-512 или Whirlpool <i>количество итераций</i> = <strong>15 000 + (PIM × 1000)</strong></li>
|
<li>Для шифрования системного раздела с использованием SHA-512 или Whirlpool <i>количество итераций</i> = <strong>15 000 + (PIM × 1000)</strong></li>
|
||||||
<li>Для шифрования несистемных разделов и файловых контейнеров <i>количество итераций</i> = <strong>15 000 + (PIM × 1000)</strong></li>
|
<li>Для шифрования несистемных разделов и файловых контейнеров <i>количество итераций</i> = <strong>15 000 + (PIM × 1000)</strong></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Если значение PIM не указано, будет использоваться количество итераций по умолчанию, применяемое в версиях до 1.12
|
|
||||||
(см. <a href="Header%20Key%20Derivation.html">Формирование ключа заголовка</a>).
|
<h3>Формирование ключа Argon2id</h3>
|
||||||
Это можно резюмировать следующим образом:<br/>
|
<p>При использовании Argon2id значение PIM управляет параметрами затрат памяти и времени:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Для шифрования системного раздела (шифрования загрузки) с использованием SHA-256, BLAKE2s-256 или Streebog применяется <strong>200 000</strong> итераций, что эквивалентно значению PIM <strong>98</strong>.</li>
|
<li><strong>Затраты памяти (m_cost) в MiB:</strong><br/>
|
||||||
<li>Для шифрования системного раздела с использованием SHA-512 или Whirlpool применяется <strong>500 000</strong> итераций, что эквивалентно значению PIM <strong>485</strong>.</li>
|
m_cost(pim) = min(64 MiB + (pim - 1) * 32 MiB, 1024 MiB)<br/>
|
||||||
<li>Для шифрования несистемных разделов и файловых контейнеров все алгоритмы формирования ключа (деривации) будут использовать <strong>500 000</strong> итераций, что эквивалентно значению PIM <strong>485</strong>.</li>
|
Затраты памяти увеличиваются на 32 MiB при каждом увеличении PIM, начиная с 64 MiB, и ограничиваются 1024 MiB, когда PIM достигает 31 или более.
|
||||||
</ul>
|
</li>
|
||||||
|
<li><strong>Затраты времени (t_cost) в итерациях:</strong><br/>
|
||||||
|
Если PIM ≤ 31: t_cost(pim) = 3 + floor((pim - 1) / 3)<br/>
|
||||||
|
Если PIM > 31: t_cost(pim) = 13 + (pim - 31)<br/>
|
||||||
|
Затраты времени увеличиваются на 1 итерацию при каждых 3 увеличениях PIM, когда PIM ≤ 31, и на 1 итерацию при каждом увеличении PIM, когда PIM > 31.
|
||||||
|
</li>
|
||||||
|
<li><strong>Параллелизм:</strong> фиксирован на 1 поток во всех случаях.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p><strong>Примеры Argon2id:</strong></p>
|
||||||
|
<ul>
|
||||||
|
<li>При PIM = 12: затраты памяти = 416 MiB, затраты времени = 6 итераций</li>
|
||||||
|
<li>При PIM = 31: затраты памяти = 1024 MiB, затраты времени = 13 итераций</li>
|
||||||
|
<li>При PIM = 32: затраты памяти = 1024 MiB, затраты времени = 14 итераций</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Если значение PIM не указано, VeraCrypt будет использовать параметры по умолчанию, применявшиеся в версиях до 1.12 для PBKDF2-HMAC
|
||||||
|
(см. <a href="Header%20Key%20Derivation.html">Формирование ключа заголовка</a>). Для Argon2id параметры по умолчанию эквивалентны PIM = 12:
|
||||||
</p>
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Значения PBKDF2-HMAC по умолчанию:</strong></li>
|
||||||
|
<ul>
|
||||||
|
<li>Для шифрования системного раздела (шифрования загрузки) с использованием SHA-256, BLAKE2s-256 или Streebog применяется <strong>200 000</strong> итераций, что эквивалентно значению PIM <strong>98</strong>.</li>
|
||||||
|
<li>Для шифрования системного раздела с использованием SHA-512 или Whirlpool применяется <strong>500 000</strong> итераций, что эквивалентно значению PIM <strong>485</strong>.</li>
|
||||||
|
<li>Для шифрования несистемных разделов и файловых контейнеров с PBKDF2-HMAC применяется <strong>500 000</strong> итераций, что эквивалентно значению PIM <strong>485</strong>.</li>
|
||||||
|
</ul>
|
||||||
|
<li><strong>Значения Argon2id по умолчанию:</strong> затраты памяти = 416 MiB, затраты времени = 6 итераций (эквивалентно PIM = 12)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<p>До версии 1.12 безопасность тома VeraCrypt основывалась только на надёжности пароля, поскольку VeraCrypt использовал
|
<p>До версии 1.12 безопасность тома VeraCrypt основывалась только на надёжности пароля, поскольку VeraCrypt использовал
|
||||||
фиксированное количество итераций.<br>
|
фиксированное количество итераций.<br>
|
||||||
Благодаря реализации управления PIM у VeraCrypt появилось двумерное пространство безопасности для томов, основанное
|
Благодаря реализации управления PIM у VeraCrypt появилось многомерное пространство безопасности для томов, основанное
|
||||||
на паре (Пароль, PIM). Это обеспечивает большую гибкость при настройке желаемого уровня безопасности, одновременно
|
на сочетании (Пароль, PIM, функция формирования ключа). Это обеспечивает большую гибкость при настройке желаемого уровня безопасности, одновременно
|
||||||
контролируя производительность операции монтирования/загрузки.</p>
|
контролируя производительность операции монтирования/загрузки.</p>
|
||||||
<h3>Использование PIM</h3>
|
<h3>Использование PIM</h3>
|
||||||
Указывать PIM не обязательно.</div>
|
Указывать PIM не обязательно.</div>
|
||||||
@@ -69,7 +99,7 @@
|
|||||||
<div>PIM обрабатывается как секретное значение, которое пользователь должен вводить каждый раз вместе с паролем.
|
<div>PIM обрабатывается как секретное значение, которое пользователь должен вводить каждый раз вместе с паролем.
|
||||||
Если указано неверное значение PIM, операция монтирования/загрузки завершится ошибкой.</div>
|
Если указано неверное значение PIM, операция монтирования/загрузки завершится ошибкой.</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
<div>Чем больше PIM, тем выше безопасность, так как увеличивается число итераций, но тем медленнее
|
<div>Чем больше PIM, тем выше безопасность благодаря увеличению параметров затрат KDF, но тем медленнее
|
||||||
монтирование/загрузка.</div>
|
монтирование/загрузка.</div>
|
||||||
<div>Чем меньше PIM, тем быстрее монтирование/загрузка, но возможно ухудшение безопасности, если используется
|
<div>Чем меньше PIM, тем быстрее монтирование/загрузка, но возможно ухудшение безопасности, если используется
|
||||||
слабый пароль.</div>
|
слабый пароль.</div>
|
||||||
@@ -79,11 +109,11 @@
|
|||||||
того, чтобы убедиться, что для коротких паролей уровень безопасности по крайней мере равен уровню по умолчанию,
|
того, чтобы убедиться, что для коротких паролей уровень безопасности по крайней мере равен уровню по умолчанию,
|
||||||
когда PIM пуст.</div>
|
когда PIM пуст.</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
<div>Минимальное значение PIM для коротких паролей равно <b>98</b> для шифрования системы без использования
|
<div>Минимальное значение PIM для коротких паролей равно <b>12</b> для томов с Argon2id, <b>98</b> для шифрования системы без использования
|
||||||
SHA-512 или Whirlpool, и <b>485</b> для других случаев. Для пароля, состоящего из 20 и более символов,
|
SHA-512 или Whirlpool, и <b>485</b> для PBKDF2-HMAC в остальных случаях. Для пароля, состоящего из 20 и более символов,
|
||||||
минимальное значение PIM равно <b>1</b>.
|
минимальное значение PIM равно <b>1</b>.
|
||||||
Во всех случаях, если оставить PIM пустым или установить его значение равным 0, VeraCrypt будет использовать
|
Во всех случаях, если оставить PIM пустым или установить его значение равным 0, VeraCrypt будет использовать
|
||||||
большое количество итераций по умолчанию, как это объяснено в разделе
|
параметры KDF по умолчанию, как это объяснено в разделе
|
||||||
<a href="Header%20Key%20Derivation.html">
|
<a href="Header%20Key%20Derivation.html">
|
||||||
Формирование ключа заголовка</a>.</div>
|
Формирование ключа заголовка</a>.</div>
|
||||||
<div><br>
|
<div><br>
|
||||||
@@ -92,8 +122,8 @@ SHA-512 или Whirlpool, и <b>485</b> для других случаев. Дл
|
|||||||
<li>добавление дополнительного секретного параметра (PIM), который злоумышленнику придётся угадывать;</li>
|
<li>добавление дополнительного секретного параметра (PIM), который злоумышленнику придётся угадывать;</li>
|
||||||
<li>повышение уровня безопасности при использовании больших значений PIM, чтобы воспрепятствовать дальнейшему
|
<li>повышение уровня безопасности при использовании больших значений PIM, чтобы воспрепятствовать дальнейшему
|
||||||
развитию атак методом перебора;</li>
|
развитию атак методом перебора;</li>
|
||||||
<li>ускорение загрузки или монтирования за счет использования небольшого значения PIM (менее 98 для
|
<li>ускорение загрузки или монтирования за счет использования небольшого значения PIM (менее 12 для томов с Argon2id, менее 98 для
|
||||||
шифрования системы без использования SHA-512 или Whirlpool, и менее 485 для других случаев)
|
шифрования системы без использования SHA-512 или Whirlpool, и менее 485 для PBKDF2-HMAC в остальных случаях)
|
||||||
</li></ul>
|
</li></ul>
|
||||||
<p>На приведённых ниже снимках экрана показан шаг монтирования тома с использованием PIM, равного 231:</p>
|
<p>На приведённых ниже снимках экрана показан шаг монтирования тома с использованием PIM, равного 231:</p>
|
||||||
<table style="margin-left:auto; margin-right:auto">
|
<table style="margin-left:auto; margin-right:auto">
|
||||||
|
|||||||
@@ -59,9 +59,9 @@
|
|||||||
<p>Описание функции перемешивания пула:</p>
|
<p>Описание функции перемешивания пула:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Пусть <em>R</em> это пул случайных значений</li>
|
<li>Пусть <em>R</em> это пул случайных значений</li>
|
||||||
<li>Пусть <em>H</em> это выбранная пользователем функция хеширования (SHA-512, BLAKE2S-256 или Whirlpool)</li>
|
<li>Пусть <em>H</em> это текущая хеш-функция перемешивания пула RNG. В отдельных контекстах работы со случайным пулом и генерации ключевых файлов это хеш-функция, выбранная пользователем. При операциях с томами VeraCrypt получает её из выбранного алгоритма формирования ключа заголовка: для PBKDF2-HMAC это выбранный хеш (SHA-512, SHA-256, BLAKE2s-256, Whirlpool или Streebog); для Argon2id это <a href="BLAKE2b-512.html">BLAKE2b-512</a>.</li>
|
||||||
<li><em>l</em> = байтовый размер вывода функции хеширования <em>H</em> (то есть если
|
<li><em>l</em> = байтовый размер вывода функции хеширования <em>H</em> (то есть если
|
||||||
<em>H</em> – BLAKE2S-256, то <em>l</em> = 20; если <em>H</em> – SHA-512, то <em>l</em> = 64)</li>
|
<em>H</em> – BLAKE2s-256 или SHA-256, то <em>l</em> = 32; если <em>H</em> – SHA-512, Whirlpool, Streebog или BLAKE2b-512, то <em>l</em> = 64)</li>
|
||||||
<li><em>z</em> = байтовый размер пула случайных значений <em>R </em>(320 байт)</li>
|
<li><em>z</em> = байтовый размер пула случайных значений <em>R </em>(320 байт)</li>
|
||||||
<li><em>q</em> = <em>z</em> / <em>l</em> – 1 (например, если <em>H</em> – Whirlpool, то
|
<li><em>q</em> = <em>z</em> / <em>l</em> – 1 (например, если <em>H</em> – Whirlpool, то
|
||||||
<em>q</em> = 4)</li>
|
<em>q</em> = 4)</li>
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
<li>Состояние каждого бита в пуле инвертируется (то есть 0 становится 1, а 1 становится 0).</li>
|
<li>Состояние каждого бита в пуле инвертируется (то есть 0 становится 1, а 1 становится 0).</li>
|
||||||
<li>Данные, полученные из какого-либо перечисленного выше источника, добавляются в пул, как описано выше.</li>
|
<li>Данные, полученные из какого-либо перечисленного выше источника, добавляются в пул, как описано выше.</li>
|
||||||
<li>Содержимое пула трансформируется с помощью функции перемешивания пула.<br>
|
<li>Содержимое пула трансформируется с помощью функции перемешивания пула.<br>
|
||||||
Примечание. Эта функция использует криптографически стойкую одностороннюю хеш-функцию, выбираемую пользователем
|
Примечание. Эта функция использует криптографически стойкую одностороннюю хеш-функцию, связанную с выбранным вариантом KDF/хеширования
|
||||||
(подробности см. выше в разделе <em>Функция перемешивания пула</em>).</li>
|
(подробности см. выше в разделе <em>Функция перемешивания пула</em>).</li>
|
||||||
<li>Преобразованное содержимое пула подвергается операции XOR в выходной буфер следующим образом:
|
<li>Преобразованное содержимое пула подвергается операции XOR в выходной буфер следующим образом:
|
||||||
<ol type="a">
|
<ol type="a">
|
||||||
|
|||||||
@@ -0,0 +1,82 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<title>VeraCrypt - Бесплатное надёжное шифрование дисков с открытым исходным кодом</title>
|
||||||
|
<meta name="description" content="VeraCrypt это бесплатное программное обеспечение для шифрования дисков с открытым исходным кодом для Windows, Mac OS X (macOS) и Linux. В случае, если злоумышленник вынуждает вас раскрыть пароль, VeraCrypt обеспечивает правдоподобное отрицание наличия шифрования. В отличие от пофайлового шифрования, VeraCrypt шифрует данные в реальном времени (на лету), автоматически, прозрачно, требует очень мало памяти и не использует временные незашифрованные файлы."/>
|
||||||
|
<meta name="keywords" content="encryption, security, шифрование, безопасность"/>
|
||||||
|
<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="pbkdf2.html">PBKDF2</a>
|
||||||
|
</p></div>
|
||||||
|
<div class="wikidoc">
|
||||||
|
<h1>PBKDF2</h1>
|
||||||
|
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
PBKDF2 (Password-Based Key Derivation Function 2) — широко применяемая KDF, которая многократно применяет псевдослучайную функцию HMAC, чтобы замедлить подбор пароля. В VeraCrypt PBKDF2 доступна с несколькими HMAC-хеш-функциями и используется для формирования ключей, расшифровывающих заголовок тома.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Варианты PBKDF2-HMAC, поддерживаемые в VeraCrypt</h3>
|
||||||
|
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding:0px">
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="SHA-512.html" style="color:#0080c0; text-decoration:none">SHA-512</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="SHA-256.html" style="color:#0080c0; text-decoration:none">SHA-256</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="Whirlpool.html" style="color:#0080c0; text-decoration:none">Whirlpool</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="BLAKE2s-256.html" style="color:#0080c0; text-decoration:none">BLAKE2s-256</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 0px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="Streebog.html" style="color:#0080c0; text-decoration:none">Streebog</a></strong></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Параметры в VeraCrypt</h3>
|
||||||
|
|
||||||
|
<h4>Соль</h4>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
512-битовая случайная соль, сохраняемая в заголовке тома, смешивается с паролем, чтобы предотвратить предвычисления и атаки с радужными таблицами.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4>Количество итераций</h4>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
Количество итераций PBKDF2 зависит от выбранного HMAC-хеша, контекста (например, системное или несистемное шифрование) и значения <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html" style="color:#0080c0; text-decoration:none">PIM</a>. Увеличение PIM повышает число итераций и, следовательно, время, необходимое для формирования ключей. Точные значения и формулы приведены в разделе <a href="Header%20Key%20Derivation.html" style="color:#0080c0; text-decoration:none">Формирование ключа заголовка, соль и количество итераций</a>.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4>Длина вывода</h4>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
Объём сформированного ключевого материала заголовка зависит от выбранного алгоритма или каскада шифрования. В текущих томах XTS VeraCrypt использует как первичные, так и вторичные ключи заголовка; например, для AES-256-XTS требуется всего 512 бит (два 256-битовых ключа), а для каскада AES-Twofish-Serpent-XTS — 1536 бит (шесть 256-битовых ключей).
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Преимущества и особенности</h3>
|
||||||
|
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding:0px">
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>Широкая совместимость:</strong> PBKDF2 широко поддерживается на разных платформах и в разных средах.</li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>Низкие требования к памяти:</strong> подходит для систем с ограниченными ресурсами.</li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 0px 0px; padding:0px"><strong>Не обладает повышенными требованиями к памяти:</strong> по сравнению с <a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a>, PBKDF2 обеспечивает меньшую устойчивость к атакам с использованием массово-параллельного оборудования (GPU/ASIC). Если необходимо использовать PBKDF2, рассмотрите возможность повышения PIM.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Связанные разделы</h3>
|
||||||
|
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding:0px">
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><a href="Key%20Derivation%20Algorithms.html" style="color:#0080c0; text-decoration:none">Алгоритмы формирования ключа (обзор)</a></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><a href="Header%20Key%20Derivation.html" style="color:#0080c0; text-decoration:none">Формирование ключа заголовка, соль и количество итераций</a></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 0px 0px; padding:0px"><a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html" style="color:#0080c0; text-decoration:none">PIM (Персональный множитель итераций)</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
@@ -0,0 +1,174 @@
|
|||||||
|
<!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) × 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 ≤ 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 > 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>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<!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="Hash%20Algorithms.html">哈希算法</a>
|
||||||
|
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||||||
|
<a href="BLAKE2b-512.html">BLAKE2b-512</a>
|
||||||
|
</p></div>
|
||||||
|
|
||||||
|
<div class="wikidoc">
|
||||||
|
<h1>BLAKE2b-512</h1>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
<p>
|
||||||
|
BLAKE2b是BLAKE2的64位字变体,也是BLAKE-512的后继者。BLAKE2b和BLAKE2s在RFC 7693中进行了详细说明。
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
VeraCrypt在<a href="Argon2id.html" style="text-align:left; color:#0080c0; text-decoration:none">Argon2id</a>内部使用最大输出大小为64字节(512位)的BLAKE2b。对于非系统卷头密钥推导,通过在 VeraCrypt 中选择 Argon2 密钥推导算法来使用 BLAKE2b-512;其内部对应 Argon2id。在随机数池混合和密钥文件生成等哈希相关上下文中,同一底层哈希函数可能显示为BLAKE2b-512。
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
BLAKE2b-512不作为单独的PBKDF2-HMAC哈希算法提供。要在VeraCrypt非系统卷头密钥推导中使用BLAKE2b-512,请选择<a href="Argon2id.html" style="text-align:left; color:#0080c0; text-decoration:none">Argon2id</a>;Argon2id没有单独的哈希算法选择。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
<a href="SHA-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></div>
|
||||||
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
@@ -30,21 +30,21 @@
|
|||||||
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||||||
<a href="Hash%20Algorithms.html">哈希算法</a>
|
<a href="Hash%20Algorithms.html">哈希算法</a>
|
||||||
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
|
||||||
<a href="BLAKE2s-256.html">BLAKE2s - 256</a>
|
<a href="BLAKE2s-256.html">BLAKE2s-256</a>
|
||||||
</p></div>
|
</p></div>
|
||||||
|
|
||||||
<div class="wikidoc">
|
<div class="wikidoc">
|
||||||
<h1>BLAKE2s - 256</h1>
|
<h1>BLAKE2s-256</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">
|
||||||
<p>
|
<p>
|
||||||
BLAKE2是一种基于BLAKE的加密哈希函数,由让 - 菲利普·奥马森(Jean - Philippe Aumasson)、塞缪尔·内维斯(Samuel Neves)、祖科·威尔科克斯 - 奥赫恩(Zooko Wilcox - O'Hearn)和克里斯蒂安·温纳莱因(Christian Winnerlein)创建。它于2012年12月21日发布。其设计目标是在需要软件高性能的应用程序中取代广泛使用但已被破解的MD5和SHA - 1算法。BLAKE2提供了比SHA - 2更好的安全性,与SHA - 3相当(例如,对长度扩展攻击具有免疫性,与随机预言机不可区分等)。<br/>
|
BLAKE2是一种基于BLAKE的加密哈希函数,由让 - 菲利普·奥马森(Jean - Philippe Aumasson)、塞缪尔·内维斯(Samuel Neves)、祖科·威尔科克斯 - 奥赫恩(Zooko Wilcox - O'Hearn)和克里斯蒂安·温纳莱因(Christian Winnerlein)创建。它于2012年12月21日发布。其设计目标是在需要软件高性能的应用程序中取代广泛使用但已被破解的MD5和SHA - 1算法。BLAKE2提供了比SHA - 2更好的安全性,与SHA - 3相当(例如,对长度扩展攻击具有免疫性,与随机预言机不可区分等)。<br/>
|
||||||
BLAKE2从BLAKE的轮函数中移除了消息字的常量加法,更改了两个旋转常量,简化了填充方式,添加了与初始化向量进行异或运算的参数块,并将BLAKE2b(BLAKE - 512的后继者)的轮数从16轮减少到12轮,将BLAKE2s(BLAKE - 256的后继者)的轮数从14轮减少到10轮。<br/>
|
BLAKE2从BLAKE的轮函数中移除了消息字的常量加法,更改了两个旋转常量,简化了填充方式,添加了与初始化向量进行异或运算的参数块,并将BLAKE2b(BLAKE-512的后继者)的轮数从16轮减少到12轮,将BLAKE2s(BLAKE-256的后继者)的轮数从14轮减少到10轮。<br/>
|
||||||
BLAKE2b和BLAKE2s在RFC 7693中进行了详细说明。
|
BLAKE2b和BLAKE2s在RFC 7693中进行了详细说明。
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
VeraCrypt仅使用最大输出大小为32字节(256位)的BLAKE2s。
|
VeraCrypt将最大输出大小为32字节(256位)的BLAKE2s用作PBKDF2-HMAC哈希算法。对于Argon2id,VeraCrypt在内部使用<a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none">BLAKE2b-512</a>。
|
||||||
</p>
|
</p>
|
||||||
</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">
|
||||||
<a href="SHA-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></div>
|
<a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></div>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><em>/hash</em></td>
|
<td><em>/hash</em></td>
|
||||||
<td>必须后跟一个参数,指示挂载卷时要使用的 PRF 哈希算法。可能的 /hash 参数值为:sha256, sha-256, sha512, sha-512, whirlpool, blake2s 和 blake2s-256。当省略 /hash 时,VeraCrypt 将尝试所有可能的 PRF 算法,从而延长挂载操作时间。</td>
|
<td>必须后跟一个参数,指示挂载卷时要使用的 PRF 哈希算法或 KDF。可能的 /hash 参数值为:sha256, sha-256, sha512, sha-512, whirlpool, blake2s, blake2s-256, streebog 和 blake2b-512(用于 Argon2id 卷)。当省略 /hash 时,VeraCrypt 将尝试所有可能的 PRF/KDF 算法,从而延长挂载操作时间。</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td id="volume"><em>/volume</em> 或 <em>/v</em></td>
|
<td id="volume"><em>/volume</em> 或 <em>/v</em></td>
|
||||||
@@ -228,7 +228,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td> <em>/hash</em></td>
|
<td> <em>/hash</em></td>
|
||||||
<td>(仅与 /create 一起使用)<br>
|
<td>(仅与 /create 一起使用)<br>
|
||||||
必须后跟一个参数,指示创建卷时要使用的 PRF 哈希算法。它与 VeraCrypt.exe 具有相同的语法。</td>
|
必须后跟一个参数,指示创建卷时要使用的 PRF 哈希算法或 KDF。它与 VeraCrypt.exe 具有相同的语法,并且还接受 <code>argon2</code> 作为 Argon2id 的别名。</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>/encryption</td>
|
<td>/encryption</td>
|
||||||
@@ -299,9 +299,9 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<h4>语法</h4>
|
<h4>语法</h4>
|
||||||
<p>VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool |blake2s|blake2s-256}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}]
|
<p>VeraCrypt.exe [/tc] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512}][/a [devices|favorites]] [/b] [/c [y|n|f]] [/d [drive letter]] [/e] [/f] [/h [y|n]] [/k keyfile or search path] [tryemptypass [y|n]] [/l drive letter] [/m {bk|rm|recovery|ro|sm|ts|noattach}]
|
||||||
[/p password] [/pim pimvalue] [/q [background|preferences]] [/s] [/tokenlib path] [/v volume] [/w]</p>
|
[/p password] [/pim pimvalue] [/q [background|preferences]] [/s] [/tokenlib path] [/v volume] [/w]</p>
|
||||||
<p>"VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password] [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256}]
|
<p>"VeraCrypt Format.exe" [/n] [/create] [/size number[{K|M|G|T}]] [/p password] [/encryption {AES | Serpent | Twofish | Camellia | Kuznyechik | AES(Twofish) | AES(Twofish(Serpent)) | Serpent(AES) | Serpent(Twofish(AES)) | Twofish(Serpent) | Camellia(Kuznyechik) | Kuznyechik(Twofish) | Camellia(Serpent) | Kuznyechik(AES) | Kuznyechik(Serpent(Camellia))}] [/hash {sha256|sha-256|sha512|sha-512|whirlpool|blake2s|blake2s-256|streebog|blake2b-512|argon2}]
|
||||||
[/filesystem {None|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]</p>
|
[/filesystem {None|FAT|NTFS|ExFAT|ReFS}] [/dynamic] [/force] [/silent] [/noisocheck] [FastCreateFile] [/quick]</p>
|
||||||
<p>请注意,选项的指定顺序无关紧要。</p>
|
<p>请注意,选项的指定顺序无关紧要。</p>
|
||||||
<h4>示例</h4>
|
<h4>示例</h4>
|
||||||
@@ -315,4 +315,4 @@
|
|||||||
<p>使用密码 <em>test</em> 创建一个 10 MB 的文件容器,并使用 FAT 格式化:</p>
|
<p>使用密码 <em>test</em> 创建一个 10 MB 的文件容器,并使用 FAT 格式化:</p>
|
||||||
<p><code>"C:\Program Files\VeraCrypt\VeraCrypt Format.exe" /create c:\Data\test.hc /password test /hash sha512 /encryption serpent /filesystem FAT /size 10M /force</code></p>
|
<p><code>"C:\Program Files\VeraCrypt\VeraCrypt Format.exe" /create c:\Data\test.hc /password test /hash sha512 /encryption serpent /filesystem FAT /size 10M /force</code></p>
|
||||||
</div>
|
</div>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -81,9 +81,15 @@
|
|||||||
</li></ul>
|
</li></ul>
|
||||||
</li><li><strong><a href="Hash%20Algorithms.html">哈希算法</a></strong>
|
</li><li><strong><a href="Hash%20Algorithms.html">哈希算法</a></strong>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="BLAKE2s-256.html">BLAKE2s - 256</a>
|
<li><a href="BLAKE2s-256.html">BLAKE2s-256</a>
|
||||||
</li><li><a href="SHA-256.html">SHA - 256</a> </li><li><a href="SHA-512.html">SHA - 512</a> </li><li><a href="Whirlpool.html">Whirlpool</a>
|
</li><li><a href="BLAKE2b-512.html">BLAKE2b-512</a>
|
||||||
|
</li><li><a href="SHA-256.html">SHA-256</a> </li><li><a href="SHA-512.html">SHA-512</a> </li><li><a href="Whirlpool.html">Whirlpool</a>
|
||||||
</li><li><a href="Streebog.html">Streebog</a></li></ul>
|
</li><li><a href="Streebog.html">Streebog</a></li></ul>
|
||||||
|
</li><li><strong><a href="Key%20Derivation%20Algorithms.html">密钥推导算法</a></strong>
|
||||||
|
<ul>
|
||||||
|
<li><a href="Argon2id.html">Argon2id</a></li>
|
||||||
|
<li><a href="pbkdf2.html">PBKDF2</a></li>
|
||||||
|
</ul>
|
||||||
</li><li><strong><a href="Supported%20Operating%20Systems.html">支持的操作系统</a></strong>
|
</li><li><strong><a href="Supported%20Operating%20Systems.html">支持的操作系统</a></strong>
|
||||||
</li><li><strong><a href="Command%20Line%20Usage.html">命令行使用方法</a></strong>
|
</li><li><strong><a href="Command%20Line%20Usage.html">命令行使用方法</a></strong>
|
||||||
</li><li><strong><a href="Security%20Model.html">安全模型</a></strong>
|
</li><li><strong><a href="Security%20Model.html">安全模型</a></strong>
|
||||||
|
|||||||
@@ -50,17 +50,21 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>现在VeraCrypt尝试解密在步骤(1)中读取的标准卷头。解密过程中使用和生成的所有数据都保存在内存中(VeraCrypt从不将它们保存到磁盘)。以下参数是未知的†,必须通过试错过程(即测试以下所有可能的组合)来确定:
|
<li>现在VeraCrypt尝试解密在步骤(1)中读取的标准卷头。解密过程中使用和生成的所有数据都保存在内存中(VeraCrypt从不将它们保存到磁盘)。以下参数是未知的†,必须通过试错过程(即测试以下所有可能的组合)来确定:
|
||||||
<ol type="a">
|
<ol type="a">
|
||||||
<li>头密钥派生函数使用的伪随机函数(PRF,如PKCS #5 v2.0中所指定;请参阅
|
<li>密钥推导函数(KDF)及其相关参数:
|
||||||
|
<ul>
|
||||||
|
<li><strong>PBKDF2-HMAC:</strong>头密钥派生函数使用的伪随机函数(PRF,如PKCS #5 v2.0中所指定;请参阅
|
||||||
<a href="Header%20Key%20Derivation.html">
|
<a href="Header%20Key%20Derivation.html">
|
||||||
<em>头密钥派生、盐值和迭代次数</em></a>部分),可以是以下之一:
|
<em>头密钥派生、盐值和迭代次数</em></a>部分),可以是以下之一:HMAC-SHA-512、HMAC-SHA-256、HMAC-BLAKE2s-256、HMAC-Whirlpool、HMAC-Streebog。</li>
|
||||||
<p>HMAC - SHA - 512、HMAC - SHA - 256、HMAC - BLAKE2S - 256、HMAC - Whirlpool。如果用户明确指定了PRF,则将直接使用它,而不尝试其他可能性。</p>
|
<li><strong>Argon2id:</strong>用于非系统卷的内存困难型密钥推导函数,内部使用<a href="BLAKE2b-512.html">BLAKE2b-512</a>哈希函数。</li>
|
||||||
|
</ul>
|
||||||
|
<p>如果用户明确指定了卷头密钥推导算法(或对于 PBKDF2-HMAC 明确指定了 PRF 哈希),VeraCrypt 将直接使用它,而不尝试其他可能性。</p>
|
||||||
<p>用户输入的密码(可能已应用了一个或多个密钥文件 - 请参阅
|
<p>用户输入的密码(可能已应用了一个或多个密钥文件 - 请参阅
|
||||||
<a href="Keyfiles%20in%20VeraCrypt.html">
|
<a href="Keyfiles%20in%20VeraCrypt.html">
|
||||||
<em>密钥文件</em></a>部分)、PIM值(如果指定)和在步骤(1)中读取的盐值将传递给头密钥派生函数,该函数会生成一系列值(请参阅
|
<em>密钥文件</em></a>部分)、PIM值(如果指定)和在步骤(1)中读取的盐值将传递给头密钥派生函数,该函数会生成一系列值(请参阅
|
||||||
<a href="Header%20Key%20Derivation.html">
|
<a href="Header%20Key%20Derivation.html">
|
||||||
<em>头密钥派生、盐值和迭代次数</em></a>部分),从中形成头加密密钥和辅助头密钥(XTS模式)。(这些密钥用于解密卷头。)</p>
|
<em>头密钥派生、盐值和迭代次数</em></a>部分),从中形成头加密密钥和辅助头密钥(XTS模式)。(这些密钥用于解密卷头。)</p>
|
||||||
</li>
|
</li>
|
||||||
<li>加密算法:AES - 256、Serpent、Twofish、AES - Serpent、AES - Twofish - Serpent等。</li>
|
<li>加密算法:AES-256、Serpent、Twofish、AES-Serpent、AES-Twofish-Serpent等。</li>
|
||||||
<li>操作模式:仅支持XTS模式</li>
|
<li>操作模式:仅支持XTS模式</li>
|
||||||
<li>密钥大小</li>
|
<li>密钥大小</li>
|
||||||
</ol>
|
</ol>
|
||||||
@@ -88,4 +92,4 @@
|
|||||||
<p>** 主密钥是在卷创建期间生成的,之后无法更改。更改卷密码是通过使用新的头密钥(从新密码派生)重新加密卷头来实现的。</p>
|
<p>** 主密钥是在卷创建期间生成的,之后无法更改。更改卷密码是通过使用新的头密钥(从新密码派生)重新加密卷头来实现的。</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>
|
<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>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -34,20 +34,23 @@
|
|||||||
<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">
|
||||||
在卷创建向导、密码更改对话框窗口和密钥文件生成器对话框窗口中,您可以选择一种哈希算法。用户选择的哈希算法由VeraCrypt随机数生成器用作伪随机“混合”函数,并由头密钥推导函数(基于哈希函数的HMAC,如PKCS #5 v2.0中所规定)用作伪随机函数。在创建新卷时,随机数生成器会生成主密钥、辅助密钥(XTS模式)和盐值。有关更多信息,请参阅<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">随机数生成器</a>部分和<a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none">头密钥推导、盐值和迭代次数</a>部分。
|
在卷创建向导和密码更改对话框窗口中,当使用PBKDF2-HMAC作为密钥推导函数时,您可以选择哈希算法。在密钥文件生成器对话框窗口中,所选哈希算法由VeraCrypt随机数生成器用作池混合函数。当选择Argon2id作为密钥推导函数时,头密钥推导没有单独的哈希算法选择,因为Argon2id使用其内部的BLAKE2b-512哈希函数。
|
||||||
</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目前支持以下哈希算法:
|
对于PBKDF2-HMAC,用户选择的哈希算法由VeraCrypt随机数生成器用作伪随机“混合”函数,并由头密钥推导函数(基于哈希函数的HMAC,如PKCS #5 v2.0中所规定)用作伪随机函数。在创建新卷时,随机数生成器会生成主密钥、辅助密钥(XTS模式)和盐值。有关更多信息,请参阅<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">随机数生成器</a>部分和<a href="Header%20Key%20Derivation.html" style="text-align:left; color:#0080c0; text-decoration:none">头密钥推导、盐值和迭代次数</a>部分。
|
||||||
|
</div>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
VeraCrypt目前支持以下用于PBKDF2-HMAC的哈希算法:
|
||||||
</div>
|
</div>
|
||||||
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
<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">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<a href="BLAKE2s-256.html"><strong style="text-align:left">BLAKE2s - 256</strong></a>
|
<a href="BLAKE2s-256.html"><strong style="text-align:left">BLAKE2s-256</strong></a>
|
||||||
</li>
|
</li>
|
||||||
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<a href="SHA-256.html"><strong style="text-align:left">SHA - 256</strong></a>
|
<a href="SHA-256.html"><strong style="text-align:left">SHA-256</strong></a>
|
||||||
</li>
|
</li>
|
||||||
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<a href="SHA-512.html"><strong style="text-align:left">SHA - 512</strong></a>
|
<a href="SHA-512.html"><strong style="text-align:left">SHA-512</strong></a>
|
||||||
</li>
|
</li>
|
||||||
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
<li style="text-align:left; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px">
|
||||||
<a href="Whirlpool.html"><strong style="text-align:left">Whirlpool</strong></a>
|
<a href="Whirlpool.html"><strong style="text-align:left">Whirlpool</strong></a>
|
||||||
@@ -56,6 +59,13 @@ VeraCrypt目前支持以下哈希算法:
|
|||||||
<strong style="text-align:left"><a href="Streebog.html">Streebog</a></strong>
|
<strong style="text-align:left"><a href="Streebog.html">Streebog</a></strong>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<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">
|
||||||
|
<a href="BLAKE2b-512.html"><strong style="text-align:left">BLAKE2b-512</strong></a>(与Argon2id关联;不能作为PBKDF2-HMAC选择)
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
<p><a href="BLAKE2s-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></p>
|
<p><a href="BLAKE2s-256.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="ClearBoth"></div></body></html>
|
<div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -44,41 +44,52 @@
|
|||||||
VeraCrypt卷格式规范</a> 部分)。在VeraCrypt创建的卷中(以及对于
|
VeraCrypt卷格式规范</a> 部分)。在VeraCrypt创建的卷中(以及对于
|
||||||
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
系统加密</a>),该区域采用XTS模式进行加密(请参阅 <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
系统加密</a>),该区域采用XTS模式进行加密(请参阅 <a href="Modes%20of%20Operation.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
操作模式</a> 部分)。VeraCrypt用于生成头密钥和辅助头密钥(XTS模式)的方法是PBKDF2,该方法在PKCS #5 v2.0中定义;请参阅
|
操作模式</a> 部分)。对于系统加密,VeraCrypt使用PBKDF2-HMAC。对于非系统卷和文件容器,VeraCrypt支持两种用于生成头密钥的密钥推导函数:PBKDF2(该方法在PKCS #5 v2.0中定义;请参阅
|
||||||
<a href="References.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
<a href="References.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
[7]</a>。
|
[7]</a>)和Argon2id。
|
||||||
|
</div>
|
||||||
|
<h3>PBKDF2-HMAC密钥推导</h3>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
PBKDF2方法使用基于HMAC的伪随机函数,可用的哈希算法包括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]。
|
||||||
|
</div>
|
||||||
|
<h3>Argon2id密钥推导</h3>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
Argon2id是一种内存困难型密钥推导函数,可抵抗时间 - 内存权衡攻击和侧信道攻击。与PBKDF2-HMAC不同,Argon2id不使用单独的哈希算法选择,而是使用自己的内部哈希函数(<a href="BLAKE2b-512.html" style="text-align:left; color:#0080c0; text-decoration:none">BLAKE2b-512</a>)。Argon2id需要三个参数:内存成本(使用的内存量)、时间成本(迭代次数)和并行度(线程数)。VeraCrypt在所有情况下都将并行度参数设为1。
|
||||||
</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">
|
||||||
使用了512位的盐值,这意味着每个密码有2<sup style="text-align:left; font-size:85%">512</sup> 个密钥。这显著降低了对“离线”字典/“彩虹表”攻击的脆弱性(使用盐值时,为字典中的所有密码预先计算所有密钥非常困难) [7]。盐值由
|
两种密钥推导函数都使用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">
|
<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none">
|
||||||
VeraCrypt随机数生成器</a> 在卷创建过程中生成的随机值组成。头密钥推导函数基于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]。
|
VeraCrypt随机数生成器</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">
|
||||||
<p>在1.12版本之前,VeraCrypt始终使用固定的迭代次数,该次数仅取决于卷类型和使用的推导算法。
|
<p>在1.12版本之前,VeraCrypt始终使用PBKDF2-HMAC,并采用固定的迭代次数,该次数仅取决于卷类型和使用的哈希算法。
|
||||||
从1.12版本开始,<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
从1.12版本开始,<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
||||||
PIM </a>字段(<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">个人迭代乘数</a>)使用户能够更好地控制密钥推导函数使用的迭代次数。</p>
|
PIM </a>字段(<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">个人迭代乘数</a>)使用户能够更好地控制密钥推导函数使用的计算参数。</p>
|
||||||
<p>
|
<h4>PBKDF2-HMAC参数</h4>
|
||||||
<p>当未指定 <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
<p>当未指定 <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
||||||
PIM </a>值或该值等于零时,VeraCrypt使用以下默认值:<br/>
|
PIM </a>值或该值等于零时,VeraCrypt对PBKDF2-HMAC使用以下默认值:<br/>
|
||||||
<ul>
|
<ul>
|
||||||
<li>对于使用SHA - 256、BLAKE2s - 256或Streebog的系统分区加密(引导加密),使用 <strong>200000</strong> 次迭代。</li>
|
<li>对于使用SHA-256、BLAKE2s-256或Streebog的系统分区加密(引导加密),使用 <strong>200000</strong> 次迭代。</li>
|
||||||
<li>对于使用SHA - 512或Whirlpool的系统加密,使用 <strong>500000</strong> 次迭代。</li>
|
<li>对于使用SHA-512或Whirlpool的系统加密,使用 <strong>500000</strong> 次迭代。</li>
|
||||||
<li>对于非系统加密和文件容器,所有推导算法都将使用 <strong>500000</strong> 次迭代。
|
<li>对于非系统加密和文件容器,所有PBKDF2-HMAC变体都将使用 <strong>500000</strong> 次迭代。
|
||||||
</li></ul>
|
</li></ul>
|
||||||
</p>
|
</p>
|
||||||
<p>当用户提供 <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
<p>当用户提供 <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
|
||||||
PIM </a>值时,密钥推导函数的迭代次数计算如下:</p>
|
PIM </a>值时,PBKDF2密钥推导函数的迭代次数计算如下:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>对于不使用SHA - 512或Whirlpool的系统加密:迭代次数 = <strong>PIM x 2048</strong>
|
<li>对于不使用SHA-512或Whirlpool的系统加密:迭代次数 = <strong>PIM x 2048</strong>
|
||||||
</li><li>对于使用SHA - 512或Whirlpool的系统加密:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
</li><li>对于使用SHA-512或Whirlpool的系统加密:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
||||||
</li><li>对于非系统加密和文件容器:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
</li><li>对于非系统加密和文件容器:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
|
<h4>Argon2id参数</h4>
|
||||||
|
<p>对于Argon2id,PIM值控制内存成本和时间成本。如果未指定PIM,则使用相当于PIM = 12的默认参数(416 MiB内存,6次迭代)。</p>
|
||||||
|
<p>对于Argon2id,VeraCrypt会为当前卷格式派生固定的192字节头密钥材料,而不依赖于所选加密算法。随后,所选加密算法使用该派生输出中所需的前缀。例如,AES-XTS使用前64字节。实现必须先从Argon2id请求192字节,然后再选择所需前缀;如果只请求所选算法的密钥材料长度,将得到不同的Argon2id输出,因为Argon2id会把请求的输出长度纳入计算。</p>
|
||||||
</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">
|
||||||
级联密码中使用的头密钥相互独立,即使它们是从单个密码(可能已应用密钥文件)派生而来。例如,对于AES - Twofish - Serpent级联,头密钥推导函数会根据给定密码推导出一个768位的加密密钥(在XTS模式下,还会从给定密码推导出一个768位的
|
级联密码中使用的头密钥相互独立,即使它们是从单个密码(可能已应用密钥文件)派生而来。例如,对于AES-Twofish-Serpent级联,头密钥推导函数会根据给定密码推导出一个768位的加密密钥(在XTS模式下,还会从给定密码推导出一个768位的
|
||||||
<em style="text-align:left">辅助</em> 头密钥)。生成的768位头密钥随后被拆分为三个256位密钥(在XTS模式下,
|
<em style="text-align:left">辅助</em> 头密钥)。生成的768位头密钥随后被拆分为三个256位密钥(在XTS模式下,
|
||||||
<em style="text-align:left">辅助</em> 头密钥也被拆分为三个256位密钥,因此级联实际上总共使用六个256位密钥),其中第一个密钥由Serpent使用,第二个密钥由Twofish使用,第三个密钥由AES使用(此外,在XTS模式下,第一个辅助密钥由Serpent使用,第二个辅助密钥由Twofish使用,第三个辅助密钥由AES使用)。因此,即使攻击者拥有其中一个密钥,他也无法使用该密钥推导出其他密钥,因为除了对弱密码进行暴力攻击外,没有可行的方法来确定派生该密钥的密码。
|
<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">
|
||||||
<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></div>
|
<a href="Random%20Number%20Generator.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></div>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
<!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>
|
||||||
|
</p></div>
|
||||||
|
<div class="wikidoc">
|
||||||
|
<h1>密钥推导算法</h1>
|
||||||
|
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
|
||||||
|
密钥推导函数(KDF)会将您的密码以及可选的密钥文件转换为用于解密 VeraCrypt 卷头的加密密钥。KDF 通过使用大的随机盐值和可调的工作因子(例如迭代次数或内存用量)来减缓暴力破解,并防止预计算攻击。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>VeraCrypt 中可用的算法</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:8px; padding:0px">
|
||||||
|
<strong><a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a>:</strong>现代的内存困难型 KDF,内部基于 <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:0px">
|
||||||
|
<strong><a href="pbkdf2.html" style="color:#0080c0; text-decoration:none">PBKDF2-HMAC</a>:</strong>广泛部署的 KDF,使用带有可选哈希函数的 HMAC。VeraCrypt 支持的 HMAC 哈希包括:
|
||||||
|
<a href="SHA-512.html" style="color:#0080c0; text-decoration:none">SHA-512</a>、<a href="SHA-256.html" style="color:#0080c0; text-decoration:none">SHA-256</a>、<a href="Whirlpool.html" style="color:#0080c0; text-decoration:none">Whirlpool</a>、<a href="BLAKE2s-256.html" style="color:#0080c0; text-decoration:none">BLAKE2s-256</a> 和 <a href="Streebog.html" style="color:#0080c0; text-decoration:none">Streebog</a>。
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
@@ -36,24 +36,55 @@
|
|||||||
<div class="wikidoc">
|
<div class="wikidoc">
|
||||||
<h1>PIM</h1>
|
<h1>PIM</h1>
|
||||||
<div>
|
<div>
|
||||||
<p>PIM代表“个人迭代乘数”。它是VeraCrypt 1.12版本引入的一个参数,其值控制着头部密钥推导函数使用的迭代次数。该值可以通过密码对话框或命令行指定。</p>
|
<p>PIM代表“个人迭代乘数”。它是VeraCrypt 1.12版本引入的一个参数,其值控制头部密钥推导函数使用的计算参数。该值可以通过密码对话框或命令行指定。</p>
|
||||||
<p>当指定了PIM值时,迭代次数的计算方式如下:</p>
|
<p>PIM的确切含义取决于所使用的密钥推导函数(KDF):</p>
|
||||||
|
|
||||||
|
<h3>PBKDF2-HMAC密钥推导</h3>
|
||||||
|
<p>使用PBKDF2-HMAC时,PIM值按如下方式控制迭代次数:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>对于不使用SHA - 512或Whirlpool的系统加密:迭代次数 = <strong>PIM x 2048</strong>
|
<li>对于不使用SHA-512或Whirlpool的系统加密:迭代次数 = <strong>PIM x 2048</strong>
|
||||||
</li><li>对于使用SHA - 512或Whirlpool的系统加密:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
</li><li>对于使用SHA-512或Whirlpool的系统加密:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
||||||
</li><li>对于非系统加密和文件容器:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
</li><li>对于非系统加密和文件容器:迭代次数 = <strong>15000 + (PIM x 1000)</strong>
|
||||||
</li></ul>
|
</li></ul>
|
||||||
<p>如果未指定PIM值,VeraCrypt将使用1.12版本之前的默认迭代次数(请参阅
|
|
||||||
|
<h3>Argon2id密钥推导</h3>
|
||||||
|
<p>使用Argon2id时,PIM值同时控制内存成本和时间成本参数:</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>内存成本(m_cost),单位MiB:</strong><br/>
|
||||||
|
m_cost(pim) = min(64 MiB + (pim - 1) * 32 MiB, 1024 MiB)<br/>
|
||||||
|
内存成本从64 MiB开始,每增加1个PIM增加32 MiB;当PIM达到31或更高时,上限为1024 MiB。
|
||||||
|
</li>
|
||||||
|
<li><strong>时间成本(t_cost),以迭代计:</strong><br/>
|
||||||
|
如果PIM ≤ 31:t_cost(pim) = 3 + floor((pim - 1) / 3)<br/>
|
||||||
|
如果PIM > 31:t_cost(pim) = 13 + (pim - 31)<br/>
|
||||||
|
当PIM ≤ 31时,每增加3个PIM,时间成本增加1次迭代;当PIM > 31时,每增加1个PIM,时间成本增加1次迭代。
|
||||||
|
</li>
|
||||||
|
<li><strong>并行度:</strong>所有情况下固定为1个线程。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p><strong>Argon2id示例:</strong></p>
|
||||||
|
<ul>
|
||||||
|
<li>PIM = 12:内存成本 = 416 MiB,时间成本 = 6 次迭代</li>
|
||||||
|
<li>PIM = 31:内存成本 = 1024 MiB,时间成本 = 13 次迭代</li>
|
||||||
|
<li>PIM = 32:内存成本 = 1024 MiB,时间成本 = 14 次迭代</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>如果未指定PIM值,VeraCrypt将对PBKDF2-HMAC使用1.12版本之前的默认参数(请参阅
|
||||||
<a href="Header%20Key%20Derivation.html">
|
<a href="Header%20Key%20Derivation.html">
|
||||||
头部密钥推导</a>)。这可以总结如下:<br/>
|
头部密钥推导</a>)。对于Argon2id,默认参数相当于PIM = 12:
|
||||||
<ul>
|
|
||||||
<li>对于使用SHA - 256、BLAKE2s - 256或Streebog的系统分区加密(引导加密),使用<strong>200000</strong>次迭代,这相当于PIM值为<strong>98</strong>。</li>
|
|
||||||
<li>对于使用SHA - 512或Whirlpool的系统加密,使用<strong>500000</strong>次迭代,这相当于PIM值为<strong>485</strong>。</li>
|
|
||||||
<li>对于非系统加密和文件容器,所有推导算法将使用<strong>500000</strong>次迭代,这相当于PIM值为<strong>485</strong>。</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><strong>PBKDF2-HMAC默认值:</strong></li>
|
||||||
|
<ul>
|
||||||
|
<li>对于使用SHA-256、BLAKE2s-256或Streebog的系统分区加密(引导加密),使用<strong>200000</strong>次迭代,这相当于PIM值为<strong>98</strong>。</li>
|
||||||
|
<li>对于使用SHA-512或Whirlpool的系统加密,使用<strong>500000</strong>次迭代,这相当于PIM值为<strong>485</strong>。</li>
|
||||||
|
<li>对于使用PBKDF2-HMAC的非系统加密和文件容器,使用<strong>500000</strong>次迭代,这相当于PIM值为<strong>485</strong>。</li>
|
||||||
|
</ul>
|
||||||
|
<li><strong>Argon2id默认值:</strong>内存成本 = 416 MiB,时间成本 = 6 次迭代(相当于PIM = 12)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<p>在1.12版本之前,VeraCrypt卷的安全性仅基于密码强度,因为VeraCrypt使用固定的迭代次数。<br>
|
<p>在1.12版本之前,VeraCrypt卷的安全性仅基于密码强度,因为VeraCrypt使用固定的迭代次数。<br>
|
||||||
随着PIM的引入,VeraCrypt的卷在基于(密码,PIM)对的二维安全空间中具有更高的灵活性,可在控制挂载/引导操作性能的同时调整所需的安全级别。</p>
|
随着PIM的引入,VeraCrypt卷基于(密码,PIM,密钥推导函数)组合形成多维安全空间,可在控制挂载/引导操作性能的同时更灵活地调整所需的安全级别。</p>
|
||||||
<h3>PIM的使用</h3>
|
<h3>PIM的使用</h3>
|
||||||
不强制要求指定PIM。</div>
|
不强制要求指定PIM。</div>
|
||||||
<div><br>
|
<div><br>
|
||||||
@@ -61,21 +92,21 @@
|
|||||||
<div> </div>
|
<div> </div>
|
||||||
<div>PIM被视为一个秘密值,每次用户都必须与密码一起输入。如果指定了错误的PIM值,挂载/引导操作将失败。</div>
|
<div>PIM被视为一个秘密值,每次用户都必须与密码一起输入。如果指定了错误的PIM值,挂载/引导操作将失败。</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
<div>使用较高的PIM值可以通过增加迭代次数来提高安全性,但会导致挂载/引导时间变慢。</div>
|
<div>使用较高的PIM值可以通过提高KDF成本参数来增强安全性,但会导致挂载/引导时间变慢。</div>
|
||||||
<div>使用较小的PIM值,挂载/引导速度会更快,但如果使用弱密码,可能会降低安全性。</div>
|
<div>使用较小的PIM值,挂载/引导速度会更快,但如果使用弱密码,可能会降低安全性。</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
<div>在创建卷或对系统进行加密时,当密码长度小于20个字符时,VeraCrypt会强制PIM值大于或等于某个最小值。进行此检查是为了确保对于短密码,安全级别至少等于空PIM提供的默认级别。</div>
|
<div>在创建卷或对系统进行加密时,当密码长度小于20个字符时,VeraCrypt会强制PIM值大于或等于某个最小值。进行此检查是为了确保对于短密码,安全级别至少等于空PIM提供的默认级别。</div>
|
||||||
<div> </div>
|
<div> </div>
|
||||||
<div>对于短密码,不使用SHA - 512或Whirlpool的系统加密的PIM最小值为<strong>98</strong>,其他情况的PIM最小值为
|
<div>对于短密码,Argon2id卷的PIM最小值为<strong>12</strong>,不使用SHA-512或Whirlpool的系统加密为<strong>98</strong>,其他使用PBKDF2-HMAC的情况为
|
||||||
<strong>485</strong>。对于长度为20个字符及以上的密码,PIM最小值为
|
<strong>485</strong>。对于长度为20个字符及以上的密码,PIM最小值为
|
||||||
<strong>1</strong>。在所有情况下,将PIM留空或将其值设置为0将使VeraCrypt使用如
|
<strong>1</strong>。在所有情况下,将PIM留空或将其值设置为0将使VeraCrypt使用如
|
||||||
<a href="Header%20Key%20Derivation.html">
|
<a href="Header%20Key%20Derivation.html">
|
||||||
头部密钥推导</a>部分所述的默认高迭代次数。</div>
|
头部密钥推导</a>部分所述的默认KDF参数。</div>
|
||||||
<div><br>
|
<div><br>
|
||||||
使用自定义PIM值的动机可能包括:<br>
|
使用自定义PIM值的动机可能包括:<br>
|
||||||
<ul>
|
<ul>
|
||||||
<li>添加一个额外的秘密参数(PIM),使攻击者必须猜测</li><li>通过使用较大的PIM值来提高安全级别,以抵御未来暴力攻击技术的发展。
|
<li>添加一个额外的秘密参数(PIM),使攻击者必须猜测</li><li>通过使用较大的PIM值来提高安全级别,以抵御未来暴力攻击技术的发展。
|
||||||
</li><li>通过使用较小的PIM值(对于不使用SHA - 512或Whirlpool的系统加密小于98,对于其他情况小于485)来加快引导或挂载速度
|
</li><li>通过使用较小的PIM值(对于Argon2id卷小于12,对于不使用SHA-512或Whirlpool的系统加密小于98,对于其他使用PBKDF2-HMAC的情况小于485)来加快引导或挂载速度
|
||||||
</li></ul>
|
</li></ul>
|
||||||
<p>以下屏幕截图展示了使用PIM值为231挂载卷的步骤:</p>
|
<p>以下屏幕截图展示了使用PIM值为231挂载卷的步骤:</p>
|
||||||
<table style="margin-left:auto; margin-right:auto">
|
<table style="margin-left:auto; margin-right:auto">
|
||||||
@@ -119,4 +150,4 @@
|
|||||||
<p> </p>
|
<p> </p>
|
||||||
<p><a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></p>
|
<p><a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></p>
|
||||||
</div>
|
</div>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -50,8 +50,8 @@
|
|||||||
<p>池混合函数的描述:</p>
|
<p>池混合函数的描述:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>设<em>R</em>为随机数池。</li>
|
<li>设<em>R</em>为随机数池。</li>
|
||||||
<li>设<em>H</em>为用户选择的哈希函数(SHA - 512、BLAKE2S - 256或Whirlpool)。</li>
|
<li>设<em>H</em>为当前RNG池混合哈希函数。在独立随机数池和密钥文件生成上下文中,它是用户选择的哈希函数。在卷操作期间,VeraCrypt会根据所选头密钥推导算法确定它:对于PBKDF2-HMAC,它是所选哈希(SHA-512、SHA-256、BLAKE2s-256、Whirlpool或Streebog);对于Argon2id,它是<a href="BLAKE2b-512.html">BLAKE2b-512</a>。</li>
|
||||||
<li><em>l</em> = 哈希函数<em>H</em>输出的字节大小(即,如果<em>H</em>是BLAKE2S - 256,则<em>l</em> = 20;如果<em>H</em>是SHA - 512,则<em>l</em> = 64)</li>
|
<li><em>l</em> = 哈希函数<em>H</em>输出的字节大小(即,如果<em>H</em>是BLAKE2s-256或SHA-256,则<em>l</em> = 32;如果<em>H</em>是SHA-512、Whirlpool、Streebog或BLAKE2b-512,则<em>l</em> = 64)</li>
|
||||||
<li><em>z</em> = 随机数池<em>R</em>的字节大小(320字节)</li>
|
<li><em>z</em> = 随机数池<em>R</em>的字节大小(320字节)</li>
|
||||||
<li><em>q</em> = <em>z</em> / <em>l</em> - 1(例如,如果<em>H</em>是Whirlpool,则<em>q</em> = 4)</li>
|
<li><em>q</em> = <em>z</em> / <em>l</em> - 1(例如,如果<em>H</em>是Whirlpool,则<em>q</em> = 4)</li>
|
||||||
<li><em>R</em>被分割成<em>l</em>字节的块<em>B</em>0...<em>B</em>q。
|
<li><em>R</em>被分割成<em>l</em>字节的块<em>B</em>0...<em>B</em>q。
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
<li>将请求的字节数从池复制到输出缓冲区(复制从池游标的位置开始;当到达池的末尾时,复制从池的开头继续;如果请求的字节数大于池的大小,则不生成值并返回错误)。</li>
|
<li>将请求的字节数从池复制到输出缓冲区(复制从池游标的位置开始;当到达池的末尾时,复制从池的开头继续;如果请求的字节数大于池的大小,则不生成值并返回错误)。</li>
|
||||||
<li>反转池中每个位的状态(即,0变为1,1变为0)。</li>
|
<li>反转池中每个位的状态(即,0变为1,1变为0)。</li>
|
||||||
<li>将从上述某些来源获得的数据按上述方式添加到池中。</li>
|
<li>将从上述某些来源获得的数据按上述方式添加到池中。</li>
|
||||||
<li>使用池混合函数转换池的内容。注意:该函数使用用户选择的加密安全单向哈希函数(有关更多信息,请参阅上面的<em>池混合函数</em>部分)。</li>
|
<li>使用池混合函数转换池的内容。注意:该函数使用与所选KDF/哈希选项关联的加密安全单向哈希函数(有关更多信息,请参阅上面的<em>池混合函数</em>部分)。</li>
|
||||||
<li>将转换后的池内容按以下方式异或到输出缓冲区:
|
<li>将转换后的池内容按以下方式异或到输出缓冲区:
|
||||||
<ol type="a">
|
<ol type="a">
|
||||||
<li>将输出缓冲区写入游标设置为0(缓冲区的第一个字节)。</li>
|
<li>将输出缓冲区写入游标设置为0(缓冲区的第一个字节)。</li>
|
||||||
@@ -98,4 +98,4 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p><a href="Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></p>
|
<p><a href="Keyfiles.html" style="text-align:left; color:#0080c0; text-decoration:none; font-weight:bold">下一部分 >></a></p>
|
||||||
</div><div class="ClearBoth"></div></body></html>
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
|
|||||||
@@ -0,0 +1,82 @@
|
|||||||
|
<!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="pbkdf2.html">PBKDF2</a>
|
||||||
|
</p></div>
|
||||||
|
<div class="wikidoc">
|
||||||
|
<h1>PBKDF2</h1>
|
||||||
|
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
PBKDF2(Password-Based Key Derivation Function 2)是一种广泛使用的 KDF,会重复应用伪随机函数(HMAC)以减缓密码猜测。在 VeraCrypt 中,PBKDF2 可与多种 HMAC 哈希函数配合使用,并用于派生解密卷头所需的密钥。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>VeraCrypt 支持的 PBKDF2-HMAC 变体</h3>
|
||||||
|
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding:0px">
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="SHA-512.html" style="color:#0080c0; text-decoration:none">SHA-512</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="SHA-256.html" style="color:#0080c0; text-decoration:none">SHA-256</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="Whirlpool.html" style="color:#0080c0; text-decoration:none">Whirlpool</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="BLAKE2s-256.html" style="color:#0080c0; text-decoration:none">BLAKE2s-256</a></strong></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 0px 0px; padding:0px"><strong>PBKDF2-HMAC-<a href="Streebog.html" style="color:#0080c0; text-decoration:none">Streebog</a></strong></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>VeraCrypt 中的参数</h3>
|
||||||
|
|
||||||
|
<h4>盐值</h4>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
存储在卷头中的 512 位随机盐值会混入密码,以防止预计算和彩虹表攻击。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4>迭代次数</h4>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
PBKDF2 迭代次数取决于所选 HMAC 哈希、使用场景(例如系统加密或非系统加密)以及 <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html" style="color:#0080c0; text-decoration:none">PIM</a> 值。提高 PIM 会增加迭代次数,从而增加派生密钥所需的时间。精确值和公式请参阅 <a href="Header%20Key%20Derivation.html" style="color:#0080c0; text-decoration:none">头密钥推导、盐值和迭代次数</a>。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h4>输出长度</h4>
|
||||||
|
<div style="text-align:left; margin-top:19px; margin-bottom:19px; padding:0px">
|
||||||
|
派生并使用的卷头密钥材料量取决于所选加密算法或级联。在当前 XTS 卷中,VeraCrypt 同时使用主卷头密钥和辅助卷头密钥;例如,AES-256-XTS 总共使用 512 位(两个 256 位密钥),AES-Twofish-Serpent-XTS 级联总共使用 1536 位(六个 256 位密钥)。
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>优点和注意事项</h3>
|
||||||
|
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding:0px">
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>兼容性广:</strong>PBKDF2 在多种平台和环境中得到广泛支持。</li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><strong>内存需求低:</strong>适合资源受限的系统。</li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 0px 0px; padding:0px"><strong>不是内存困难型:</strong>与 <a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a> 相比,PBKDF2 对使用大规模并行硬件(GPU/ASIC)的攻击抵抗力较弱。如果必须使用 PBKDF2,请考虑提高 PIM。</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>相关主题</h3>
|
||||||
|
<ul style="text-align:left; margin-top:18px; margin-bottom:19px; padding:0px">
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><a href="Key%20Derivation%20Algorithms.html" style="color:#0080c0; text-decoration:none">密钥推导算法(概述)</a></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><a href="Argon2id.html" style="color:#0080c0; text-decoration:none">Argon2id</a></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 6px 0px; padding:0px"><a href="Header%20Key%20Derivation.html" style="color:#0080c0; text-decoration:none">头密钥推导、盐值和迭代次数</a></li>
|
||||||
|
<li style="text-align:left; margin:0px 0px 0px 0px; padding:0px"><a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html" style="color:#0080c0; text-decoration:none">个人迭代乘数(PIM)</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><div class="ClearBoth"></div></body></html>
|
||||||
Reference in New Issue
Block a user