Information Security Stack Exchange is a question and answer site for information security professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm working on an implementation of Klein's wep attack.

For that, I've set up a router with wep encryption and collected 50,000 unique IVs from it. I tried only calculating K[0], meaning - the first byte of the key.

I run on all my IVs and calculated the equation as the paper says while keeping a record of the number of times each calculated value was repeated. And finally I am printing the top 30 results.

My problem:

  1. The correct first byte of the key is not in one of the first 30 results.
  2. I keep getting negative numbers as keys.

Maybe there is something wrong with my calculation? Maybe I'm not understanding the algorithm properly?

I will put my code here if needed, but since the calculations are fairly simple, I think there is something else wrong.

I am using this as reference:

share|improve this question
If the negative numbers are not expected, are you sure you aren't using signed where you should be using unsigned? – Jan Schejbal Jun 29 '14 at 19:51

I'm not a crypto expert, but I have looked into attacks on WEP. Assuming you've implemented the calculations correctly, there are two possible issues I'm aware of:

  1. Some keys are unusually difficult to crack, requiring far more IVs than normal. You may have picked one of them.
  2. The attack is a known-plaintext attack. Traditionally, the attack is performed using ARP packets because they can be identified easily and have a known prefix. The attack won't work if you've got more than a few non-ARP packets mixed in with your ARP packets.
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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