包括初始化算法和僞隨機子密碼生成算法(假設:S-box長度和密鑰長度均爲n)
----初始化算法
for (i=0; i<n; i++) {
s[i]=i; //i確保S-box的每個元素都得到處理
}
j=0;
for (i=0; i<n; i++)
{
j=(j+s[i]+k[i])%n; //j保證S-box的攪亂是隨機的
swap(s[i], s[j]);
}
----僞隨機子密碼生成算法
i=j=0;
while (明文未結束)
{
++i%=n;
j=(j+s)%n;
swap(s, s[j]);
sub_k=s((s+s[j])%n);
}
得到的子密碼sub_k用以和明文進行xor運算,得到密文
感謝:rc4詳細解釋