1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2026-06-15 09:06:08 -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:
Mounir IDRASSI
2026-06-14 11:24:11 +09:00
parent c8a2b89044
commit a751e75588
46 changed files with 1088 additions and 143 deletions
@@ -37,27 +37,57 @@
<h1>PIM (Персональный множитель итераций)</h1>
<div>
<p>PIM расшифровывается как &quot;Персональный множитель итераций&quot;. Это параметр впервые появился в VeraCrypt 1.12,
его значение определяет количество итераций, используемых функцией формирования ключа заголовка. Это значение можно
указать в диалоговом окне пароля или в командной строке.</p>
<p>Если значение PIM указано, количество итераций вычисляется следующим образом:</p>
его значение управляет вычислительными параметрами функции формирования ключа заголовка. Это значение можно указать
в диалоговом окне пароля или в командной строке.</p>
<p>Точное значение PIM зависит от используемой функции формирования ключа (KDF):</p>
<h3>Формирование ключа PBKDF2-HMAC</h3>
<p>При использовании PBKDF2-HMAC значение PIM управляет количеством итераций следующим образом:</p>
<ul>
<li>Для шифрования системного раздела без использования SHA-512 или Whirlpool <i>количество итераций</i> = <strong>PIM &times; 2048</strong> </li>
<li>Для шифрования системного раздела с использованием SHA-512 или Whirlpool <i>количество итераций</i> = <strong>15 000 &#43; (PIM &times; 1000)</strong></li>
<li>Для шифрования несистемных разделов и файловых контейнеров <i>количество итераций</i> = <strong>15 000 &#43; (PIM &times; 1000)</strong></li>
</ul>
<p>Если значение PIM не указано, будет использоваться количество итераций по умолчанию, применяемое в версиях до 1.12
(см. <a href="Header%20Key%20Derivation.html">Формирование ключа заголовка</a>).
Это можно резюмировать следующим образом:<br/>
<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>Для шифрования несистемных разделов и файловых контейнеров все алгоритмы формирования ключа (деривации) будут использовать <strong>500 000</strong> итераций, что эквивалентно значению PIM <strong>485</strong>.</li>
</ul>
<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/>
Затраты памяти увеличиваются на 32 MiB при каждом увеличении PIM, начиная с 64 MiB, и ограничиваются 1024 MiB, когда PIM достигает 31 или более.
</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>
<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 использовал
фиксированное количество итераций.<br>
Благодаря реализации управления PIM у VeraCrypt появилось двумерное пространство безопасности для томов, основанное
на паре (Пароль, PIM). Это обеспечивает большую гибкость при настройке желаемого уровня безопасности, одновременно
Благодаря реализации управления PIM у VeraCrypt появилось многомерное пространство безопасности для томов, основанное
на сочетании (Пароль, PIM, функция формирования ключа). Это обеспечивает большую гибкость при настройке желаемого уровня безопасности, одновременно
контролируя производительность операции монтирования/загрузки.</p>
<h3>Использование PIM</h3>
Указывать PIM не обязательно.</div>
@@ -69,7 +99,7 @@
<div>PIM обрабатывается как секретное значение, которое пользователь должен вводить каждый раз вместе с паролем.
Если указано неверное значение PIM, операция монтирования/загрузки завершится ошибкой.</div>
<div>&nbsp;</div>
<div>Чем больше PIM, тем выше безопасность, так как увеличивается число итераций, но тем медленнее
<div>Чем больше PIM, тем выше безопасность благодаря увеличению параметров затрат KDF, но тем медленнее
монтирование/загрузка.</div>
<div>Чем меньше PIM, тем быстрее монтирование/загрузка, но возможно ухудшение безопасности, если используется
слабый пароль.</div>
@@ -79,11 +109,11 @@
того, чтобы убедиться, что для коротких паролей уровень безопасности по крайней мере равен уровню по умолчанию,
когда PIM пуст.</div>
<div>&nbsp;</div>
<div>Минимальное значение PIM для коротких паролей равно <b>98</b> для шифрования системы без использования
SHA-512 или Whirlpool, и <b>485</b> для других случаев. Для пароля, состоящего из 20 и более символов,
<div>Минимальное значение PIM для коротких паролей равно <b>12</b> для томов с Argon2id, <b>98</b> для шифрования системы без использования
SHA-512 или Whirlpool, и <b>485</b> для PBKDF2-HMAC в остальных случаях. Для пароля, состоящего из 20 и более символов,
минимальное значение PIM равно <b>1</b>.
Во всех случаях, если оставить PIM пустым или установить его значение равным 0, VeraCrypt будет использовать
большое количество итераций по умолчанию, как это объяснено в разделе
параметры KDF по умолчанию, как это объяснено в разделе
<a href="Header%20Key%20Derivation.html">
Формирование ключа заголовка</a>.</div>
<div><br>
@@ -92,8 +122,8 @@ SHA-512 или Whirlpool, и <b>485</b> для других случаев. Дл
<li>добавление дополнительного секретного параметра (PIM), который злоумышленнику придётся угадывать;</li>
<li>повышение уровня безопасности при использовании больших значений PIM, чтобы воспрепятствовать дальнейшему
развитию атак методом перебора;</li>
<li>ускорение загрузки или монтирования за счет использования небольшого значения PIM (менее 98 для
шифрования системы без использования SHA-512 или Whirlpool, и менее 485 для других случаев)
<li>ускорение загрузки или монтирования за счет использования небольшого значения PIM (менее 12 для томов с Argon2id, менее 98 для
шифрования системы без использования SHA-512 или Whirlpool, и менее 485 для PBKDF2-HMAC в остальных случаях)
</li></ul>
<p>На приведённых ниже снимках экрана показан шаг монтирования тома с использованием PIM, равного 231:</p>
<table style="margin-left:auto; margin-right:auto">