Reasoning Analytically About Password Cracking Software Alex Liu