
ADAMANT использует те же проверенные криптографические алгоритмы, что и Bitcoin, Ethereum, Signal, Tor, OpenSSH и многие другие. Криптография по своей природе консервативна, и каждый шифр должен выдержать испытание временем. Отличительная черта ADAMANT — блокчейн сам гарантирует децентрализацию, анонимность через псевдонимность, целостность и порядок сообщений, постоянное хранение, надёжную доставку и устойчивость к атакам типа «человек посередине». Сообщения и транзакции проверяются каждым узлом в сети, а не получателем или центральным органом. Стоимость такой децентрализации — комиссии за транзакции, компенсирующие операторам узлов.
Аккаунт и ключевая пара
Аккаунт ADAMANT начинается с мнемонической фразы BIP39 из 12 слов, обеспечивающей около 132 бит энтропии среди примерно 2048¹² возможных комбинаций. Сид BIP39 хэшируется с помощью SHA-256, чтобы получить 256-битное значение, из которого выводятся ключи цифровой подписи Ed25519: 256-битный публичный ключ и 512-битный приватный ключ. Это обеспечивает уровень безопасности, сопоставимый с RSA с ключами ~3000 бит или надёжными 128-битными блочными шифрами. Адрес ADM, отображаемый пользователю, — это символ ‘U’, за которым следуют 8 байт хэша SHA-256 публичного ключа, что даёт 64-битный идентификатор. Публичный ключ Ed25519 публикуется в блокчейне при первой исходящей транзакции пользователя.
Шифрование сообщений
Для шифрования сообщений ключи подписи Ed25519 пользователя преобразуются в ключи Диффи-Хеллмана Curve25519 — 256-битный публичный ключ и 256-битный секретный ключ, что позволяет осуществлять асимметричное шифрование между сторонами. Сообщения шифруются с помощью шифра Curve25519-XSalsa20-Poly1305 (NaCl.box), который использует XSalsa20 с 192-битным nonce и Poly1305 для аутентифицированного шифрования, проверяя как целостность данных, так и подлинность сообщения.
Хранилище «ключ-значение» (KVS)
Для хранилища «ключ-значение» ключи подписи Ed25519 пользователя используются для вывода секретного ключа XSalsa20-Poly1305. Данные сериализуются в JSON-объект с добавлением шума, затем шифруются с помощью NaCl.secretbox, снова используя XSalsa20 с 192-битным nonce и Poly1305 для проверки целостности и подлинности.
Подписи транзакций
Данные транзакции — включая отметку времени и любое зашифрованное сообщение — хэшируются с помощью SHA-256. Отправитель подписывает этот хэш с помощью Ed25519, используя свой 256-битный публичный ключ и 512-битный приватный ключ. Идентификатор транзакции — это 8 байт хэша SHA-256 полученной подписи.
Подробные технические ссылки по генерации ключей, шифрованию/дешифрованию сообщений и подписанию транзакций доступны в вики-проекте ADAMANT на GitHub.
Хранение в блокчейне и квантовые компьютеры
Некоторые пользователи опасаются, что постоянное хранение зашифрованных сообщений в блокчейне создаёт будущую уязвимость: когда квантовые компьютеры достигнут зрелости, можно ли будет расшифровать всю сохранённую переписку задним числом?
Эта обеспокоенность не уникальна для ADAMANT. Квантовый криптоанализ угрожает всей ИТ-инфраструктуре — государственным секретам, интернет-трафику, хранимым данным — потому что практически все современные системы полагаются на одни и те же семейства криптографических примитивов. Программы массовой слежки, такие как PRISM, уже собирают и хранят трафик, поэтому перехваченные сегодня зашифрованные данные могут стать мишенью для будущих криптоаналитических прорывов независимо от используемой платформы.
Квантовый криптоанализ — не волшебная палочка. Он даёт теоретическое ускорение для определённых задач, но современные шифры имеют значительные запасы безопасности, которые могут сделать эти ускорения неэффективными на практике. Более того, злоумышленник не может расшифровать весь блокчейн целиком; каждый аккаунт использует отдельные ключи шифрования, поэтому усилия должны быть затрачены на каждый аккаунт отдельно. Поскольку аккаунты ADAMANT анонимны, злоумышленнику сначала нужно определить, какие аккаунты стоит атаковать.
Практический квантовый криптоанализ, вероятно, находится на расстоянии десятилетий, и доминирующей угрозой для криптографии в этот период может оказаться что-то иное, чем квантовые компьютеры. Если постквантовые алгоритмы станут необходимыми, ADAMANT сможет обновить свою криптографию, как и другие мессенджеры и протоколы.
Для операционной безопасности ADAMANT лучше всего использовать для одноразовой или краткосрочной переписки с частой сменой аккаунтов. Создание нового аккаунта занимает около одной секунды, что делает смену идентичностей практичной и ограничивает ценность любого одного скомпрометированного аккаунта.