provide a rigorous proof of security for our protocol without random oracles.