3 ms·
So you transmitted AES(original) to the server, now what do you do when you want to update your file? Transmitting AES(updated) to the server is bandwidth-inef
by mappu 11y ago
So you transmitted AES(original) to the server, now what do you do when you want to update your file?
Transmitting AES(updated) to the server is bandwidth-inefficient and storage-inefficient.
Transmitting DIFF(AES(original), AES(updated)) gives you no filesize benefit.
You can do AES(DIFF(original, updated)) but that requires your local client to have the original file, or enough of it indexed to produce the diff - and it means that restoring the latest file means restoring a giant chain of increments - which means you'll probably want to periodically reupload the original file - which is bandwidth-inefficient and storage-inefficient.
You can transmit the encryption key to the server and have it rollup diffs. But that's not a good idea if you don't really trust your server (got some cheap cloud storage?)
The solution to this problem is to use a deduplication algorithm like content-defined chunking, as seen in attic/restic/obnam/tarsnap.
- ausjke 11y agoLearned something new. Thanks!