Live data from Hacker News

Cracking a 512-bit DKIM key for less than $8 in the cloud

dmarcchecker.app

431–433 of 433 posts

Re: Cracking a 512-bit DKIM key for less than $8 in the cloud

#431
post #149
post #105

> Although most providers correctly identified the 512-bit key as insecure and rejected our DKIM signature, three major providers — Yahoo Mail, Mailfence, and Tuta — reported a dkim=pass result. Did google really FAIL because of DKIM signature being insecure or because SPF failed?

The DKIM verification failed with the result "dkim=policy (weak key)," as it should according to RFC 8301: "Verifiers MUST NOT consider signatures using RSA keys of less than 1024 bits as valid signatures."

thanks, that's also what I was not understanding from the article

Re: Cracking a 512-bit DKIM key for less than $8 in the cloud

#432

Earlier quoted context omitted.

Did you? you linked https://en.wikipedia.org/wiki/General_number_field_sieve already That gives the worst case complexity right at the top. > 2^16 [1] 65536 > n > exp(((64/9)^(1/3)+1) (log(n)^(1/3)) (log(log(n))^(2/3))) [1] 38178499 > 38178499/65536 [1] 582 2^16 -> 2^32 ~ x 2^9 > n > exp(((64/9)^(1/3)+1) (log(n)^(1/3)) (log(log(n))^(2/3))) [1] 84794674511 > 84794674511/38178499 [1] 2221 2^32-> 2^64 ~ x 2^11 > n > exp…

function ops(n) { return Math.exp (((64/9) * (1/3) + 1) * (Math.log(n) * (1/3)) * (Math.log(Math.log(n)) * (2/3))) } > ops(2*16) 121106.42245436447 > ops(2*32) 38178499.24944067 > ops(2*32) / ops(2*16) 315.24751929508244 So if ops(2*16) costs $8, then ops(2*32) costs $8 * ops(2*32) / ops(2*16) = $2521.98. Far more than $8^2. The cost reaches the millions for 64 bits, and ~$165 trillion for 128 bits: > 8 * ops(2*64) /…

Note: Y combinator messed up my formatting in the above example, many asterisks * are supposed to be double asterisks (expoentiation in JS)

Re: Cracking a 512-bit DKIM key for less than $8 in the cloud

#433

Earlier quoted context omitted.

function ops(n) { return Math.exp (((64/9) * (1/3) + 1) * (Math.log(n) * (1/3)) * (Math.log(Math.log(n)) * (2/3))) } > ops(2*16) 121106.42245436447 > ops(2*32) 38178499.24944067 > ops(2*32) / ops(2*16) 315.24751929508244 So if ops(2*16) costs $8, then ops(2*32) costs $8 * ops(2*32) / ops(2*16) = $2521.98. Far more than $8^2. The cost reaches the millions for 64 bits, and ~$165 trillion for 128 bits: > 8 * ops(2*64) /…

->The cost reaches the millions for 64 bits, and ~$165 trillion for 128 bits: meanwhile 512 bits costs $8 But you just keep believing 128 bits costs $165 trillion ROFL. >> ops(2 * 16) >121106.42245436447 >> ops(2 * 32) >38178499.24944067 >> ops(2 * 32) / ops(2 * 16) >315.24751929508244 So if ops(2 16) costs $8, then ops(2 32) costs $8 * ops(2 32) / ops(2 16) = $2521.98. Far more than $8^2. And I said $256, because as…

I was going by the example cost of $8 for 16 bits you stated in an earlier comment:

"2^16 = 65536

...

so if a search space of 65536 costs you $8"

If you think the numbers I'm arriving at are wrong then can you specify exactly where my cost function goes wrong?

Post reply on HN