【安全课件】第14讲—序列密码
- 格式:pptx
- 大小:185.08 KB
- 文档页数:19
序列密码算法随着互联网的飞速发展,信息安全问题越来越受到人们的关注。
在信息安全领域中,密码学是一门重要的学科,其研究的对象就是如何保护信息的机密性、完整性和可用性。
密码学中的一种重要技术就是密码算法,而序列密码算法就是其中的一种。
序列密码算法是一种基于序列的密码算法,它使用一个生成器生成一个伪随机序列,然后将该序列与明文进行异或操作,得到密文。
在解密时,使用相同的生成器生成相同的伪随机序列,再将密文与该序列进行异或操作,即可得到明文。
因此,序列密码算法的安全性主要依赖于伪随机序列的质量。
序列密码算法有很多种,其中最常见的是RC4算法。
RC4算法是一种流密码(Stream Cipher)算法,它采用变长密钥,最长可达256位,但通常使用40位或128位密钥。
RC4算法的主要流程如下:1. 初始化阶段:生成一个S盒(S-Box)和一个T盒(T-Box)。
2. 密钥调度阶段:使用密钥填充S盒和T盒。
3. 伪随机数生成阶段:使用S盒和T盒生成伪随机数序列。
4. 加密阶段:将伪随机数序列与明文进行异或操作,得到密文。
5. 解密阶段:使用相同的密钥和相同的S盒和T盒生成相同的伪随机数序列,再将密文与该序列进行异或操作,即可得到明文。
RC4算法具有以下优点:1. 加密速度快:由于RC4算法采用流密码算法,每次只需要处理一位明文,因此加密速度非常快。
2. 实现简单:RC4算法的实现非常简单,只需要一些基本的位运算和数组操作即可。
3. 可逆性强:RC4算法的加密和解密使用相同的密钥和相同的算法,因此具有强的可逆性。
但是,RC4算法也存在一些缺点:1. 密钥长度较短:RC4算法的密钥长度最长只能达到256位,这使得它的安全性受到了一定的限制。
2. 安全性不足:由于RC4算法的S盒和T盒生成方式不够随机,因此可能存在安全漏洞,容易受到攻击。
为了弥补RC4算法的不足,人们提出了很多改进的序列密码算法,如Salsa20、ChaCha20等。
序列密码设计思想简述序列密码是通过位方式操作,采用一次一密的加密方式,如果产生的密钥序列为随随机序列,理论上是不可破译的,但是这会造成密钥长度与明文一样长,存储和传递密钥的代价很大,所以在实际应用中很少使用。
实际的做法是根据一组密钥源和一个密钥序列产生器(KG)生成伪随机密钥序列,这样就解决了由于密钥过长产生的存储和传递问题,问题的关键在于KG的设计,使其产生的k伪随机序列尽可能满足随机性。
所有的密钥序列,都是由种子密钥K经过变化产生的,密钥亮的大小取决于K的变化量的大小。
但是K毕竟是有限的位,其变化量也是有限的不会超过n2,为了更好地抵抗统计分析,尽可能的使k的周期最大化,且k的变化具有均匀分布的特性,所有的变化都可能出现,且出现的概率相同。
由k推测KG或K在计算上不可行,满足Shannon 混乱原则和扩散原则。
能抵抗各种已知攻击。
KG应该具有可重复性,即输入K相同不论何时何地输出的k应该相同,以上所述是KG的设计原则。
KG设计完成后,还需要利用一些方法对其产生的k进行随机性、混乱性、扩散性、密码分析等各种检测,检测KG的设计是否满足上述的原则。
驱动子系统f,类似于分组密码中的P盒,属于线性变换,由种子密钥K控制,设计简单,无法单独完成混淆,无法抵御线性分析和统计分析,f的作用在于生成多个统计性能良好(大周期、均匀分布)的子序列,线性变换还有扩散的作用,即生成序列中一位的变化造成子序列中大量位的变化,子序列中的任何一位与生成序列中的每一位存在关系。
非线性组合子系统F,类似于分组密码中的S盒,由种子密钥K控制,对f提供的多个子序列进行非线性组合,使其线性复杂度实现最大化,提供序列的混乱性,使明文、密文、密钥之间的关系尽可能的复杂,防止线性攻击和统计分析。
另外f与F要相互独立,F不能泄漏任何f的结构信息。
序列密码与分组密码的最大不同之处在于,序列密码具有记忆性,分组密码没有记忆性。
序列密码是有状态的,与加密到第几步有很大关系,也叫状态密码,而分组密码的每个分组的加密密钥都是一样的,如果对分组密码的密钥产生加入记忆模块,那么就变成了序列密码。
旺旺:旺我旺:能我过能软过软考考主要内容序列密码的基本概念 序列密码的分类 线性移位寄存器序列 线性移位寄存器的输出序列求解旺旺:我能过软考序列密码的基本概念版权所有:我能过软考香农证明了“一次一密”不可破解。
用序列密码模仿“一次一密”密码。
为了安全,序列密码应使用尽可能长的密钥,但是,长密钥的存储、分配存在困难。
设计一个好的密钥序列产生算法,利用较短的种子密钥,产生长的密钥序列。
作为核心密码的主流密码3 旺旺:我能过软考序列密码的分类 同步序列密码自同步序列密码 1)同步序列密码 密钥序列产生算法与明密文无关 产生的密钥序列和明密文无关 在通信中,通信双方必须保持精确的同步 不存在错误传播版权所有:我能过软考输出反馈模式OFB4 旺旺:我能过软考同步序列密码的失步分析版权所有:我能过软考设密c=c1, c2, c4, c5…., cn-1, cn文⊕ k=k1, k2, k3, k4…., cn-1, cn失 步m=m1,m2, X,X…., X, X 可以检测插入、删除、重播等主动攻击(c3 丢失) (密钥正确)5 旺旺:我能过软考同步序列密码错误传播分析版权所有:我能过软考c=c1, c2, c3, c4…., cn-1, cn ⊕ k=k1, k2, k3,k4…., cn-1, cnm=m1,m2,X,m4 …,mn-1 ,mn-1 不存在错误传播(c3 错误) (密钥正确)6 旺旺:我能过软考自同步序列密码错误传播分析版权所有:我能过软考 ci错误只影响n个密钥,导致n位错误,有限的错误传播 同步丢失,会影响n位解密,然后重新建立同步, 如: 电视信号、手机通信 难于检测出主动攻击7 旺旺:我能过软考线性移位寄存器序列 1、移位寄存器如果反馈函数f(S0、 S1 、 … 、 Sn-1)是线性函数,则 称移位寄存器为线性移位寄存器;否则,称为非线性 移位寄存器。
序列密码内容提要(或本章引言)使用流密码对某一消息m执行加密操作时一般是先将m分成连续的符号(一般为比特串),m=m1m2m3……;然后使用密钥流k=k1k2k3……中的第i 个元素k i对明文消息的第i个元素m i执行加密变换,i=1,2,3,……;所有的加密输出连接在一起就构成了对m执行加密后的密文。
序列密码以其易于实现、加解密快速、无错误传播、应用协议简单等优点,在政府、军事、外交等重要部门的保密通信以及各种移动通信系统中被广泛使用。
本章重点♦一次一密加密体制;♦线性反馈移位寄存器;♦基于线性反馈移位寄存器的伪随机序列生成器;♦伪随机序列的安全性;♦m序列;♦RC4、A5算法。
2.1 概述 (2级标题)按照对明文消息加密方式的不同,对称密码体制一般可以分为两类:分组密码(block cipher)和流密码(stream cipher)z分组密码:对于某一消息m,使用分组密码对其执行加密操作时一般是先对m进行填充得到一个长度是固定分组长度s的整数倍的明文串M;然后将M划分成一个个长度为s的分组;最后对每个分组使用同一个密钥执行加密变换。
z流密码(也称序列密码):使用流密码对某一消息m执行加密操作时一般是先将m分成连续的符号(一般为比特串),m=m1m2m3……;然后使用密钥流k=k1k2k3……中的第i个元素k i对明文消息的第i个元素m i执行加密变换,i=1,2,3,……;所有的加密输出连接在一起就构成了对m执行加密后的密文。
与分组密码相比,序列密码受政治的影响很大,目前应用领域主要还是在军事、外交等部门。
虽然也有公开设计和研究成果发表,但作为密码学的一个分支,流密码的大多设计与分析成果还是保密的。
目前可以公开见到、较有影响的流密码方案包括A5、SEAL、RC4、PIKE等。
本章主要讨论流密码加密体制,关于分组密码的知识将在下一章给出。
容易想到,使用流密码对消息m执行加密时,最简单的做法就是让密钥流中的第i个比特与明文串中的对应比特直接做XOR运算,即图2-1 简单的流密码加密结构对应的解密运算即为:图2-2 简单的流密码解密结构由于实现XOR逻辑运算非常简单,因此这样的加解密操作将是快速有效的。