Reputation
12,269
Next tag badge:
90/100 score
20/20 answers
Badges
1 31 61
Newest
 Enlightened
Impact
~212k people reached

Jan
30
reviewed Looks OK How hard is it to find plaintexts whose hashes satisfy $h(a)\oplus h(b)=h(c)$?
Jan
30
reviewed Looks OK Is there any existing cipher capable of scaling from a 1 bit key up to a one-time-pad?
Jan
30
awarded  Custodian
Jan
30
reviewed Looks OK Negative exponents in Shoup's threshold RSA?
Jan
30
reviewed Reviewed Why should the RSA private exponent have the same size as the modulus?
Jan
30
reviewed Reviewed State of the art RSA key generation
Jan
30
reviewed Leave Open Merkle hash tree updates
Jan
30
revised Many time pad attack
edited tags
Jan
30
comment How secure is it to use password as AES key?
At minimum it's bad style, since AES expects a uniformly random key. It also means that the password needs to be much stronger than what you'd need if you used a proper password based KDF.
Jan
30
comment Merkle hash tree updates
The basic variant of merkle trees is only efficient for leaf replacements and appending to the end of the dat, but not efficient insertions/deletions in the middle. But there are other hash tree constructions that allow efficient insertions.
Jan
28
comment How do I communicate the value of the initialization vector to the end user? Should it be part of the encrypted message?
Standard practice is using a random per message IV and sending it alongside the message, typically as a prefix. So in principle you got the IV handling right.
Jan
28
comment Why isn't CTR mode (counter mode) used more often?
@MaartenBodewes In that case I couldn't use what Microsoft built into .NET either. In fact whenever I needed raw CTR (not authenticated encryption like GCM), I needed random read access, which the .NET API doesn't provide.
Jan
28
comment Why isn't CTR mode (counter mode) used more often?
@Anthony Luckily implementing CTR on top of ECB is pretty easy. Perhaps 10 lines of code.
Jan
28
comment Why isn't CTR mode (counter mode) used more often?
One problem with CTR mode is that there isn't just a single way of turning counter and nonce into input for the block cipher core.
Jan
27
comment Is there a strong cryptographic reason for GCM's 2^39 - 256 bit limit?
I'm talking about using a message counter as nonce. That way you can have a collision between (k, n_1, c_1) and (k, n_2, c_2).
Jan
27
comment Is there a strong cryptographic reason for GCM's 2^39 - 256 bit limit?
For GCM to be secure the inputs to AES must be unique. With concatenation having a unique nonce (responsibility of the caller) and a unique block counter (part of GCM itself) is enough to guarantee unique inputs to AES. With XOR the caller must make sure that the 128 bit nonces are spaced far enough from each other so that xor-ing the counter doesn't cause a collision. That's annoying.
Jan
27
answered Is there a strong cryptographic reason for GCM's 2^39 - 256 bit limit?
Jan
27
comment Is there a strong cryptographic reason for GCM's 2^39 - 256 bit limit?
With concatenation the caller only has to ensure the nonce is unique. For example they can use a counter. If you use xor or add nonce and counter you get overlaps, so a counter as nonce would be fatally broken.
Jan
26
answered How does BLAKE2 ensure that hash(A) != hash(B) when B = A||0 and both A & B have the same number of blocks?
Jan
26
comment How does BLAKE2 ensure that hash(A) != hash(B) when B = A||0 and both A & B have the same number of blocks?
My blog entry Alternative Blake Padding might be relevant, where I propose a simplified padding, which with some minor tweaks turned into the Blake2 padding.