3,336 reputation
720
bio website ripple.com
location Oakland, CA
age 44
visits member for 3 years
seen Jul 22 at 18:29

I am Chief Cryptographer at Ripple Labs and one of the architects of the Ripple payment system.


Aug
23
answered What is the effect of the different AES key lengths?
Aug
13
awarded  Yearling
Aug
10
comment Entropy of system data - use all and hash, or trim least significant bits?
Your approach is overly-complex and arbitrary. There are well-understood ways to do this whose behavior is known and understood. XORing is much worse than hashing because hashing concentrates entropy while XORing can destroy it. A sensible entropy pool design makes the collection problem almost trivial, and no matter how good your collector is, a bad pool will still produce crappy output.
Aug
10
comment Design question for a service that signs messages on behalf of a user
What's the problem with getting a pure JavaScript way of decrypting/signing on the client side? (Punch things like 'JavaScript RSA' into your favorite search engine and you'll find dozens of implementations.) Make sure to serve the JS over SSL, of course.
Aug
9
answered Design question for a service that signs messages on behalf of a user
Aug
9
answered Cryptographic GUID?
Aug
9
comment Approach towards anonymous e-voting
What do you mean by correctness? What would an incorrect ballot be?
Aug
8
answered Approach towards anonymous e-voting
Jul
29
comment Why does ROT13 provide no cryptographic security?
@ExplosionPills: What could they possibly do wrong? How could they possibly fail?
Jul
29
comment Should I use md5 for my new application?
The main reason not to use MD5 is that you will have to convince people that it is safe and that will not be easy. You are not the only one who will have a queasy feeling.
Jul
29
answered Why does ROT13 provide no cryptographic security?
Jul
27
comment PRNG taking advantage of very large seed
@bmearns: Assuming the seed is perfect, it does no good to introduce more bits of seed than the PRNG's internal state. If the seed is not perfectly random, introducing more bits of seed than the internal state can help ensure the internal state is as random as it can be. You can also introduce more of the seed later on. But for a good PRNG, all that's needed is to introduce enough seed prior to using its output.
Jul
24
comment Trying to find an algorithm to share portions of a key with multiple people
It makes a huge difference what the threat model is. Is it vital that x-1 people not be able to find out anything about the data? Because there are simple, efficient algorithms used for storage (erasure codes) that work only if that's not a requirement.
Jul
24
comment Generating a cryptographically secure, many-time use, symmetric encryption key
Acquiring more entropy than you need from a number of sources and then using a cryptographically-secure hash of everything you've collected is cheap insurance. Your result will be at least as strong as the weaker of its strongest input and the hashing function.
Jul
22
comment PRNG taking advantage of very large seed
@bmearns: You're trying to solve a problem that no halfway-decent PRNG has. So long as the PRNG isn't horribly broken, and so long as an attacker can't guess the seed, the output will look random and pattern-free over many, many terabytes.
Jul
17
awarded  Enlightened
Jul
17
awarded  Nice Answer
Jul
16
revised Is it possible to ensure security with zero pre-shared information?
added 466 characters in body
Jul
16
comment Is it possible to ensure security with zero pre-shared information?
If all Bob knows is Alice's IP address, then the best Bob can do is communicate with that IP address. Whoever gets it is the intended recipient, since that person meets the only criterion Bob knows or cares about. (Unless you're asking a totally different question like "Can someone prove they are 'entitled' to a particular IP address?" If that's the case, you should ask a more specific question.)
Jul
16
revised Is it possible to ensure security with zero pre-shared information?
added 924 characters in body; added 35 characters in body; added 483 characters in body