Если это обычный текст, то библиотека diff-match-patch от Google должна делать то, что вы хотите (она имеет версию C #).
Если это двоичные данные, то посмотрите, что люди делают, чтобы применить обновления к исполняемым файлам ( bsdiff и Courgette ). Они ищут минимальную разницу между двумя файлами, чтобы конечное пользователи могли отправить небольшое обновление. Похоже на ваши потребности.