From: Sergey Matveev Date: Fri, 28 Feb 2025 14:03:46 +0000 (+0300) Subject: Ещё разные способы шифрования файлов. Kryptor, Saltpack X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=f9e33af95af9179a24c5539e9e9661d60d0a3c0b;p=stargrave-blog.git Ещё разные способы шифрования файлов. Kryptor, Saltpack https://www.kryptor.co.uk/specification https://samuellucas.com/2021/01/28/kryptor-v3.html https://saltpack.org/ https://blog.cloudflare.com/hybrid-public-key-encryption/ https://datatracker.ietf.org/doc/rfc9180/ За последнее время я узнал о существовании всяких разных стандартов и инструментов для всякого шифрования. * Kryptor. Сравнивает себя с age и minisign. Хвалится поддержкой PSK, аутентифицированного шифрования на публичных ключах, key commitment (6529c5c19cb52f69f65fec3d17e718cc491d2c53), в противовес age. Есть не prehashed версия подписи, в отличии от minisign. Квантовоустойчивость только за счёт PSK. Неотличимость от шума. * Saltpack. Основан на MessagePack кодировании. * Описывает проблемы PGP: нет настоящего signcryption, выводит ещё не аутентифицированные данные, нет анонимных получателей, много старого legacy. * Подписи поддерживает потоково, однако подписывает каждый мегабайт отдельно, что я не очень одобряю (нагрузка на ключ). Не prehashed версии нет. Использует SHA512, что не одобряю ибо медленно. * В зашифрованных сообщениях есть repudiability, anonymity и сокрытие получателей. Поддержка нескольких получателей, с защитой от того, что кто-либо из них может изменить шифротекст (ведь ключ же есть у группы людей уже). Всё заточено на дружелюбность к потоковой обработке. И это тоже аутентифицированное шифрование на основе публичных ключей, в противовес age. Оба творения (хотя я больше присматривался к Saltpack) выглядят достойно и хорошо с криптографической точки зрения. В моём текущем KEKS/CM, где реализация на Go имеется, тоже сплошное дружелюбие к потоковой обработке, не выдаются неаутентифицированные данные, есть key commitment, есть не prehashed версия подписи, есть настоящие PQ алгоритмы для шифрования, есть key ratcheting (serial external key rekeying, как в других местах это ещё называют). И шифрование и подпись (только для prehashed версии) распараллеливаются (что у меня и делается, выдавая GiB/sec). Но у меня нет аутентифицированного шифрования на основе публичных ключей. Чем рано или поздно надо будет заняться. Но когда есть несколько получателей, то это сильно всё усложняет, поэтому не спешу с этим. И похоже, что реализация будет сильно похожа на Saltpack своей сутью, чтобы быть дружелюбным к потоковой обработке. Вообще, чем больше погружаешься в десятки всяких статей с IACR, то офигеваешь от того же PGP (даже современного LibrePGP) и CMS, JOSE и многим другим популярным вещам. Такое впечатление, что никто не приглашает криптографов для разработки всего этого. ---