【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的优点:算法描述简单、实现容易快速、使用非线性结构、安全性高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值