My scenario is this -- I want to store an encrypted container on a network server. This encrypted container should be accessible to others to download and decrypt/mount locally provided they have the key. If the container is ~64MB (random example size) and I mount it locally, add a file, and then unmount... Is there a way to upload only the changes to the encrypted volume (I'm assuming the md5/sha1 hash changes after you drop a new file into the container) to the server and change just those portions of the container, without having to re-upload the entire container each time?
A close enough solution is Rsyncrypto.
Rsyncrypto is a utility to encrypt files in an rsync-friendly fashion. The rsyncrypto algorithm ensures that two almost identical files, when encrypted with rsyncrypto and the same key, will produce almost identical encrypted files. This allows for the low-overhead data transfer achieved by rsync while providing encryption for secure transfer and storage of sensitive data in a remote location.
Rsyncrypto is a modified encryption scheme. It is based on industry standard AES for symmetric encryption, as well as RSA for having different keys for each file while allowing a single key to decrypt all files. It even uses an encryption mode that is based on CBC.