一次一密:一种理想的加密方案
- 明文:x=x0x1x2…
- 密钥:k=k0k1k2…
- 密文:y=y0y1y2…
- 加密函数:yi=xi+ki(mod26)
- 解密函数:xi=yi-ki(mod26)
- 其中密钥为随机产生的,而且只能使用一次
优点:
- 密钥随机产生,仅使用一次
- 无条件安全(无法分析)
- 加密和解密为加法运算,效率较高
缺点:
密钥长度过长, 至少与明文长度一样长,密钥共享困难
流密码:是一种重要的密码体制
明文消息按字符或比特逐位加密
流密码也称序列密码
密钥流可以用移位寄存器来产生,也促进了线性寄存器和非线性寄存器的发展
流密码主要是基于硬件实现
密钥流
流密码的基本思想
利用密钥k产生一个密钥流z=z0z1z2…,并使用如下规则对明文串 x=x0x1x2…加密: y=y0y1y2…=Ez0(x0)Ez1(x1) Ez2(x2)…,
##密钥流
由密钥流发生器 f 产生:zi=f(k,σi)
σi是加密器中的记忆元件在时刻 i 的状态
f 是由k, σi 产生的函数
同步流密码
内部记忆元件的状态σi独立于明文字符的叫做同步流密码,否则叫 做自同步流密码。
在同步流密码中,由于zi=f(k,σi)与明文字符无关,因而此时密文字 符yi=Ezi(xi)也不依赖于此前的明文字符。因此,可将同步流密码的 加密器分成密钥流产生器和加密变换器两个部分。
二元加法流密码是目前最为常用的流密码体制,其 加密变换可表示为yi=zi⊕xi。
流密码的需求
一次一密密码是加法流密码的原型 如果密钥用作滚动密钥流,则加法流密码就退化成一次一密密码。
- 密码设计者的最大愿望是设计出一个滚动密钥生成器,使得密钥经其扩展成的密钥流序列具有如下性质:
极大的周期
良好的统计特性
抗线性分析