RC4密钥调度后排列揭示密钥的分析
1. 引言
自RC4算法诞生已有二十年。尽管之后出现了多种其他流密码算法,但RC4因其简单性、易实现性、速度和效率,仍是最流行且最常用的流密码算法。它广泛应用于安全套接层(SSL)等协议中,用于保护互联网流量,还被集成到微软Windows、莲花Notes、苹果AOCE、甲骨文安全SQL等系统中。尽管该算法能用不到十行代码描述,但多年来其优缺点一直备受关注。本文将详细研究RC4的密钥调度算法(KSA),并探讨其对RC4安全性的影响。
2. RC4基础回顾
RC4流密码由Ron Rivest于1987年为RSA数据安全公司设计,直到1994年才成为公开算法。它使用一个长度为N(通常N = 256)的S盒S = (S[0], …, S[N - 1]),每个位置为8位。S初始化为恒等排列,即S[i] = i(0 ≤ i ≤ N - 1)。使用一个长度为l字节(通常5 ≤ l ≤ 16)的密钥来打乱这个排列。一个数组K = (K[0], …, K[N - 1])用于存储密钥,每个位置为8位,密钥会在数组K的密钥长度边界处重复。
RC4密码有两个组成部分:密钥调度算法(KSA)和伪随机生成算法(PRGA)。KSA将随机密钥K转换为0到N - 1的排列S,PRGA使用这个排列生成伪随机密钥流字节。在发送端,密钥流输出字节z与消息字节进行异或运算生成密文字节;在接收端,z再次与密文字节异或得到原始消息字节。
相关的加法运算通常是模N加法,除非另有说明。
KSA算法 :
初始
超级会员免费看
订阅专栏 解锁全文
53

被折叠的 条评论
为什么被折叠?



