序列密码即流密码,它属于对称密码算法。序列密码实现容易、硬件操作方便、加解密速度快、不存在或仅有部分错误传播,所以在现实应用中,尤其在专用或机密机构里有好处。
1949年,Shannon证明了只有一次一密的密码体制是绝对安全的,这对研究序列密码技术提供了足够的支持,发展序列密码方案是试着仿照一次一密系统,也能说“一次一密”的密码方案为序列密码的初步模型。若序列密码用的确实是随机方式的、和消息流一样长的密钥流,那么这个时候的序列密码即为一次一密的密码体制。如果可以以一种方式产生一随机序列,这一序列由密钥确定,则用这样的序列就能加密,即把密钥、明文用连续的符号或二进制表示,对应起来加密。
序列密码将明文消息序列m=m1,m2,…用密钥流序列k=k1,k2,…逐位加密,得密文序列c=c1,c2,…,其中加密变换为Ek:Ci=Ek(m)。若记c=Ek(m),其解密变换为Dk:mi=Dk(ci),记为m=Dk(c)。
在实用的序列密码中,加密变换常用二元加法运算,即
Ci=mi⊕ki,mi=ci⊕ki
其中kI为密钥序列生成器的初始密钥(种子密钥)。为了方便密钥管理,kI一般较短,它的作用是控制密钥序列生成器生成长的密钥流序列k=k1,k2,……。
恢复明文的关键是知道ki,如果“黑客”知道了ki,当然也就知道了mi,所以密码系统的安全性根据密钥流的性能定。当密钥流序列是完全随机序列时,该系统叫做完善保密系统,也就是说是不可破的。然而,在一般的序列密码里,加、解密用的密钥序列为安全的伪随机序列。
近年以来,序列密码的理论有了较大的发展。相对来说,研究分组密码的进度较慢,主要原因有如下几点。
(1)序列密码的密码结构比分组密码简单。
(2)序列密码有比较满意的数学分析工具,像频谐理论和技术、代数等。
(3)分组密码的一个缺点是相同的明文组可能与一样的密文组对应,给密码分析者充分用明文语言的多余度分析产生了可能性,使密文的串检验破译给分组密码的构成了挑战。
(4)现今大多数国家的局势与外交保密通信还是以序列密码为主。