Arbre de Merkel
Master 2 I2L, 2015/2016
Les arbres de Merkel sont des arbres utilis´es pour comparer rapidement 2 ensembles et d´etecter les diff´erences. Ils sont utilis´es notamment dans les syst`emes pair `a pair de t´el´echargement, dans certaines bases de donn´ees nosql (BD distribu´ee de grand volume), ou encore en cryptographie dans les blockchains (bitcoin, etc.).
Nous allons utilis´es les arbres de Merkel pour comparer 2 fichiers.
Exercice 1 : D´ efinition
Questions :
a- Trouver la d´efinition des arbres de Merkel.
b- Donner un exemple d’un tel arbre.
Exercice 2 : Impl´ ementation en erlang
Questions :
2.a. Tester les lignes suivantes et d´efinir une fonction hash qui calcule le md5 d’une chaine de caract`eres :
B=erlang:md5("salut").
lists:flatten([io_lib:format("~2.16.0b", [C]) || <<C>> <= B]).
2.b. D´efinir une fonction qui...
2.c.
Exercice 3 : Comparaison de 2 fichiers
Questions :
3.a D´efinir une fonction qui compare et d´etecte toutes les diff´erences entre la repr´esentation sous forme d’arbre de Merkel de 2 fichiers.
3.b Calculer la complexit´e de votre algorithme.
1