Алгоритм, используемый rsyncrypto, описан по адресу:
http://rsyncrypto.lingnu.com/index.php/Algorithm
Суть в том, что файл делится на блоки на основе некоторых локальных критериев, не зависящих от перевода, а затем отдельно шифруется блоки.
Алгоритм не выглядит очень сложным, и вы сможете реализовать его за несколько часов.
Если в файле одинаковое смещение с одинаковым смещением, вы можете воспользоваться еще более простым алгоритмом:
Разделите файл на блоки постоянного размера (скажем, 64 КБ) и зашифруйте эти блоки отдельно, используя CBC. Или просто используйте режим, разработанный для шифрования диска, такой как XTS.