和WEP加密说再见(二)

上次详细分析了WEP使用的RC4加密算法,这次我们主要讲讲WEP协议时如何使用RC4来解密的,这个其实我很久以前就讲过了,大家可以翻翻前面的文章,今天就再重复下,WEP使用RC4来加密,主要可以分为以下几个步骤:
(1) 客户端计算原始数据包中明文数据(我们记做P)的32位CRC循环冗余校验码,实际上是计算整数检查向量(我们记做ICV),(又一堆专业术语,大家不理解没关系),这两个,也就是P和ICV构成我们要传输的数据(P+ICV),这才是需要加密的真正的明文。

   (2) 我们用40位的密钥和24位的初始向量(IV)构成种子密钥(假设我们采用64位加密)。输入到采用RC4算法的伪随机数发生器,生成与我们要传输的明文(P+ICV)等长的随机数,我喜欢把这个称作为真正的密钥(Real Key)。我们输入的种子不同,生成的随机数也是不同的。这个类似于现在很多 软件都靠MD5散列来检验有没有被人篡改过。又扯远了。回到正题。

   (3) 将我们得到的随机数和传输明文数据(P+ICV)按位进行异或操作(所谓异或操作,就是比较相同位上的数字,如果相同值为0,不同则为1),得到密文(我们记做C),然后将前面的24位初始向量和密文(C)组合在一起,得到要传输的密文(IV+C)。

    解密的过程只是个简单的取反。就是AP收到数据后,将得到的(IV+C),分解,提取IV,然后将自己所持有的密钥Key组合在一起,输入到采用RC4算法的伪随机数发生器,得到解密的随机数,实际上和加密的随机数是一样的。然后将解密的随机数和密文(C)做异或操作,就得到了明文(P+ICV);
   下次,我们讲主要讲这个RC4算法的漏洞,以及如何来破解WEP密钥!

你可能感兴趣的:(安全,wifi,无线,黑客,休闲)