Done: - Figured out how to generate random numbers   without calling random_bitarry again and again.
Done:
- Figured out how to generate random numbers
  without calling random_bitarry again and again.

TODO:
- See if proof is required for the random number
  generation part.
- Need to figure out about P1 and P2.

sujeet/ChallengeResponseOverTLS,sujeet/ChallengeResponseOverTLS