Как определить, какие части двоичного файла меняются

1

Есть ли инструмент, который я вижу, чтобы увидеть, какие части файла изменяются? Я видел инструменты, которые показывают мне, к каким сегментам моего жесткого диска обращаются, но я хочу что-то похожее для одного файла, если что-то подобное существует.

Я зашифровываю файл и хочу узнать, будет ли когда-нибудь часть записана на диск, эта часть снова изменится. Например, как только первый МБ файла зашифрован и сохранен на диске, и программа продолжает работу, обновляется ли что-либо в этом первом МБ после завершения шифрования.

В качестве некоторого подробного контекста у меня есть процесс, в котором я использую gpg4win для шифрования очень большого файла (36 ГБ), а затем мне нужно отправить его по FTP на удаленный сервер. Оба этапа этого процесса занимают много часов, но FTP занимает немного больше времени. Если шифрование просто продолжает расширять файл, но начало остается неизменным, тогда я могу запустить процесс FTP, как только файл немного попал. Если заголовок моего зашифрованного файла обновляется в конце, у меня есть подождать, пока эти шаги не будут выполнены, прежде чем начать загрузку.

SqlRyan
источник
Там сотни шестнадцатеричных редакторов. Может быть проще зашифровать похожий, но меньший файл, чем пытаться загрузить два файла объемом 36 ГБ в память.
Ramhound
@Ramhound я бы проверил с меньшим файлом, так что, я полагаю, я спрашиваю о концепции - просто хотел объяснить мою конечную цель. Я немного перестроил свой вопрос, чтобы он был понятнее.
SqlRyan

Ответы:

2

Обычно это какой-то вариант rsync подобный алгоритм :

* 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

Это очевидно работает, только если файл не изменяется все блоки, когда это написано. Таким образом, это цитируемый абзац это то, что нужно иметь в виду:

При шифровании диска часто используются специальные режимы, специально разработанные   для приложения. Настраиваемые узкоблочные режимы шифрования (LRW,   XEX и XTS), а также режимы шифрования широкого блока (CMC и EME)   предназначен для надежного шифрования секторов диска. (См. Шифрование диска   теория)

OpenGPG - это смешанная криптосистема (она смешивает асимметричные и симметричные шифры для достижения своей цели), сейчас я не нахожу ничего об использованных шифрах И их применении для дельт на уровне блоков. Возможно, вы захотите выбрать другое криптографическое решение (например, openssl), основываясь на этих наблюдениях: http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html

Это говорит:

оба инструмента для вычисления двоичного различий и слияния частей позже.

Связанные с: Инкрементное (дельта) резервное копирование зашифрованных данных

akira
источник