How do I determine what ciphers & cipher modes I can use in dm-crypt/LUKS?

7846

I'm using an Ubuntu-based system, and I'm having difficulty determining what ciphers and cipher modes are available to me.

The cryptsetup man page says:

"See /proc/crypto for a list of available options. You might need to load additional kernel crypto modules in order to get more options."

My /proc/crypto has very little in it. How do I find out which extra kernel crypto modules are available for me to load?

11
`/ lib / modules / * / kernel / crypto /` является вероятным местом для поиска, но модули могут находиться где угодно в файловой системе. Mark 9 лет назад 0
Я думаю, что это хороший вопрос. Я искал эту информацию сам. `/ proc / crypto` великолепен, но он не перечисляет допустимые строки шифра; такие вещи, как `aes-xts-plain64` или` aes-cbc-essiv: sha256`. Хороший ответ предоставит эту информацию и покажет, какие модули из `/ lib / modules ...` должны быть загружены для их использования. starfry 9 лет назад 2
@starfry Меня это тоже интересует. Поскольку между именами строк шифра и тем, что находится внутри моего `/ proc / crypto`, нет соответствия именования. Это не имеет смысла. CMCDragonkai 8 лет назад 0

1 ответ на вопрос

8
notdavidcronenberg

Есть много, много документов и справочных страниц для чтения, но один документ, который может вас особенно заинтересовать, - это спецификация формата LUKS на диске (PDF).

Приложение B (которое, естественно, ближе к концу) гласит:

Реестр спецификаций шифров и хэшей

Даже если строки cipher-name и cipher-mode не интерпретируются какой-либо операцией LUKS, они должны иметь одинаковое значение для всех реализаций, чтобы достичь совместимости между различными реализациями на основе LUKS. LUKS должен гарантировать, что нижележащая система шифрования может использовать строки имени шифра и режима шифрования, и, поскольку эти строки не всегда могут быть встроенными в систему шифрования, LUKS может потребоваться отобразить их в нечто подходящее.

Допустимые имена шифров приведены в таблице 1.

Действительные режимы шифрования перечислены в Таблице 2. По контракту режимы шифрования, использующие IV и настройки, должны начинаться с нуля IV / настройки. Это относится ко всем вызовам примитивов шифрования / дешифрования, особенно при обработке материала ключа. Кроме того, эти режимы шифрования IVs / твиков обычно разделяют поток шифров на независимые блоки путем повторного заполнения твиков / IV на границах секторов. Требование полного / нулевого IV / настройки для первого зашифрованного / дешифрованного блока эквивалентно требованию, чтобы первый блок был определен как находящийся в секторе 0.

В таблице 3 перечислены действительные спецификации хеш- функции для поля хэш-спецификации . Совместимая реализация не должна поддерживать все спецификации шифров, режимов шифрования или хэшей.

Таблица 1: Действительные имена шифров

  • aes - Расширенный стандарт шифрования - 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: hash - шифр работает в режиме 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 - американский алгоритм безопасного хеширования 1 (SHA1)
  • sha256 - вариант SHA согласно FIPS 180-2
  • sha512 - вариант SHA согласно FIPS 180-2
  • palemd160 - http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html (см. ниже)

Примечание редактора: вышеприведенное скопировано из спецификации. После его написания URL этих документов изменились:

Похожие вопросы