я безуспешно пытался использовать cryptsetup - как в Modi plain, так и в LUKS - для создания устройства с потоковым шифром [Chacha20*, ARC4] вместо одного из блочных шифров по умолчанию.
поведение одинаково для разных дистрибутивов / ядер (Fedora, Ubuntu), где ядро поддерживает шифры в принципе [/proc/crypto, /lib/modules/*/kernel/crypto/]
для Chacha20, chacha20poly1305 cryptsetup не удается во время создания, так как нет поддержки CBC-plain (по умолчанию доступно) - что, я полагаю, разумно для потокового шифра, чтобы не заботиться о блочном Моди.
для RC4, я могу создать устройство и доступ к ним, но после закрытия открытия не с устройством не redable.
мой подход для RC4:
> dd if=/dev/zero of=/dev/shm/container bs=1M count=200
> dd if=/dev/urandom of=/tmp/keyfile bs=1k count=8
> cryptsetup --cipher arc4 --key-file=/tmp/keyfile open --type plain /dev/shm/container ramdisk
> mkfs.ext4 /dev/mapper/ramdisk
> echo "test" > /dev/mapper/ramdisk/test.foo
> cryptsetup close ramdisk
> cryptsetup --cipher arc4 --key-file=/tmp/keyfile open --type plain /dev/shm/container ramdisk
-- fails
при использовании LUKS информация заголовка выглядит как
> cryptsetup luksDump /dev/shm/container
LUKS header information for /dev/shm/container
Version: 1
Cipher name: arc4
Cipher mode: cbc-plain
Hash spec: sha256
Payload offset: 4096
На самом деле, я могу отформатировать устройство с различными комбинациями arc-modi-IV, а также-я полагаю, что простой контейнер использует по умолчанию также CBC-plain (что не звучит разумно, или?).
мое предположение заключается в том, что cryptsetup/dm-crypt не поддерживает потоковые шифры и что сбой в chacha20 должен быть поведением по умолчанию, а arc4 не пойман изящно??
вопрос в том, правильно ли это предположение или как можно было бы использовать потоковые шифры с dm-crypt?