[about] [index] [prev] [2022-07-27 09:46:51+03:00] [ea1095a3ab99453eac8da8b7b26ef3be8381118b]
Topics: [crypto]

gpg --symmetric, постквантовые алгоритмы

https://en.wikipedia.org/wiki/Grover%27s_algorithm
https://en.wikipedia.org/wiki/Shor%27s_algorithm
Если есть опасения что в ближайшем будущем могут появится квантовые
компьютеры достаточной мощности (кубит) для запуска алгоритма Гровера,
то достаточно использовать размеры ключей в два раза длиннее чем нужный
порог безопасности. То бишь, 256-бит ключ на квантовых компьютерах всё
равно должен будет ломаться за 2^128 операций. Поэтому проблем с
симметричными шифрами нет. Наши ГОСТовые алгоритмы вообще всегда
использовали 256-бит ключи.

Атака на хэш функции тоже возможна и она, как бы, сокращает длину хэша
в три раза. Опять же, достаточно использовать достаточной длины хэш.
Всякие 512-битные подойдут для любых задач. Но, даже если хэш функция и
будет яростно поломана, то для старых переданных сообщений какую это
сулит опасность? Да никакой почти всегда на практике. Вот потеря
конфиденциальности это фатально. А то, что аутентичность становится не
очень доверенное, то для архивных документов, для того что в хранилищах
долго лежит, это вряд ли большая проблема.

А вот вся асимметричная криптография ломается моментально и полностью,
независимо от длины ключа (поэтому пофиг cv448 у вас или cv25519). И RSA
и ECC все. И если просто обычно шифровать OpenPGP сообщения для
долговременного хранения (gpg -e -r offline-storage < data), то внутри
такого пакета он будет использовать асимметричный алгоритм (или DH в
случае с cv25519/cv448, или асимметричного шифрования RSA), на основе
которого будет вырабатываться симметричный ключ шифрования сообщения. А
так как асимметричный алгоритм всё равно будет взломан, то и
симметричный ключ узнана и сообщение полностью компрометируется.

И пока постквантовые алгоритмы не распространены, не так эффективны и
относительно ресурсоёмки, то как вариант для долговременного хранения
зашифрованных данных -- не использовать асимметричную криптографию.
Очевидно. Как передать безопасно парольную фразу при этом другому
человеку? Без постквантовой криптографии никак. Но если речь о
собственных данных, когда ни с кем сторонним не надо согласовывать
ключи, то парольная фраза и исключительно симметричное шифрование вполне
себе выполнимы.

В Интернете можно найти тысячи статей и советов как симметрично
зашифровать что-то использую openssl enc вызов команды. И в 999 статей
будет просто шифрование, каким-нибудь CBC/CTR режимом, без какой-либо
аутентификации. Именно по этой причине и дают совет: никогда не
занимайтесь криптографией самостоятельно, потому что подобные советы --
медвежья услуга. Изменение шифротекста вы при этом не обнаружите.

Благо, в GnuPG есть опция --symmetric, подходящая для этой задачи. Без
проблем использующая AEAD режим шифрования. В документации не написано
как усиливается пароль, лень смотреть в исходниках, но или никак или
как-то слабо, учитывая что сейчас в OpenPGP рассылках обсуждают Argon2.
Но раз шифруется что-то серьёзное, то и парольная фраза будет достаточно
длинной и стойкой и поэтому переживать об усилении нет смысла?

Можно бы было использовать PQ-алгоритмы для шифрования хотя бы парольных
фраз. Но лично я в этих алгоритмах толком не разбираюсь. В курсе
некоторых идей и проблем на которых они основаны, в курсе чем занимается
Бернштейн с ними, но на этом всё. У меня единственный софт с
PQ-алгоритмом это обновлённый OpenSSH
(ac8333dcf2a8d2e40a00b4a551355760aa0e28b7), где только согласование ключей.

Но у меня пока нет серьёзных мыслей о PQ, так как пока нет ничего даже
отдалённо говорящего о том, что человечество в состоянии сделать
квантовый компьютер способный выполнять Гровера/Шора. Ведь сейчас
квантовое превосходство было достигнуто только на КК не способных
выполнять эти алгоритмы -- это были совершенно специализированные
устройства, бесполезные для криптографии.

[leave comment]