Криптографические примитивы

Платформа Waves Enterprise предоставляет возможность выбора используемых криптографических алгоритмов в зависимости от особенностей реализуемого проекта и юрисдикции заказчика.

Хеширование

Операции хеширования в платформе выполняются функциями Blake2b256 и Keccak256 последовательно, либо функцией «Стрибог» в соответствии с ГОСТ Р 34.11-2012 «Информационная технология. Криптографическая защита информации. Функция хеширования». Размер блока выходных данных 256 бит.

Электронная подпись

Алгоритмы генерации ключей, формирования и проверки электронной подписи реализованы на базе эллиптической кривой Curve25519 (ED25519 с ключами X25519), либо в соответствии с ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».

Шифрование данных

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

Используемые алгоритмы для симметричного шифрования соответствуют стандарту AES, либо ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».

Для операций шифрования/расшифрования данных применяются симметричные ключи CEK и KEK. CEK (Content Encryption Key) используется для шифрования текстовых данных, KEK (Key Encryption Key) используется для шифрования CEK. Ключ CEK формируется блокчейн-узлом случайным образом с применением соответствующих алгоритмов хеширования. Ключ KEK формируется нодой на базе алгоритма Диффи-Хелмана, используя публичные и приватные ключи отправителя и получателей, и применяется для шифрования ключа CEK.

Описание методов шифрования и их использования приведено в разделе Операции шифрования данных.