Wie verwendet man Nonces bei der asymmetrischen Verschlüsselung (libsodium)?

Ich schreibe eine App, in der Benutzer mit End-to-End-Verschlüsselung zwischen Geräten kommunizieren können. Dafür benutze ich die libsodium Verschlüsselungsbibliothek. Die asymmetrische Verschlüsselungsfunktion crypto_box (...) erfordert ein Nonce als eines der Argumente.

Ich bin ein bisschen verwirrt darüber, wie man mit Nonces umgeht. Muss jede Nachricht an eine Person mit unterschiedlichen Nonces verschlüsselt werden? Dies scheint nicht richtig zu sein, da ich die verwendeten Nonces auf einem Server mit öffentlichem Zugriff speichern müsste, auf dem ein Angreifer nur eine der verwendeten Nonces erneut verwenden könnte.

Reicht es aus, dass alle von A nach B gesendeten Nachrichten unterschiedliche Nonces haben, oder kann die Nonce zum Senden einer Nachricht von A nach B nicht zum Senden von C nach B verwendet werden?

Kann mir das bitte jemand erklären.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage