I'm writing a program that allows two users to communicate over E2E encrypted chat with a secret they have agreed upon in the past.
The process works as follows:
A key is derived from the secret using Argon2id, where the salt is hardcoded in the application.
The key is used to encrypt the user's message using crypto_secretbox
The message is sent to the server and downloaded by the other user.
The user on the receiving end decrypts the message using the same key derived in the same way.
As I understand it, in a password hashing system, a unique salt per password prevents attacks where the bad guys have pre-computed the hashes for a ton of different passwords.
Would there be any advantage for my application to use a different salt for each user (possibly generated by the server)?