【RC4流密码】实现

RC4流密码的实现:
1、初始化S盒
2、利用密钥打乱S盒
3、生成伪随机密钥流
4、加解密

1、初始化S盒
-S盒是[0,255]->[0,255]的双射。
双射是指,从x域到y域,x与y一一对应,每个y必然被且被一个x指向。

-定义S盒:

unsigned char S[256]

-初始化S盒:

for i from 0 to 255
    S[i]=i

2、利用密钥打乱S盒(keylength一般取[5,16]之间) key[i]是密钥

j=0
for i from 0 to 255
{
    
    
    j=(j+S[i]+key[i mod keylength]) mod 256
    交换S[i],S[j]}

交换是非线性操作

3、生成伪随机密钥流,假设明文长度为n

i=0,j=0
for t from 0 to n-1
{
    
    
    i=(i+1) mod 256         ---1
    j=(j+S[i]) mod 256      ---2
    交换S[i],S[j]            ---3
    K=S[(S[i]+S[j]) mod 256]   ---4
    输出k}

其中1、2、3步骤的目的是置乱
3、4是非线性操作

RC4的优点:算法描述简单、实现容易快速、使用非线性结构、安全性高

猜你喜欢

转载自blog.csdn.net/xxxli_/article/details/126922529
今日推荐