rc4属于对称密码中的序列密码(流密码),是可变密钥长度,面向字节操作的流密码。
初始化
- 准备一个256字节的S盒(S-Box),并根据密钥对其进行初始化。S盒包含0到255的所有可能值的排列。
- 通过密钥调度算法(KSA),将密钥的字节与S盒中的元素进行交换,并生成初始的密钥流。
加密
- 根据生成的密钥流,将明文逐字节与密钥流进行异或操作,得到密文。
密钥流生成
- 在加密阶段之前,需要生成足够的密钥流数据。
- 使用伪随机数生成算法(PRGA),将S盒中的元素进行进一步的置换和交换,生成伪随机的密钥流。
解密
- 解密与加密相同,将密文与生成的密钥流进行异或操作,得到原始的明文
漏洞
- 受戒礼攻击:RC4加密算法易受到“受戒礼”(Beast)攻击的影响。这种攻击允许攻击者在特定环境下,仅通过嗅探监听就可以还原采用RC4保护的加密信息中的纯文本。这意味着,如果SSL/TLS协议使用RC4作为加密算法,攻击者可以窃取账户、密码、信用卡信息等重要敏感信息,从而导致严重的安全泄露。
- 中间人攻击(Man-in-the-middle):除了受戒礼攻击外,RC4还面临中间人攻击的威胁。这种攻击允许攻击者在通信双方之间拦截和篡改传输的数据,从而实现会话劫持。这种攻击不仅危及通信的保密性,还可能破坏通信的完整性。