1,978 reputation
417
bio website touset.org
location San Francisco, CA
age 30
visits member for 1 year, 6 months
seen 1 hour ago

Cyclist. Rubyist.


Oct
10
comment Infinite depth BLAKE2b tree hashing
A unary tree mode allows me to use the node depth field to store the iteration counter (guaranteeing that all iterated calls to the hash function are unique). Otherwise I have to use bytes of the personalization field for this internal record keeping, which reduces the amount available for end-users of my scheme.
Oct
10
comment Hash functions throughput performance
It's probably reasonable to mention BLAKE2b, which seems to be faster in software than even MD5 due to its design around SIMD processors.
Oct
10
comment Encrypting files with known headers
I'm not going to debate the necessity of authenticated encryption for virtually all real-world contexts with you here. If you don't understand its importance, clearly nothing I say here will convince you otherwise. Suffice it to say, if you are not an expert and choose to do it on your own, you are going to get important details wrong. GPG for data at rest, TLS for data in motion should not be a controversial opinion.
Oct
10
comment Encrypting files with known headers
@woliveirajr Knowing the first bytes of the plaintext utterly devastates that scheme, in fact. No, you can't decrypt the rest, but you can trivially manipulate the underlying data for the part of the plaintext you do know. Did you perhaps forget to include an authenticator in your encryption scheme?
Oct
10
comment Encrypting files with known headers
@TerryChia And yet, as I'm sure you're familiar, people come to Crypto.SE daily using the bad ones. By OP's very question, he is clearly a novice and thus overwhelmingly likely to get it wrong.
Oct
10
comment Encrypting files with known headers
I never used the words "encryption scheme" as you quote me. I have provided evidence for my claims. And on top of it all, I am actually correct. Using cryptographic primitives like AES directly as a novice is the path to ruin. Are you downvoting me because you're upset I've contradicted your answer, or because you think I am actually wrong?
Oct
10
answered Encrypting files with known headers
Oct
10
comment Encrypting files with known headers
If the private key is the same, and the first n blocks of the file have the same data, then the first n blocks of the ciphertext will be identical in any scheme not involving an IV (which you never mentioned in your answer).
Oct
9
comment Infinite depth BLAKE2b tree hashing
@CodesInChaos Any thoughts? I know you had a hand in BLAKE2.
Oct
9
revised Infinite depth BLAKE2b tree hashing
added 265 characters in body
Oct
9
asked Infinite depth BLAKE2b tree hashing
Oct
4
comment Using multiple secret keys
Why wouldn't a slow KDF, like PBKDF2, stymie brute force attacks?
Oct
4
awarded  Yearling
Oct
1
comment When NIST disallows the use of 1024-bit keys, what effect will that have on SHA-3 (with max. 512 bits)?
1024-bit RSA keys have nothing to do with 512-bit hash algorithms.
Sep
30
comment Who's talking to who encryption - does this concept work?
You appear to be reinventing the concept of onion routing.
Sep
22
comment Reusing keys with AES-CBC
To clarify @Maeher's point, the problem is re-use of the same IV with a given key. Reusing the same key with AES-CBC is not necessarily problematic, but reusing the same key with the same nonce is. As a side note, if at all possible you should be using an authenticated encryption mode like AES-GCM.
Sep
22
comment Using Whirlpool hashing function to encrypt data
Strong, fast, and well-studied encryption algorithms like AES-GCM exist. Why consider something like this in the first place?
Sep
19
comment Why not the one-time pad with pseudo-number generator
Let $m \in \left\{ { \text{yes}, \text{no!} } \right\}$, $k$ be a random key, and the ciphertext $c = k \oplus m$. You wish to modify $c$ so that it decrypts to the other possible plaintext. Let $x = \text{yes} \oplus \text{no!}$. Calculate $c^\prime = c \oplus x$. This is your new ciphertext. Note that if $m = \text{yes}$, $c' = k \oplus \text{yes} \oplus \text{yes} \oplus \text{no!} = k \oplus \text{no!}$ and if $m = \text{no!}$, $c' = k \oplus \text{no!} \oplus \text{no!} \oplus \text{yes} = k \oplus \text{yes}$.
Sep
17
comment How much entropy is lost via hashing when you add known or low entropy data?
Excellent answer.
Sep
13
comment Can I dynamically calculate an appropriate number of iterations for PBKDF2 based on the system time, rather than using a fixed value?
The typical formula I've seen is $64,000^{\text{today} - \text{2012-01-01}}$. But as I argue in my answer, formulae like this one should be used to calculate the minimum, and the correct approach is to benchmark.