I have gone through the paper (PDF) available at krackattacks.com.

However, from what I understood you force a key reinstallation causing you a nonce reuse over 2 blob of data. As it is a keystream, you might be able to decrypt the data.

Limitations are:

  1. You MUST know clear text of one of both data
  2. It is one shot as the counter gets incremented, you need to perform another key reinstallation to be able to decrypt further data

This doesn't sound very practical in my point of view, am I missing something?


It's depressingly practical. And you can reset the key multiple times, getting the same key stream every time. So if the third or forth time you get guessable plain text content in different parts of the key stream you can combine this until you have everything. Your computer does all kinds of communications, it polls stuff, it makes DNS lookups it uses standard headers and standard protocols all of this produce lots of guessable data. On a not busy network we can also use packet sizes to help us find our guessable data. In reality finding known plain-text is not difficult.

| improve this answer | |
  • 1
    $\begingroup$ I voted this up, but note that with an N-time pad you don't always need to precisely know the plaintext - you can just XOR the ciphertext streams together until you get anything that makes sense. $\endgroup$ – Maarten Bodewes Oct 18 '17 at 21:36
  • $\begingroup$ If we are encrypting English text, sure getting a bunch of pairs of xored messages is fine. You need at least some amount of guessability. Verifiability isn't enough I believe, If very short sections are verifiable you are fine. But if it's all random data even with checksums added every block I'm afraid you are out of luck. $\endgroup$ – Meir Maor Oct 19 '17 at 3:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.