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

115 lines
14 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="Technical%20Details.html">Технические подробности</a>
<img src="arrow_right.gif" alt=">>" style="margin-top: 5px">
<a href="Header%20Key%20Derivation.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">
Ключ заголовка используется для шифрования и дешифрования зашифрованной области заголовка тома
VeraCrypt (в случае
<a href="System%20Encryption.html" style="text-align:left; color:#0080c0; text-decoration:none">
шифрования системы</a> – области ключевых данных), которая содержит мастер-ключ и другую информацию (см. разделы
<a href="Encryption%20Scheme.html" style="text-align:left; color:#0080c0; text-decoration:none">
Схема шифрования</a> и <a href="VeraCrypt%20Volume%20Format%20Specification.html" style="text-align:left; color:#0080c0; text-decoration:none">
Спецификация формата томов VeraCrypt</a>). В томах, созданных с помощью VeraCrypt (и для
<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>). Для шифрования системы VeraCrypt использует PBKDF2-HMAC. Для несистемных томов и файловых контейнеров VeraCrypt поддерживает две функции формирования ключей заголовка: PBKDF2,
определённую в PKCS #5 v2.0; см.
<a href="References.html" style="text-align:left; color:#0080c0; text-decoration:none">
[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]) &ndash;
какая из них будет применяться, выбирается пользователем. Длина сформированного ключа не зависит от
размера вывода лежащей в основе хеш-функции. Например, длина ключа заголовка для шифра AES-256 всегда равна
256 битам, даже если используется HMAC-SHA-512 (в режиме XTS применяется дополнительный 256-битовый
вторичный ключ заголовка; следовательно, для AES-256 в целом применяются два 256-битовых ключа). Более
подробную информацию см. в [7]. Для формирования ключа заголовка выполняется большое количество итераций,
что увеличивает время, необходимое для полного поиска паролей (то есть атакой методом перебора)&nbsp;[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 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>
<p>Начиная с версии 1.12, поле <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
PIM</a> (<a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">Персональный множитель итераций</a>)
даёт пользователям больший контроль над вычислительными параметрами, используемыми функцией формирования ключа.</p>
<h4>Параметры PBKDF2-HMAC</h4>
<p>Если <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
PIM</a> не указан или равен нулю, VeraCrypt использует следующие стандартные значения для PBKDF2-HMAC:</p>
<ul>
<li>Для шифрования системы (шифрование загрузки), если используется SHA-256, BLAKE2s-256 или Streebog, <i>число итераций</i> = <strong>200 000</strong>.</li>
<li>Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файловых контейнеров с PBKDF2-HMAC <i>число итераций</i> = <strong>500 000</strong>.
</li></ul>
</p>
<p>Если <a href="Personal%20Iterations%20Multiplier%20%28PIM%29.html">
PIM</a> указан, то количество итераций функции формирования ключа PBKDF2 вычисляется следующим образом:</p>
<ul>
<li>Для шифрования системы, если не используется SHA-512 или Whirlpool, <i>число итераций</i> = <strong>PIM &times; 2048</strong>.</li>
<li>Для шифрования системы, если используется SHA-512 или Whirlpool, а также для несистемных разделов и файлов-контейнеров с PBKDF2-HMAC <i>число итераций</i> = <strong>15 000 &#43; (PIM &times; 1000)</strong>.
</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 style="text-align:left; margin-top:19px; margin-bottom:19px; padding-top:0px; padding-bottom:0px">
Ключи заголовка, используемые шифрами при каскадном (последовательном) шифровании, не зависят друг от друга,
хотя они и сформированы из одного пароля (к которому могут быть применены ключевые файлы). Например, для
каскада AES-Twofish-Serpent функция формирования ключа заголовка получает 768-битный ключ шифрования из
заданного пароля (и, для режима XTS, вдобавок 768-битовый <em style="text-align:left">вторичный</em> ключ
заголовка из заданного пароля). Сгенерированный 768-битовый ключ заголовка затем разделяется на три 256-битовых
ключа (для режима XTS <em style="text-align:left">вторичный</em> ключ разделяется тоже на три 256-битовых ключа,
поэтому в действительности каскад в целом использует шесть 256-битовых ключей), из которых первый ключ
используется шифром Serpent, второй – шифром Twofish, а третьй – шифром AES (кроме того, для режима XTS
первый вторичный ключ используется шифром Serpent, второй вторичный ключ – шифром Twofish, и третий вторичный
ключ – шифром AES). Отсюда следует, что даже если у неприятеля окажется один из ключей, он не сможет им
воспользоваться для формирования остальных, поскольку не существует реально осуществимого способа определить
пароль по полученному из него в результате формирования ключу (за исключением атаки полным перебором при
слабом пароле).</div>
<div 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">Следующий раздел &gt;&gt;</a></div>
</div><div class="ClearBoth"></div></body></html>