On 1/27/2014, 12:24 PM, Brian Warner wrote:
On Jan 27, 2014, at 8:08 AM, Richard Newman <[email protected]> wrote:

As such, I would imagine that truncation here is fine, no? We're not really 
worried about collisions.

Truncating a good cryptographic hash function is safe, as long as you're still 
happy with the remaining length. 16 bytes is enough to avoid accidental 
collisions until we get to like 2^64 users, at which point we'll have bigger 
problems to worry about, like the storage servers collapsing into a black hole.

* We don't want to give an oracle to testing kB, but we pretty much have to in 
order for clients to get the comparison they need.  We're not going to do a 
zero-knowledge proof here.

kB is full-size and random. Yeah, an oracle lets someone do offline guesses, 
but they'll need 2^256-ish guesses to succeed. So no worries there either.

OK, based on warner's input I suggest we go with the much simpler

BASE64URLSAFE(FIRST-16-BYTES(SHA256(kB)))

If I read what warner says correctly, the key-space for kB is large enough that we don't need to salt with the email address. This makes life a good deal simpler for clients.

Comments?

Nick
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to