RC4加密

作者: 宇文黎琴 | 来源:发表于2017-06-16 10:00 被阅读115次

RC4加密

是一种对称加密。
加密的密钥流和明文一样长
同样的密钥和同样的长度能确定同一个密钥流。

几个关键的理解:
1、密钥流:RC4算法的关键是根据明文和密钥生成相应的密钥流,密钥流的长度和明文的长度是对应的,也就是说明文的长度是500字节,那么密钥流也是500字节。当然,加密生成的密文也是500字节,因为密文第i字节=明文第i字节^密钥流第i字节;

2、状态向量S:长度为256,S[0],S[1].....S[255]。每个单元都是一个字节,算法运行的任何时候,S都包括0-255的8比特数的排列组合,只不过值的位置发生了变换;

3、临时向量T:长度也为256,每个单元也是一个字节。如果密钥的长度是256字节,就直接把密钥的值赋给T,否则,轮转地将密钥的每个字节赋给T;

4、密钥K:长度为1-256字节,注意密钥的长度 keylen 与明文长度、密钥流的长度没有必然关系,通常密钥的长度趣味16字节(128比特)。

RC4被用于为网络浏览器和服务器间通信而制定的SSL/TLS(安全套接字协议/传输层安全协议)标准中,以及作为IEEE 801.11无线局域网标准一部分的WEP(Wired Equivalent Privacy)协议和新的WiFi受保护访问协议(WAP)中


算法描述
算法描述:

1、S和T的初始状态

S中元素的值按升序被置为0-255,同时建立一个临时向量T。将密钥的值循环复制到T向量中。

2、S的初始置换

用T产生S的初始置换,置换伪码如下


  j = 0;

  for (i = 0 ; i < 256 ; i++){

    j = (j + S[i] + T[i]) mod 256;

    swap(S[i] , S[j]);

  }

因为对S的操作仅是交换,S仍然包含所有值为0-255的元素。

3、密钥流的生成

密钥流生成伪码如下

  i , j = 0;

  while (true){

    i = (i + 1) mod 256;

    j = (j + S[i]) mod 256;

    swap(S[i] , S[j]);

    t = (S[i] + S[j]) mod 256;

    k = S[t];

  }
流密码结构图.jpg RC4结构图.jpg

Python小知识

Paste_Image.png

Python知识记录

相关文章

  • Python_RC4Encode

    Python RC4加密 什么是RC4 RC4是美国密码学家罗纳德·李维斯特(Ron Rivest)在1987年设...

  • golang中crypto/rc4包

    rc4包实现了RC4加密算法,参见Bruce Schneier's Applied Cryptography。 t...

  • RC4加解密

    RC4算法rc4是流式加密算法,加密和解密都是按字节逐个处理。设明文是in、密文是out、密钥流是s,对于加密,o...

  • OPENSSL:RC4用法举例

    RC4是密钥流加密算法,明文长度和密文长度相同,加密过程和解密过程也相同。RC4加解密[https://www.j...

  • 加密解密

    加密解密 algorithm: 算法有很多,常用的里面,aes-256-cbc,rc4加密解密速度比较快key: ...

  • android 3DES加密和MD5加密

    经常使用加密算法:DES、3DES、RC4、AES,RSA等;对称加密:des,3des,aes非对称加密:rsa...

  • Android 加密解密的几种方式总结

    经常使用加密算法:DES、3DES、RC4、AES,RSA等; 对称加密:des,3des,aes 非对称加密:r...

  • RC4加密

    RC4加密 是一种对称加密。加密的密钥流和明文一样长同样的密钥和同样的长度能确定同一个密钥流。 几个关键的理解:1...

  • python实现RC4加密算法

    1. 背景介绍 1.1 RC4算法 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法...

  • Android中的证书和签名

    一、加密算法 对称加密:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJ...

网友评论

      本文标题:RC4加密

      本文链接:https://www.haomeiwen.com/subject/mippqxtx.html