web-dev-qa-db-ja.com

LUKSモードでのdm-crypt / cryptsetupのデフォルトの暗号化キーサイズは何ですか?

cryptsetup 2.1.0を使用していますが、デフォルトの暗号化オプションは(cryptsetup --helpによって報告されています):

Default compiled-in device cipher parameters:
    LUKS: aes-xts-plain64, Key: 256 bits, LUKS header hashing: sha256, RNG: /dev/urandom
    LUKS: Default keysize with XTS mode (two internal keys) will be doubled.

ArchLinux dm-crypt wiki も読んでいます。これはLUKSの状態です。

デフォルトでは、256ビットのキーサイズが使用されます。ただし、XTSは提供されたキーを半分に分割するため、AES-128の代わりにAES-256を使用するには、XTSキーサイズを512に設定する必要があることに注意してください。

キーサイズが2倍/半分になると混乱します。私は次のことを理解していません:

  1. デフォルトは、コマンドラインで--key-size 256を発行するのと同じであり、プログラムはそれを2倍の512にして、AES-256を効果的に取得します。これは、マンページが「2倍になる」と言っているようです
  2. デフォルトは、コマンドラインで--key-size 512を発行するのと同じであり、プログラムはそれを半分にして、AES-256を効果的に実行します。これはArchLinuxページが言っているようです。

(1)と(2)のどちらですか?言い換えると、コマンドラインで明示的に指定した場合、どのキーサイズがデフォルト(256または512?)と同等であり、どの有効なAES強度が得られるか(AES-128またはAES-512)を知る必要があります。 ?)。

1
haelix

どちらでもない。デフォルトでは、--key-size 256を発行するのと同じです。これは、cryptsetup自体によって処理されるキーデータを参照するためですが、XTS-AESには2つの独立したAESキーが必要です。 )(1つはデータ用、もう1つは「微調整」(セクター番号)用)、cryptsetupが提供する256ビットキーを2つの128ビットAESキーに分割します。

ただし、両方のキーが各データブロックの暗号化に関与しているため、これは通常のAES-128よりもいくらか強力です。

同様に、--key-size 512を指定すると、512ビットキーがcryptsetupを介してロードされますが、XTS-AESはそれを2つの256ビットキーに分割します。 (「ビルディングブロック」AES暗号には128、192、または256ビットのキーバリアントのみがあり、XTS暗号モードではこれらの「ビルディングブロック」のうち2つを同時に使用します。AES-512はありません。)

XTS-AESが内部でどのように機能するかについての詳細は、次の場所にあります。

2
user1686