So you transmitted AES(original) to the server, now what do you do when you want to update your file?<p>Transmitting AES(updated) to the server is bandwidth-inefficient and storage-inefficient.<p>Transmitting DIFF(AES(original), AES(updated)) gives you no filesize benefit.<p>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&#x27;ll probably want to periodically reupload the original file - which is bandwidth-inefficient and storage-inefficient.<p>You can transmit the encryption key to the server and have it rollup diffs. But that&#x27;s not a good idea if you don&#x27;t really trust your server (got some cheap cloud storage?)<p>The solution to this problem is to use a deduplication algorithm like content-defined chunking, as seen in attic&#x2F;restic&#x2F;obnam&#x2F;tarsnap.