信息安全导论4流密码.ppt

信息安全导论4流密码

流密码 流密码介绍 流密码的分类 一种流密码算法——RC4 流密码的设计准则 流密码和分组密码的比较 混沌变码本流密码 流密码的一般性描述 序列密码的思想来源于早期著名的一次一密,其核心是通过固定算法,将一串短的密钥序列扩展为长周期的密钥流序列,且密钥流序列在计算能力内应与随机序列不可区分。 流密码的一般性描述 为理解流密码(第二类对称密钥算法),你首先需要理解一种叫做一次一密的密码技术,该技术在间谍中很流行。在该技术的一个变形中,生成一大堆随机数字,每个都在0-25之间。然后打印2份该序列。这就是“密码本”。其中,一份副件留在总部,间谍带走另一份。为了将信息送回总部,间谍对信息中的每个字母都用密码本上的一个数字进行加密。消息的第一个字母用密码本上的第一个数字加密,第二个字母用第二个数字加密,等等。 加密是这样一件事情:将由字母指定的一个数字值与相应数字相加。由字母指定的数字值是这样的:如果明文字母是G,密码本上的数字是11,则密文字母为R(R是G后面的第11个字母,或者说G十11=R)。如果明文字母是Y而密码本上的数字为4,密文的字母就是C.或Y十4=C(Y,Z,A,B,C;当到了字母表最后时,你就从A重新开始)。 当总部得到加密的消息时,翻译者只需将算法反过来使用便可。如果密文是B而密码本中的相关数是11,则计算R一11=G。若间谍和总部使用相同的密码本,则通信将成功。 下图显示了一次一密的一个例子。密码本从何而来? 流密码与一次一密类似。为加密数据,算法生成一个基于密钥的密码本。这个密码本可以足够大。算法将用密码本和明文进行异或运算。 用一次一密的技术,间谍和总部预先生成一个密码本(实际上,可能是很多密码本)。流密码当且仅当需要时才生成一个密码本。在密码学界,该“密码本”被称为密钥流(key stream)。一个真正的密码本应是随机的,而流密码生成的是伪随机值,所以在技术上不能称之为密码本。 大多数流密码是这样工作的。首先,利用密钥建立—个密钥表。然后加密数据:先取一个明文字节;之后在密钥表中取得密钥流的一个字节,将其与该明文字节异或;然后扔掉流密钥的字节。 然后你再取得数据的下一个字节,重复上述步骤。密钥表以及密钥流,都不依赖于输入的数据。 在一次一密的例子中,间谍通过将数字加到字母上实现数据的加密,而总部则通过减去而进行解密。因为加密和解密是相同的运算,所以流密码使用异或运算。这里只存在一个程序而不是两个程序。 流密码的形式化描述 流密码的基本思想是利用密钥k产生一个密钥流 ,并使用如下规则加密明文 得到密文 。 密钥流由密钥流发生器f产生: ,这 里 是加密器中的记忆元件(存储器)在时刻i的 状态,f是由密钥k和 产生 的函数。 流密码 流密码介绍 流密码的分类 一种流密码算法——RC4 流密码的设计准则 流密码和分组密码的比较 混沌变码本流密码 流密码的分类 根据加密器中的记忆元件的存储状态σi是否依赖于输入的明文字符,流密码可进一步分成同步和自同步两种。σi独立于明文字符的叫做同步流密码,否则叫做自同步流密码。 同步流密码中,由于 与明文字符无关,密文字符 也不依赖于此前的明文字符。因而,可将同步流密码的加密器分成密钥流生成和加密变换器两个部分。如果与上述变换对应的解密变换为 ,则可给出同步流密码的模型。 密钥产生器最初是由 种子密钥启动的。 同步流密码的密钥序列 K=k1 k2 … 是独立于消息序列产生的。产生它的算法必须是确定性的,这样才能保证解密时可以重新产生它,如果把K存贮起来,则没有这个要求,但存贮和传送长密钥序列K是不切实际的。所以,不能使用计算机的任何随机性质来设计产生密钥序列的算法。 如果密钥序列重复或者有冗余,流密码往往是可以破译的。为了使它不可破译,密钥序列必须是长度等于明文的”随机”序列。显然,密钥各元素在密钥序列中应该均匀分布,并且没有校长的重复子序列或其他样本。 任何有限算法都不能产生真正的随机序列。虽然不排斥由伪随机数发生器也能生成有实用价值的密钥序列,但常用的同余类发生器是不能胜任这项工作的,甚至性能很好的伪随机数发生器也不见得总能产生安全的密钥序列,线性反馈移位寄存器就是一个例子。只要知道一小段明文及其相应的密文,密码分析者就能很容易地导出整个密钥序列。由于线性反馈移位寄存器的情况反映了密钥产生器危机四伏的状况,所以在介绍较好的方法之前

文档评论(0)

1亿VIP精品文档

相关文档