Что: 4adf9b82dc1c86d787ca0a56f0d37b924877277c
Когда: 2023-05-09 10:42:14+03:00
Темы: crypto hate
age имеет 128-бит ключи https://words.filippo.io/dispatches/post-quantum-age/ https://eprint.iacr.org/2019/1492 В 4674ad351dcb1f018d2392bc03fb0692e101e229 глянул на age утилиту. Сейчас попристальнее посмотрел на её формат, который уже стал доступен в https://github.com/C2SP/C2SP репозитории, а не на Google Docs. И сильно поразился: для шифрования используется 128-бит ключ. В начале шифротекста добавляется 128-бит nonce. HKDF-SHA-256 на вход принимает ключ, nonce и выдаёт 256-бит ключ для ChaCha20. Но ведь энтропии на вход всей этой симметричной схеме шифрования было подано всего 128-бит. Я не могу сказать что это не безопасно на практике *сейчас*. Но я не понимаю почему так сделано. Ведь ничто не мешает использовать 256-бит: шифр и так 256-битный, SHA-256 имеет размер блока (внутреннее состояние) в 512-бит, что достаточно для потребления энтропии и 256-бит ключа и nonce-а. Если иметь 256-бит ключи, то ничего нигде не станет медленнее (захэшировать несколько раз дополнительные 128-бит перед шифрованием всего файла -- ничего не стоит). Ведь для квантовоустойчивых схем нужны в два раза более длинные ключи, то бишь 256-бит. Я понимаю, что если и будут созданы квантовые компьютеры общего назначения, то ломать будут не симметричную часть age, а его X25519 и там уже без разницы какой длины ключи. Но на пустом месте убрали бесплатный запас прочности. В блоге Filippo Valsorda описано почему не стоит воспринимать эти 128-бит как проблему: алгоритм Гровера всё равно медленный, не распараллеливается и там "сила ключа" не просто делится пополам. Why 128 bits? Because the file key is wrapped in each recipient stanza, so adding 16 more bytes to the file key would add 16 bytes to the file size per recipient. Instead, we have a 128-bit per-file nonce to provide a comfortable margin against multi-user attacks, where a shared search space of only 128 bits would be too tight. Всё это всё равно выглядит как экономия на копейках. Мне не нравится. Это всё из серии "Too much crypto" статьи, где говорят о том, что консерватизм в криптографии приводит к ужасно завышенным запасам прочности алгоритмов, уничтожая производительность. В BLAKE3 поэтому вообще сократили количество round-ов в два раза относительно оригинального BLAKE, который стал финалистом SHA3. Но если BLAKE3 ещё можно применять где не так критична криптографическая сила, зато получая лютый прирост производительности, то в age это экономия в 16 байт на каждого получателя (всего то!).
Сгенерирован: SGBlog 0.34.0