質問: dm-crypt / luksで使用できる暗号と暗号モードを決定するにはどうすればよいですか? ubuntuベースのシステムを使用していますが、使用できる暗号と暗号モードを判別するのが困難です。cryptsetup manページには次のように書かれています:「使用可能なオプションのリストについては、/ proc/cryptoを参照してください。追加のオプションを取得するには、追加のカーネル暗号化モジュールをロードする必要がある場合があります。」私の/ proc/cryptoにはほとんどありません。ロードできる追加のカーネル暗号化モジュールを見つけるにはどうすればよいですか?
回答: 読む必要のあるドキュメントやマニュアルページは多数ありますが、特に興味があるのは luks on-disk format specification (pdf)です。付録b(当然のことながら、終わりに近い)は、 暗号およびハッシュ仕様レジストリ cipher-nameおよびcipher-mode文字列が解釈されない場合でもluks操作によって、異なるluksベースの実装間で互換性を実現するには、すべての実装で同じ意味を持つ必要があります。 luksは、基礎となる暗号システムが暗号名と暗号モード文字列を利用できることを確認する必要があります。これらの文字列は常に暗号システムにネイティブであるとは限らないため、luksはそれらを適切なものにマップする必要がある場合があります。 有効な暗号名を表1に示します。 有効な暗号モードを表2に示します。契約により、ivと微調整を使用する暗号モードは、すべてゼロのiv/tweakから開始する必要があります。これは、特にキーマテリアルを処理するときに、encrypt/decryptプリミティブへのすべての呼び出しに適用されます。さらに、これらのiv/tweaks暗号モードは通常、セクター境界にtweaks/ivを再シードすることにより、暗号ストリームを独立したブロックにカットします。最初の暗号化されたブロック/復号化されたブロックのすべてゼロのiv/tweak要件は、最初のブロックがセクター0にあるように定義されているという要件と同等です。 表3は、hash-specフィールドの有効なハッシュ仕様を示しています。準拠した実装は、すべての暗号、暗号モード、またはハッシュ仕様をサポートする必要はありません。 表1:有効な暗号名 aes-advanced encryption standard-fips pub 197 twofish-twofish:128ビットブロック暗号-http://www.schneier.com/paper-twofish-paper.html(下記参照) 蛇-http://www.cl.cam.ac.uk/~rja14/serpent.html cast5-rfc 2144 cast6-rfc 2612 表2:有効な暗号モード ecb-暗号出力が直接使用されます cbc-plain-暗号はcbcモードで操作されます。 cbcチェーンはすべてのセクターをカットし、セクター番号を初期ベクトルとして再初期化します(32ビットおよびリトルエンディアンに変換)。このモードは、[fru05b]の第4章で指定されています。 cbc-essiv:ハッシュ -暗号はessivモードで使用されます ハッシュ 元のキーのivキーを生成します。たとえば、sha256をハッシュとして使用する場合、暗号モードの仕様は「cbcessiv:sha256」です。 essivは、[fru05b]の第4章で指定されています。 xts-plain64-http://grouper.ieee.org/groups/1619/email/pdf00086.pdf、 plain64 プレーンな初期ベクトルの64ビットバージョン 表3:有効なハッシュ仕様 sha1-rfc 3174-usセキュアハッシュアルゴリズム1(sha1) sha256-shaによる変形fips 180-2 sha512-shaによるバリアントfips 180-2 ripemd160-http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html(下記参照) 編集者注:上記は仕様からコピーされたものです。執筆後、これらのドキュメントのurlは変更されました。 twofish:128ビットブロック暗号 (新しいurl) ハッシュ関数ripemd-16 (新しいurl)