Acho que esta questão é muito ampla em muitos níveis. Termo "diferença" depende do tipo de dados e seu contêiner: txt, mp3, avi, jpg. Para cada um deles você precisa executar seus próprios métodos de processamento. Por exemplo, arquivos de texto ou código-fonte podem requerer apenas diff
utility. Arquivos de música, vídeo e imagem requerem lógica fuzzy e algoritmos de aprendizado de computador.