-
Notifications
You must be signed in to change notification settings - Fork 0
Functional flow overview
Glossary
-
Encrypt(data, key)
/Decrypt(data, key)
- encrypts/decryptsdata
with the encryption keykey
using an authenticated encryption algorithm. It's normally used to encrypt/decrypt private sections in keys, as well as chunks and snapshots. -
Hash(data)
- computes the hash digest ofdata
using a hashing algorithm. It's used to check integrity of data and to derive encryption keys for chunks and snapshots. -
Mac(data, key)
- computes the message authentication code fordata
using suitablekey
and a MAC algorithm. It's mainly used to verify ownership of chunks. -
SlowKdf(ikm, salt[, context])
/FastKdf(ikm, salt[, context])
- calls a "slow"/"fast" key derivation function to obtain an encryption key fromikm
usingsalt
and an optionalcontext
. As a general rule, replicat uses "slow" KDF for low-entropy inputs and "fast" KDF for high-entropy inputs. The output length will match the encryption key length of the chosen encryption algorithm. -
UserKey
- encryption key derived asSlowKdf(Password, UserKdfParams)
, wherePassword
is the user's password andUserKdfParams
is the salt.UserKey
is used to encrypt sensitive personal data: private sections in keys and file metadata in snapshots. -
SharedKey
,SharedKdfParams
,SharedMacKey
,SharedChunkerKey
- secrets stored in the private sections of keys.SharedKey
andSharedKdfParams
are used to derive encryption keys using "fast" KDF (they will encrypt shared data, like chunks and chunk references).SharedMacKey
is the MAC key.SharedChunkerKey
personalises content-defined chunking (CDC) to prevent watermarking attacks. -
GetChunkLocation(name, authentication_tag)
/GetSnapshotLocation(name, authentication_tag)
- obtains the location for a chunk/snapshot using its name and the corresponding authentication tag. -
Upload(data, location)
- uploadsdata
to the backend to the givenlocation
. -
Download(location)
- downloads data from the backend at the givenlocation
.