Passwarden implements the symmetric encryption and decryption using the Advanced Encryption Standard with Galois Counter Mode, or AES-GCM for short. This algorithm offers three possible cipher key lengths, we use the strongest 256-bit key. AES-GCM with random 256-bit salt aims to provide a high speed of encryption and decryption.
As well, for public-key cryptography, our password manager uses the Elliptic Curve Diffie Hellman algorithm on the secp384r1 curve, abbreviated as ЕС р-384. Thus, you won’t have to worry about your data confidentiality and integrity while you are using shared Vaults.
Furthermore, Passwarden implements HKDF-SHA512 - the hash-based key derivation function with random 256-bit salt. Generated preliminary keys are always passed through this function to receive the KEK - Key Encrypting Key. So that we’re on the same page, KEK is a cryptographic key that is used for encrypting other cryptographic keys.
To validate the integrity of a Key, we implement an Elliptic Curve Digital Signature Algorithm on the secp384r1 curve. Besides, all private keys are encrypted using the PKCS8 AES256-CBC mode via the Key that is derived from your Master Password through the Argon2id key derivation function with variable parameters - at least 16MB of memory and 4 iterations.
This block diagram shows how the authentication and data decryption processes are implemented in the Passwarden application.