加密技术

流密码是对称密码算法,是私钥密码系统中的一个分组。流密码的转换是随”变换”而变换的,像水流一样源源不断的产生,是对称密码算法,从明文输入流逐位或逐字节产生密文输出。

什么是流密码?

流密码是私钥体质下的一个对称加密,类似于简单算法的”一次一密”,不过”一次一密”是真正的理想密码只要不能获得密码乱码本,就是完全保密。流密码使用的是伪随机数流,利用密钥产生一个密钥流Z=Z1Z2Z3…,然后利用此密钥流依次对明文X=X0X1X2…进行加密,这样产生的密码就是序列密码,也称为流密码。

设计流密码的因素

  • 加密序列的周期要长,若出现重复的周期过短,容易被破解;
  • 密钥流应该尽可能地接近真正随机数流的特征;
  • 密钥长度要长,以避免琼穷举攻击。

流密码就是使用较短的一串数字(叫它密钥吧),来生成无限长的伪随机密码流,当然事实上只需要生成和明文长度一样的密码流就够了。

流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如0,1数字),字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流实现。

通俗的讲,产生一串序列来作为加密的密钥流,从密钥流中按规则依次选取密钥,这些不同的密钥分别来加密每个字符。

流密码的强度依赖于密钥序列的随机性和不可预测性,核心在于密钥流生成器的设计,要保证收发两端密钥流的精确同步。

  • 种子密钥
  • 信息流(明文流)
  • 密文流
  • 密钥流

由此流密码的基础上,用较短的密钥产生无限长的密码流的方法非常多,其中有一种就叫做RC4。