A tool for understanding and teaching differential cryptanalysis