CñiMs: Understanding Hash Functions