Coin flipping by telephone a protocol for solving impossible problems
A method for obtaining digital signatures and public-key cryptosystems