If the ssdeep value of two files are pretty close to each other, is it guaranteed that the file contents are pretty close to each other?
Non è garantito ma è molto probabile. Vedi anche il documento ssdeep originale dove calcola la possibilità che due file casuali abbiano la stessa o simile firma. Non è zero ma è vicino a zero.
Or is it that when ssdeep is completely dissimilar there is no chance that the file contents are similar?
Dipende da ciò che è considerato simile. Se uno, ad esempio, ricodifica un file UTF-8 in UTF-16, si potrebbe considerare il contenuto ancora simile poiché è codificato in modo diverso, ma l'hash di ssdeep sarà molto diverso.
Se uno invece tratta i dati come ottetti senza alcuna semantica specifica e visualizza la somiglianza della quantità di inserimenti o delezioni, allora un valore di ssdeep molto diverso significherà nella maggior parte dei casi un numero elevato di inserimenti o delezioni.
Ma si può probabilmente creare qualche input in cui un piccolo cambiamento porterà ad una grande differenza di ssdeep. Questo è il caso in cui il piccolo cambiamento porterebbe a un cambiamento critico nella lunghezza della firma in modo che sia considerato troppo piccolo con la dimensione del blocco originale su degli ingressi che causerà un ricalcolo con la dimensione del blocco dimezzata, che porta a una firma molto diversa.