Usually that is some variant of a rsync
like algorithm:
* split a file into blocks of x bytes
* build a hash over these x bytes
* compare the hash for each block between both files
* transfer the changed blocks
This obviously works only if the file does not change all the blocks when it is written. Thus, this cited paragraph is something to keep in mind:
Disk encryption often uses special purpose modes specifically designed for the application. Tweakable narrow-block encryption modes (LRW, XEX, and XTS) and wide-block encryption modes (CMC and EME) are designed to securely encrypt sectors of a disk. (See disk encryption theory)
OpenGPG is a mixed crypto system (it mixes asymmetric and symmetric ciphers to achieve it's goal), right now I find nothing about the used ciphers AND their application for block level deltas. You might want to pick a different crypto solution (eg, openssl), based upon these observations: http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html
That said:
- http://www.daemonology.net/bsdiff/
- http://www.indigorose.com/products/visual-patch/ (I've not used this before)
are both tools to calculate a binary diff and merge the parts together later on.
Related: Incremental (delta) backup of a encrypted dataIncremental (delta) backup of a encrypted data