1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 02:58:02 -06:00

Reorder SM4-based cascade ciphers: apply SM4 as the final stage following external review.

The cascade order has been updated so that SM4 is applied after the other cipher(s) (e.g., Serpent). This change reflects standard cryptanalytic guidance, which shows that the overall strength of a cascade is limited by the first encryption stage. Given that SM4 uses a 128-bit key, its post-quantum brute-force resistance is lower than ciphers with a 256-bit key (such as Serpent). By placing SM4 last, we ensure that any potential weakness in SM4 cannot reduce the security margin provided by the stronger cipher.
This commit is contained in:
Mounir IDRASSI
2025-05-16 15:37:32 +09:00
parent b0311f7a86
commit 982fffe4db
13 changed files with 108 additions and 108 deletions

View File

@@ -87,17 +87,17 @@
<em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Serpent (256-bit key) in XTS mode and then with Twofish (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note <em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Serpent (256-bit key) in XTS mode and then with Twofish (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note
that header keys are independent too, even though they are derived from a single password &ndash; see the section that header keys are independent too, even though they are derived from a single password &ndash; see the section
<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.</p> <a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.</p>
<h2>Kuznyechik-SM4</h2> <h2>SM4-Kuznyechik</h2>
<p> <p>
Two ciphers in a cascade [15, 16] operating in XTS mode (see the section Two ciphers in a cascade [15, 16] operating in XTS mode (see the section
<a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with SM4 (128-bit key) in XTS mode and then with Kuznyechik (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section <a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Kuznyechik (256-bit key) in XTS mode and then with SM4 (128-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section
<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers. <a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.
</p> </p>
<h2>Serpent-SM4</h2> <h2>SM4-Serpent</h2>
<p> <p>
Two ciphers in a cascade [15, 16] operating in XTS mode (see the section Two ciphers in a cascade [15, 16] operating in XTS mode (see the section
<a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with SM4 (128-bit key) in XTS mode and then with Serpent (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section <a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Serpent (256-bit key) in XTS mode and then with SM4 (128-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section
<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers. <a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.
</p> </p>
@@ -108,10 +108,10 @@ Two ciphers in a cascade [15, 16] operating in XTS mode (see the section
<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers. <a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.
</p> </p>
<h2>Twofish-Serpent-SM4</h2> <h2>SM4-Twofish-Serpent</h2>
<p> <p>
Three ciphers in a cascade [15, 16] operating in XTS mode (see the section Three ciphers in a cascade [15, 16] operating in XTS mode (see the section
<a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with SM4 (128-bit key) in XTS mode, then with Serpent (256-bit key) in XTS mode, and finally with Twofish (256-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section <a href="Modes%20of%20Operation.html"><em>Modes of Operation</em></a>). Each 128-bit block is first encrypted with Serpent (256-bit key) in XTS mode, then with Twofish (256-bit key) in XTS mode, and finally with SM4 (128-bit key) in XTS mode. Each of the cascaded ciphers uses its own key. All encryption keys are mutually independent (note that header keys are independent too, even though they are derived from a single password &ndash; see the section
<a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers. <a href="Header Key Derivation.html"><em>Header Key Derivation, Salt, and Iteration Count</em></a>). See above for information on the individual cascaded ciphers.
</p> </p>

View File

@@ -263,11 +263,11 @@ XTS</td>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Kuznyechik-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Kuznyechik</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 128</td> 128; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
@@ -276,11 +276,11 @@ XTS</td>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Serpent-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Serpent</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 128</td> 128; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
@@ -302,11 +302,11 @@ XTS</td>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Twofish-Serpent-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Twofish-Serpent</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 256; 128</td> 128; 256; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">

View File

@@ -87,17 +87,17 @@
<em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом Serpent (с ключом размером 256 бит) в режиме XTS, а затем алгоритмом Twofish (с ключом размером 256 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга <em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом Serpent (с ключом размером 256 бит) в режиме XTS, а затем алгоритмом Twofish (с ключом размером 256 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга
(обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел (обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел
<a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше.</p> <a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше.</p>
<h2>Kuznyechik-SM4</h2> <h2>SM4-Kuznyechik</h2>
<p> <p>
Последовательно выполняемые (каскадом) [15, 16] два шифра, работающие в режиме XTS (см. раздел Последовательно выполняемые (каскадом) [15, 16] два шифра, работающие в режиме XTS (см. раздел
<a href="Modes%20of%20Operation.html"><em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом SM4 (с ключом размером 128 бит) в режиме XTS, а затем алгоритмом Kuznyechik (с ключом размером 256 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга (обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел <a href="Modes%20of%20Operation.html"><em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом Kuznyechik (с ключом размером 256 бит) в режиме XTS, а затем алгоритмом SM4 (с ключом размером 128 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга (обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел
<a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше. <a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше.
</p> </p>
<h2>Serpent-SM4</h2> <h2>SM4-Serpent</h2>
<p> <p>
Последовательно выполняемые (каскадом) [15, 16] два шифра, работающие в режиме XTS (см. раздел Последовательно выполняемые (каскадом) [15, 16] два шифра, работающие в режиме XTS (см. раздел
<a href="Modes%20of%20Operation.html"><em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом SM4 (с ключом размером 128 бит) в режиме XTS, а затем алгоритмом Serpent (с ключом размером 256 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга (обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел <a href="Modes%20of%20Operation.html"><em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом Serpent (с ключом размером 256 бит) в режиме XTS, а затем алгоритмом SM4 (с ключом размером 128 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга (обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел
<a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше. <a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше.
</p> </p>
@@ -108,10 +108,10 @@
<a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше. <a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше.
</p> </p>
<h2>Twofish-Serpent-SM4</h2> <h2>SM4-Twofish-Serpent</h2>
<p> <p>
Последовательно выполняемые (каскадом) [15, 16] три шифра, работающие в режиме XTS (см. раздел Последовательно выполняемые (каскадом) [15, 16] три шифра, работающие в режиме XTS (см. раздел
<a href="Modes%20of%20Operation.html"><em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом SM4 (с ключом размером 128 бит) в режиме XTS, затем алгоритмом Serpent (с ключом размером 256 бит) в режиме XTS, и, наконец, алгоритмом Twofish (с ключом размером 256 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга (обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел <a href="Modes%20of%20Operation.html"><em>Режимы работы</em></a>). Каждый блок размером 128 бит сначала шифруется алгоритмом Serpent (с ключом размером 256 бит) в режиме XTS, затем алгоритмом Twofish (с ключом размером 256 бит) в режиме XTS, и, наконец, алгоритмом SM4 (с ключом размером 128 бит) в режиме XTS. Каждый из этих каскадных шифров использует свой собственный ключ. Все ключи шифрования не зависят друг от друга (обратите внимание, что ключи заголовка тоже независимы, хотя и получены в результате формирования одного пароля &ndash; см. раздел
<a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше. <a href="Header Key Derivation.html"><em>Формирование ключа заголовка, соль и количество итераций</em></a>). Информация о каждом отдельном шифре приведена выше.
</p> </p>

View File

@@ -264,11 +264,11 @@ XTS</td>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Kuznyechik-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Kuznyechik</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 128</td> 128; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
@@ -277,11 +277,11 @@ XTS</td>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Serpent-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Serpent</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 128</td> 128; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
@@ -303,11 +303,11 @@ XTS</td>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Twofish-Serpent-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Twofish-Serpent</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 256; 128</td> 128; 256; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">

View File

@@ -57,14 +57,14 @@
<p>级联中的三个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用AES256位密钥以XTS模式进行加密然后使用Twofish256位密钥以XTS模式进行加密最后使用Serpent256位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p> <p>级联中的三个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用AES256位密钥以XTS模式进行加密然后使用Twofish256位密钥以XTS模式进行加密最后使用Serpent256位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p>
<h2>Twofish - Serpent</h2> <h2>Twofish - Serpent</h2>
<p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用Serpent256位密钥以XTS模式进行加密然后使用Twofish256位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p> <p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用Serpent256位密钥以XTS模式进行加密然后使用Twofish256位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p>
<h2>Kuznyechik - SM4</h2> <h2>SM4 - Kuznyechik</h2>
<p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用SM4128位密钥以XTS模式进行加密然后使用Kuznyechik256位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p> <p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用Kuznyechik256位密钥以XTS模式进行加密然后使用SM4128位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p>
<h2>Serpent - SM4</h2> <h2>SM4 - Serpent</h2>
<p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用SM4128位密钥以XTS模式进行加密然后使用Serpent256位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p> <p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用Serpent256位密钥以XTS模式进行加密然后使用SM4128位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p>
<h2>SM4 - Twofish</h2> <h2>SM4 - Twofish</h2>
<p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用Twofish256位密钥以XTS模式进行加密然后使用SM4128位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p> <p>级联中的两个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用Twofish256位密钥以XTS模式进行加密然后使用SM4128位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p>
<h2>Twofish - Serpent - SM4</h2> <h2>SM4 - Twofish - Serpent</h2>
<p>级联中的三个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用SM4128位密钥以XTS模式进行加密然后使用Serpent256位密钥以XTS模式进行加密最后使用Twofish256位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p> <p>级联中的三个密码算法 [15, 16] 以XTS模式运行请参阅 <a href="Modes%20of%20Operation.html"><em>操作模式</em></a> 部分。每个128位块首先使用Serpent256位密钥以XTS模式进行加密然后使用Twofish256位密钥以XTS模式进行加密最后使用SM4128位密钥以XTS模式进行加密。级联中的每个密码算法使用其自己的密钥。所有加密密钥相互独立请注意即使头密钥是从单个密码派生而来它们也是独立的 — 请参阅 <a href="Header Key Derivation.html"><em>头密钥派生、盐值和迭代次数</em></a>)。有关级联中各个密码算法的信息,请参阅上文。</p>
</div> </div>
</body></html> </body></html>

View File

@@ -263,11 +263,11 @@ GOST R 34.12-2015</font></font></p>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Kuznyechik-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Kuznyechik</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 128</td> 128; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
@@ -276,11 +276,11 @@ GOST R 34.12-2015</font></font></p>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Serpent-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Serpent</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 128</td> 128; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
@@ -302,11 +302,11 @@ GOST R 34.12-2015</font></font></p>
<tr style="text-align:left"> <tr style="text-align:left">
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
<a href="Cascades.html" style="color:#0080c0; text-decoration:none">Twofish-Serpent-SM4</a></td> <a href="Cascades.html" style="color:#0080c0; text-decoration:none">SM4-Twofish-Serpent</a></td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
&nbsp;</td> &nbsp;</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
256; 256; 128</td> 128; 256; 256</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">
128</td> 128</td>
<td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white"> <td style="color:#000000; font-size:11px; line-height:13px; font-family:Verdana,Arial,Helvetica,sans-serif; text-align:center; vertical-align:middle; border-width:0px 1px 0px 0px; border-style:none solid solid none; padding:5px; border-color:white #000000 #ffffff white">

View File

@@ -98,13 +98,13 @@ static EncryptionAlgorithm EncryptionAlgorithms[] =
{ { SERPENT, TWOFISH, 0 }, { XTS, 0 }, 1, 1 }, { { SERPENT, TWOFISH, 0 }, { XTS, 0 }, 1, 1 },
{ { KUZNYECHIK, CAMELLIA, 0 }, { XTS, 0 }, 0, 1 }, { { KUZNYECHIK, CAMELLIA, 0 }, { XTS, 0 }, 0, 1 },
{ { TWOFISH, KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 }, { { TWOFISH, KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 },
{ { SM4, KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 }, { { KUZNYECHIK, SM4, 0 }, { XTS, 0 }, 0, 1 },
{ { SM4, SERPENT, 0 }, { XTS, 0 }, 0, 1 }, { { SERPENT, SM4, 0 }, { XTS, 0 }, 0, 1 },
{ { TWOFISH, SM4, 0 }, { XTS, 0 }, 0, 1 }, { { TWOFISH, SM4, 0 }, { XTS, 0 }, 0, 1 },
{ { SERPENT, CAMELLIA, 0 }, { XTS, 0 }, 0, 1 }, { { SERPENT, CAMELLIA, 0 }, { XTS, 0 }, 0, 1 },
{ { AES, KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 }, { { AES, KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 },
{ { CAMELLIA, SERPENT, KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 }, { { CAMELLIA, SERPENT, KUZNYECHIK, 0 }, { XTS, 0 }, 0, 1 },
{ { SM4, SERPENT, TWOFISH, 0 }, { XTS, 0 }, 0, 1 }, { { SERPENT, TWOFISH, SM4, 0 }, { XTS, 0 }, 0, 1 },
#endif #endif
{ { 0, 0 }, { 0, 0}, 0, 0 } // Must be all-zero { { 0, 0 }, { 0, 0}, 0, 0 } // Must be all-zero

View File

@@ -1202,53 +1202,53 @@ BOOL TestSectorBufEncryption (PCRYPTO_INFO ci)
break; break;
} }
} }
else if (wcscmp (name, L"Kuznyechik-SM4") == 0) else if (wcscmp (name, L"SM4-Kuznyechik") == 0)
{ {
switch (testCase) switch (testCase)
{ {
case 0: case 0:
if (crc != 0xb126b7f8) if (crc != 0xa8179f71)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 1: case 1:
if (crc != 0xa117004a) if (crc != 0xaa372193)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 2: case 2:
if (crc != 0xc561be46) if (crc != 0x49b78057)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 3: case 3:
if (crc != 0x47106ce3) if (crc != 0x80718fd2)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
} }
} }
else if (wcscmp (name, L"Serpent-SM4") == 0) else if (wcscmp (name, L"SM4-Serpent") == 0)
{ {
switch (testCase) switch (testCase)
{ {
case 0: case 0:
if (crc != 0x40a9eaa5) if (crc != 0x77cd332a)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 1: case 1:
if (crc != 0xce6873f1) if (crc != 0x3a2be34b)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 2: case 2:
if (crc != 0x92cafcad) if (crc != 0xfc1a6d4c)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 3: case 3:
if (crc != 0x7e1463ca) if (crc != 0xf9b54baf)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
@@ -1306,27 +1306,27 @@ BOOL TestSectorBufEncryption (PCRYPTO_INFO ci)
break; break;
} }
} }
else if (wcscmp (name, L"Twofish-Serpent-SM4") == 0) else if (wcscmp (name, L"SM4-Twofish-Serpent") == 0)
{ {
switch (testCase) switch (testCase)
{ {
case 0: case 0:
if (crc != 0x881b6e3d) if (crc != 0x3ef6c86f)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 1: case 1:
if (crc != 0x37ed1418) if (crc != 0xe5202d6c)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 2: case 2:
if (crc != 0x8e563eef) if (crc != 0xa3acb43b)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
case 3: case 3:
if (crc != 0xdcbc41ac) if (crc != 0xe9d64477)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
break; break;
@@ -1469,15 +1469,15 @@ BOOL TestSectorBufEncryption (PCRYPTO_INFO ci)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
} }
else if (wcscmp (name, L"Kuznyechik-SM4") == 0) else if (wcscmp (name, L"SM4-Kuznyechik") == 0)
{ {
if (crc != 0x8190551b) if (crc != 0x23039a99)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
} }
else if (wcscmp (name, L"Serpent-SM4") == 0) else if (wcscmp (name, L"SM4-Serpent") == 0)
{ {
if (crc != 0x31408c47) if (crc != 0xa7c3155b)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
} }
@@ -1493,9 +1493,9 @@ BOOL TestSectorBufEncryption (PCRYPTO_INFO ci)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
} }
else if (wcscmp (name, L"Twofish-Serpent-SM4") == 0) else if (wcscmp (name, L"SM4-Twofish-Serpent") == 0)
{ {
if (crc != 0x033093e5) if (crc != 0x9723753f)
return FALSE; return FALSE;
nTestsPerformed++; nTestsPerformed++;
} }

View File

@@ -316,10 +316,10 @@ namespace VeraCrypt
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (CamelliaKuznyechik)) || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (CamelliaKuznyechik))
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (KuznyechikTwofish)) || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (KuznyechikTwofish))
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (KuznyechikAES)) || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (KuznyechikAES))
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (KuznyechikSM4)) || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (SM4Kuznyechik))
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (SerpentSM4)) || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (SM4Serpent))
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (SM4Twofish)) || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (SM4Twofish))
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (TwofishSerpentSM4)) || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (SM4TwofishSerpent))
|| (typeid (*volume->GetEncryptionAlgorithm()) == typeid (KuznyechikSerpentCamellia)); || (typeid (*volume->GetEncryptionAlgorithm()) == typeid (KuznyechikSerpentCamellia));
if (options.NoKernelCrypto if (options.NoKernelCrypto

View File

@@ -81,10 +81,10 @@ namespace VeraCrypt
l.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentAES ())); l.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentAES ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentTwofishAES ())); l.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentTwofishAES ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpent ())); l.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpent ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new KuznyechikSM4 ())); l.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Kuznyechik ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentSM4 ())); l.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Serpent ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Twofish ())); l.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Twofish ()));
l.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpentSM4 ())); l.push_back (shared_ptr <EncryptionAlgorithm> (new SM4TwofishSerpent ()));
#endif #endif
return l; return l;
} }
@@ -394,20 +394,20 @@ namespace VeraCrypt
SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ())); SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
} }
// Kuznyechik-SM4 // SM4-Kuznyechik
KuznyechikSM4::KuznyechikSM4 () SM4Kuznyechik::SM4Kuznyechik ()
{ {
Ciphers.push_back (shared_ptr <Cipher> (new CipherSM4 ()));
Ciphers.push_back (shared_ptr <Cipher> (new CipherKuznyechik ())); Ciphers.push_back (shared_ptr <Cipher> (new CipherKuznyechik ()));
Ciphers.push_back (shared_ptr <Cipher> (new CipherSM4 ()));
SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ())); SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
} }
// Serpent-SM4 // SM4-Serpent
SerpentSM4::SerpentSM4 () SM4Serpent::SM4Serpent ()
{ {
Ciphers.push_back (shared_ptr <Cipher> (new CipherSM4 ()));
Ciphers.push_back (shared_ptr <Cipher> (new CipherSerpent ())); Ciphers.push_back (shared_ptr <Cipher> (new CipherSerpent ()));
Ciphers.push_back (shared_ptr <Cipher> (new CipherSM4 ()));
SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ())); SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
} }
@@ -421,12 +421,12 @@ namespace VeraCrypt
SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ())); SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
} }
// Twofish-Serpent-SM4 // SM4-Twofish-Serpent
TwofishSerpentSM4::TwofishSerpentSM4 () SM4TwofishSerpent::SM4TwofishSerpent ()
{ {
Ciphers.push_back (shared_ptr <Cipher> (new CipherSM4 ()));
Ciphers.push_back (shared_ptr <Cipher> (new CipherSerpent ())); Ciphers.push_back (shared_ptr <Cipher> (new CipherSerpent ()));
Ciphers.push_back (shared_ptr <Cipher> (new CipherTwofish ())); Ciphers.push_back (shared_ptr <Cipher> (new CipherTwofish ()));
Ciphers.push_back (shared_ptr <Cipher> (new CipherSM4 ()));
SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ())); SupportedModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
} }

View File

@@ -96,10 +96,10 @@ namespace VeraCrypt
TC_ENCRYPTION_ALGORITHM (CamelliaKuznyechik); TC_ENCRYPTION_ALGORITHM (CamelliaKuznyechik);
TC_ENCRYPTION_ALGORITHM (CamelliaSerpent); TC_ENCRYPTION_ALGORITHM (CamelliaSerpent);
TC_ENCRYPTION_ALGORITHM (SM4); TC_ENCRYPTION_ALGORITHM (SM4);
TC_ENCRYPTION_ALGORITHM (KuznyechikSM4); TC_ENCRYPTION_ALGORITHM (SM4Kuznyechik);
TC_ENCRYPTION_ALGORITHM (SerpentSM4); TC_ENCRYPTION_ALGORITHM (SM4Serpent);
TC_ENCRYPTION_ALGORITHM (SM4Twofish); TC_ENCRYPTION_ALGORITHM (SM4Twofish);
TC_ENCRYPTION_ALGORITHM (TwofishSerpentSM4); TC_ENCRYPTION_ALGORITHM (SM4TwofishSerpent);
#undef TC_ENCRYPTION_ALGORITHM #undef TC_ENCRYPTION_ALGORITHM

View File

@@ -1076,53 +1076,53 @@ namespace VeraCrypt
break; break;
} }
} }
else if (typeid (ea) == typeid (KuznyechikSM4)) else if (typeid (ea) == typeid (SM4Kuznyechik))
{ {
switch (testCase) switch (testCase)
{ {
case 0: case 0:
if (crc != 0xb126b7f8) if (crc != 0xa8179f71)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 1: case 1:
if (crc != 0xa117004a) if (crc != 0xaa372193)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 2: case 2:
if (crc != 0xc561be46) if (crc != 0x49b78057)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 3: case 3:
if (crc != 0x47106ce3) if (crc != 0x80718fd2)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
} }
} }
else if (typeid (ea) == typeid (SerpentSM4)) else if (typeid (ea) == typeid (SM4Serpent))
{ {
switch (testCase) switch (testCase)
{ {
case 0: case 0:
if (crc != 0x40a9eaa5) if (crc != 0x77cd332a)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 1: case 1:
if (crc != 0xce6873f1) if (crc != 0x3a2be34b)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 2: case 2:
if (crc != 0x92cafcad) if (crc != 0xfc1a6d4c)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 3: case 3:
if (crc != 0x7e1463ca) if (crc != 0xf9b54baf)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
@@ -1154,27 +1154,27 @@ namespace VeraCrypt
break; break;
} }
} }
else if (typeid (ea) == typeid (TwofishSerpentSM4)) else if (typeid (ea) == typeid (SM4TwofishSerpent))
{ {
switch (testCase) switch (testCase)
{ {
case 0: case 0:
if (crc != 0x881b6e3d) if (crc != 0x3ef6c86f)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 1: case 1:
if (crc != 0x37ed1418) if (crc != 0xe5202d6c)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 2: case 2:
if (crc != 0x8e563eef) if (crc != 0xa3acb43b)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
case 3: case 3:
if (crc != 0xdcbc41ac) if (crc != 0xe9d64477)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
break; break;
@@ -1333,15 +1333,15 @@ namespace VeraCrypt
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
} }
else if (typeid (ea) == typeid (KuznyechikSM4)) else if (typeid (ea) == typeid (SM4Kuznyechik))
{ {
if (crc != 0x8190551b) if (crc != 0x23039a99)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
} }
else if (typeid (ea) == typeid (SerpentSM4)) else if (typeid (ea) == typeid (SM4Serpent))
{ {
if (crc != 0x31408c47) if (crc != 0xa7c3155b)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
} }
@@ -1351,9 +1351,9 @@ namespace VeraCrypt
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
} }
else if (typeid (ea) == typeid (TwofishSerpentSM4)) else if (typeid (ea) == typeid (SM4TwofishSerpent))
{ {
if (crc != 0x033093e5) if (crc != 0x9723753f)
throw TestFailed (SRC_POS); throw TestFailed (SRC_POS);
nTestsPerformed++; nTestsPerformed++;
} }

View File

@@ -120,10 +120,10 @@ namespace VeraCrypt
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentAES ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentAES ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentTwofishAES ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentTwofishAES ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpent ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpent ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new KuznyechikSM4 ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Kuznyechik ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentSM4 ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Serpent ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Twofish ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Twofish ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpentSM4 ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4TwofishSerpent ()));
SupportedEncryptionModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ())); SupportedEncryptionModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
#else #else
SupportedEncryptionModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeWolfCryptXTS ())); SupportedEncryptionModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeWolfCryptXTS ()));
@@ -174,10 +174,10 @@ namespace VeraCrypt
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentAES ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentAES ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentTwofishAES ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentTwofishAES ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpent ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpent ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new KuznyechikSM4 ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Kuznyechik ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SerpentSM4 ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Serpent ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Twofish ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4Twofish ()));
SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new TwofishSerpentSM4 ())); SupportedEncryptionAlgorithms.push_back (shared_ptr <EncryptionAlgorithm> (new SM4TwofishSerpent ()));
SupportedEncryptionModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ())); SupportedEncryptionModes.push_back (shared_ptr <EncryptionMode> (new EncryptionModeXTS ()));
#else #else