From f9e33af95af9179a24c5539e9e9661d60d0a3c0b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 28 Feb 2025 17:03:46 +0300 Subject: [PATCH] =?utf8?q?=D0=95=D1=89=D1=91=20=D1=80=D0=B0=D0=B7=D0=BD?= =?utf8?q?=D1=8B=D0=B5=20=D1=81=D0=BF=D0=BE=D1=81=D0=BE=D0=B1=D1=8B=20?= =?utf8?q?=D1=88=D0=B8=D1=84=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?utf8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2.=20Kryptor,=20Saltpack?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 и многим другим популярным вещам. Такое впечатление, что никто не приглашает криптографов для разработки всего этого. -- 2.48.1