Zero-knowledge proof for identity authentication