Как использовать одноразовые номера в асимметричном шифровании (libsodium)?

Я пишу приложение, в котором пользователи могут общаться между устройствами с помощью сквозного шифрования. Для этого я использую библиотеку шифрования libsodium. Функция асимметричного шифрования crypto_box (...) требует одноразового номера в качестве одного из аргументов.

Я немного озадачен тем, как обращаться с одноразовыми номерами. Каждое сообщение одному человеку должно быть зашифровано с использованием разных одноразовых номеров? Это кажется неправильным, поскольку мне пришлось бы хранить использованные одноразовые номера на сервере с открытым доступом, где злоумышленник мог бы просто снова использовать один из использованных одноразовых номеров.

Достаточно ли того, что все сообщения, отправленные из A в B, имеют разные одноразовые номера, или одноразовый номер может использоваться для отправки сообщения из A в B, а не для отправки из C в B?

Может кто-нибудь, пожалуйста, объясните мне это.

Ответы на вопрос(2)

Ваш ответ на вопрос