1995-12-20 - Bit Commitment Query

Header Data

From: Robbie Gates <gates_r@maths.su.oz.au>
To: Cypherpunks <cypherpunks@toad.com>
Message Hash: 420deeae43f0caa9016df78029c4e7901e30db03252e9d8921a50bc69e302128
Message ID: <30D7A993.3F54@maths.su.oz.au>
Reply To: N/A
UTC Datetime: 1995-12-20 06:10:10 UTC
Raw Date: Tue, 19 Dec 95 22:10:10 PST

Raw message

From: Robbie Gates <gates_r@maths.su.oz.au>
Date: Tue, 19 Dec 95 22:10:10 PST
To: Cypherpunks <cypherpunks@toad.com>
Subject: Bit Commitment Query
Message-ID: <30D7A993.3F54@maths.su.oz.au>
MIME-Version: 1.0
Content-Type: text/plain


I am confused about bit commitment via one way hashing as described
in Schneier (1st ed, p 73)

h is a one way hash function.  This description from Schneier, except
that variables are changed so i don't need subscripts:

1. Alice has a bit b she wants to commit to. She picks random bit
	strings R and S, and sends Bob h(R,S,b),R

2. To verify commitment, she tells Bob S and b so he can verify the hash.

What i don't get is Schneier's claim:
``If Alice didn't send Bob R, then she could change the value of S
and then the value of the bit. The fact that Bob already knows R prevents
her from doing this.''

Can someone explain exactly how Alice cheats if Bob doesn't know R.
I can't see how she can alter R and S and b at all without being
able to produce hash collisions.

In essence, why doesn't the following work:

1. Alice has a bit b.  She picks a random bit string R and sends Bob
	h(R,b)

2. To verify, she tells Bob R and b.

Assuming Bob knows b is a single bit, how does Alice cheat without needing
to produce hash collisions for h.

thanks in advance for any help,
 - robbie
-- 
----------------------------------------------------------------------
      robbie gates      | it's not a religion, it's just a technique.
  apprentice algebraist |    it's just a way of making you speak.
    pgp key available   |       - "destination", the church.





Thread