Есть много, много документов и справочных страниц для чтения, но один документ, который может вас особенно заинтересовать, - это спецификация формата 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 этих документов изменились:
- Twofish: 128-битный блочный шифр (новый URL)
- Хеш-функция RIPEMD-160 (новый URL)