第四讲序列密码体制课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第四讲序列密码体制课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 序列 密码 体制 课件
- 资源描述:
-
1、 密码学中的随机数密码学中的随机数 序列密码的概念序列密码的概念 线性反馈移位寄存器线性反馈移位寄存器 非线性序列简介非线性序列简介 常用序列密码常用序列密码 序列密码的应用序列密码的应用 在密码学都要涉及到随机数?因为许多密码系统的安全性都依在密码学都要涉及到随机数?因为许多密码系统的安全性都依赖于随机数的生成,例如赖于随机数的生成,例如DES加密算法中的密钥,加密算法中的密钥,RSA加密和数字加密和数字签名中的素数。签名中的素数。4.1.1随机数的使用随机数的使用 序列密码的保密性完全取决于密钥的随机性。序列密码的保密性完全取决于密钥的随机性。如果密钥是真正如果密钥是真正的随机数,则这种体
2、制在理论上就是不可破译的。的随机数,则这种体制在理论上就是不可破译的。但这种方式所需但这种方式所需的密钥量大得惊人,在实际中是不可行的。的密钥量大得惊人,在实际中是不可行的。目前一般采用伪随机序列来代替随机序列作为密钥序列,也就目前一般采用伪随机序列来代替随机序列作为密钥序列,也就是序列存在着一定的循环周期。是序列存在着一定的循环周期。这样序列周期的长短就成为保密性这样序列周期的长短就成为保密性的关键。如果周期足够长,就会有比较好的保密性。的关键。如果周期足够长,就会有比较好的保密性。现在周期小于现在周期小于1010的序列很少被采用,周期长达的序列很少被采用,周期长达1050的序列也并不少见。
3、的序列也并不少见。何谓伪随机数生成器(何谓伪随机数生成器(PRNG)?)?假定需要生成介于假定需要生成介于1和和10之之间的随机数,每一个数出现的几率都是一样的。间的随机数,每一个数出现的几率都是一样的。理想情况下,应生理想情况下,应生成成0到到1之间的一个值,不考虑以前值,这个范围中的每一个值出现之间的一个值,不考虑以前值,这个范围中的每一个值出现的几率都是一样的,然后再将该值乘以的几率都是一样的,然后再将该值乘以10。由任何伪随机数生成器返回的数目会受到由任何伪随机数生成器返回的数目会受到0到到N之间整数数目的之间整数数目的限制。限制。因为常见情况下,伪随机数生成器生成因为常见情况下,伪随
4、机数生成器生成 0 0 到到 N N 之间的一个之间的一个整数,返回的整数再除以整数,返回的整数再除以 N N。可以得出的数字总是处于可以得出的数字总是处于 0 0 和和 1 1 之之间。间。对生成器随后的调用采用第一次运行产生的整数,并将它传给对生成器随后的调用采用第一次运行产生的整数,并将它传给一个函数,以生成一个函数,以生成 0 0 到到 N N 之间的一个新整数,然后再将新整数除之间的一个新整数,然后再将新整数除以以 N N 返回。返回。4.1.2 伪随机数产生器 目前,常见随机数发生器中目前,常见随机数发生器中N是是2321(大约等于(大约等于40亿),对亿),对于于32位数字来说,
5、这是最大的值。位数字来说,这是最大的值。但在密码学领域,但在密码学领域,40亿个数根亿个数根本不算大!本不算大!伪随机数生成器将作为伪随机数生成器将作为“种子种子”的数当作初始整数传给函数。的数当作初始整数传给函数。由由伪随机数生成器返回的每一个值完全由它返回的前一个值所决定。伪随机数生成器返回的每一个值完全由它返回的前一个值所决定。因此,最初的种子决定了这个随机数序列。因此,最初的种子决定了这个随机数序列。如果知道用于计算任何如果知道用于计算任何一个值的那个整数,那么就可以算出从这个生成器返回的下一个值。一个值的那个整数,那么就可以算出从这个生成器返回的下一个值。伪随机数生成器是一个生成完全
6、可预料的数列(称为流)的确定伪随机数生成器是一个生成完全可预料的数列(称为流)的确定性程序。性程序。一个编写得很好的的一个编写得很好的的PRNGPRNG可以创建一个序列,而这个序列可以创建一个序列,而这个序列的属性与许多真正随机数的序列的属性是一样的。的属性与许多真正随机数的序列的属性是一样的。例如:(例如:(1 1)PRNGPRNG可以以相同几率在一个范围内生成任何数字;可以以相同几率在一个范围内生成任何数字;(2 2)PRNG PRNG 可以生成带任何统计分布的流;(可以生成带任何统计分布的流;(3 3)由)由PRNGPRNG生成的数生成的数字流不具备可辨别的模。字流不具备可辨别的模。4.
7、1.3 基于密码算法的随机数产生器 1使用软件方法的随机数产生器使用软件方法的随机数产生器 一个常用的随机数产生器是属于线形拟合生成器一类的。一个常用的随机数产生器是属于线形拟合生成器一类的。这这类生成器相当普遍,它们采用很具体的数学公式:类生成器相当普遍,它们采用很具体的数学公式:Xn+1=(aXn+b)modc即第即第n+1个数等于第个数等于第n个数乘以某个常数个数乘以某个常数a,再加上常数再加上常数b。如果结果大于或等于某个常数如果结果大于或等于某个常数c,那么通过除以那么通过除以c,并取它的余数并取它的余数来将这个值限制在一定范围内。来将这个值限制在一定范围内。注意:注意:a、b和和c
8、通常是质数。通常是质数。2使用硬件方法的随机数产生器使用硬件方法的随机数产生器 目前生成随机数的几种硬件设备都是用于商业用途。目前生成随机数的几种硬件设备都是用于商业用途。得到广泛使得到广泛使用的设备是用的设备是ComScireQNG,它是使用并行端口连接到它是使用并行端口连接到PC的外部设备,的外部设备,它可以在每秒钟生成它可以在每秒钟生成20,000位,这对于大多数注重安全性的应用程序来位,这对于大多数注重安全性的应用程序来说已经足够了。说已经足够了。另外另外Intel公司宣布他们将开始在其芯片组中添加基于热能的硬件公司宣布他们将开始在其芯片组中添加基于热能的硬件随机数发生器,而且基本上不
9、会增加客户的成本。迄今为止,已经交付随机数发生器,而且基本上不会增加客户的成本。迄今为止,已经交付了一些带有硬件了一些带有硬件PRNG的的CPU。4.1.4 伪随机数的评价标准(1)看起来是随机的,表明它可以通过所有随机性统计检验。)看起来是随机的,表明它可以通过所有随机性统计检验。现在的许多统计测试现在的许多统计测试。它们采用了各种形式,但共同思路是它们。它们采用了各种形式,但共同思路是它们全都以统计方式检查来自发生器的数据流,尝试发现数据是否是随全都以统计方式检查来自发生器的数据流,尝试发现数据是否是随机的。机的。确保数据流随机性的最广为人知的测试套件就是确保数据流随机性的最广为人知的测试
10、套件就是GeorgeMarsaglia的的DIEHARD软件包(请参阅软件包(请参阅http:/www.stat.fsu.edu/pub/diehard/)。)。另一个适合此类测试的合理软件包是另一个适合此类测试的合理软件包是pLab(请参请参阅阅http:/random.mat.sbg.ac.at/tests/)。)。(2)它是不可预测的。它是不可预测的。即使给出产生序列的算法或硬件和所有以即使给出产生序列的算法或硬件和所有以前产生的比特流的全部知识,也不可能通过计算来预测下一个随机前产生的比特流的全部知识,也不可能通过计算来预测下一个随机比特应是什么。比特应是什么。(3)它不能可靠地重复产
11、生。)它不能可靠地重复产生。如果用完全同样的输入对序列产生如果用完全同样的输入对序列产生器操作两次将得到两个不相关的随机序列。器操作两次将得到两个不相关的随机序列。4.2 序列密码的概念 序列密码序列密码也称为流密码(也称为流密码(StreamCipher),它是对称密),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领
12、域包括无线通信、外交通信。典型的应用领域包括无线通信、外交通信。1949年年Shannon证明了只有一次一密的密码体制是绝对证明了只有一次一密的密码体制是绝对安全的,这给序列密码技术的研究以强大的支持,序列密安全的,这给序列密码技术的研究以强大的支持,序列密码方案的发展是模仿一次一密系统的尝试,或者说码方案的发展是模仿一次一密系统的尝试,或者说“一次一次一密一密”的密码方案是序列密码的雏形。如果序列密码所使的密码方案是序列密码的雏形。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流,则用的是真正随机方式的、与消息流长度相同的密钥流,则此时的序列密码就是一次一密的密码体制。若能以一
13、种方此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列(密钥流),这一序列由密钥所确定,式产生一随机序列(密钥流),这一序列由密钥所确定,则利用这样的序列就可以进行加密,即将密钥、明文表示则利用这样的序列就可以进行加密,即将密钥、明文表示成连续的符号或二进制,对应地进行加密成连续的符号或二进制,对应地进行加密,加解密时一次处加解密时一次处理明文中的一个或几个比特。理明文中的一个或几个比特。序列密码与分组密码的对比 分组密码分组密码以一定大小作为每次处理的基本单元,而序列以一定大小作为每次处理的基本单元,而序列密码则是以一个元素(一个字母或一个比特)作为基本的密码则是以一个元素(
14、一个字母或一个比特)作为基本的处理单元处理单元。分组密码分组密码使用的是一个不随时间变化的固定变换,具有使用的是一个不随时间变化的固定变换,具有扩散性好、插入敏感等优点;其缺点是:加解密处理速度扩散性好、插入敏感等优点;其缺点是:加解密处理速度慢、存在错误传播。慢、存在错误传播。序列密码与分组密码的对比 序列密码序列密码是一个随时间变化的加密变换,具有转换速度是一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,硬件实现电路更简单;其缺点是:快、低错误传播的优点,硬件实现电路更简单;其缺点是:低扩散(意味着混乱不够)、插入及修改的不敏感性。低扩散(意味着混乱不够)、插入及修改的不敏感性
15、。序列密码序列密码涉及到大量的理论知识,提出了众多的设计原涉及到大量的理论知识,提出了众多的设计原理,也得到了广泛的分析,但许多研究成果并没有完全公理,也得到了广泛的分析,但许多研究成果并没有完全公开,这也许是因为序列密码目前主要应用于军事和外交等开,这也许是因为序列密码目前主要应用于军事和外交等机密部门的缘故。目前,公开的序列密码算法主要有机密部门的缘故。目前,公开的序列密码算法主要有RC4、SEAL等。等。4.2 序列密码模型 序列密码算法将明文逐位转换成密文,如下图所示。序列密码算法将明文逐位转换成密文,如下图所示。m m 密钥流发生器(也称为滚动密钥发生器)输出一系列比特流:密钥流发生
16、器(也称为滚动密钥发生器)输出一系列比特流:K1,K2,K3,Ki。密钥流(也称为滚动密钥)跟明文比特流,密钥流(也称为滚动密钥)跟明文比特流,m1,m2,m3,mi,进行异或运算产生密文比特流。进行异或运算产生密文比特流。加密:加密:Ci=mi Ki 在解密端,密文流与完全相同的密钥流异或运算恢复出明文流。在解密端,密文流与完全相同的密钥流异或运算恢复出明文流。解密:解密:mi=Ci Ki 显然显然,mi Ki Ki=mil 序列密码体制的安全性序列密码体制的安全性 当流钥序列是具有均匀分布的离散无记忆随机序列时,在理论上是不可破译的。l 实用的困难性实用的困难性 真正的具有均匀分布的随机序
17、列是不可能重复产生的 密钥序列长(至少与明文序列一样长),其管理(存储、分配)难。序列密码一般模型 事实上,事实上,序列密码算法其安全性依赖于简单的异或运算和一次序列密码算法其安全性依赖于简单的异或运算和一次一密乱码本。一密乱码本。密钥流发生器生成的看似随机的密钥流实际上是确定密钥流发生器生成的看似随机的密钥流实际上是确定的,在解密的时候能很好的将其再现。的,在解密的时候能很好的将其再现。密钥流发生器输出的密钥越密钥流发生器输出的密钥越接近随机,对密码分析者来说就越困难。接近随机,对密码分析者来说就越困难。如果密钥流发生器每次都生成同样的密钥流的话,对攻击来说,如果密钥流发生器每次都生成同样的
18、密钥流的话,对攻击来说,破译该算法就容易了。破译该算法就容易了。假的假的AliceAlice得到一份密文和相应的明文,她就可以将两者异或得到一份密文和相应的明文,她就可以将两者异或恢复出密钥流。恢复出密钥流。或者,如果她有两个用同一个密钥流加密的密文,或者,如果她有两个用同一个密钥流加密的密文,她就可以让两者异或得到两个明文互相异或而成的消息。她就可以让两者异或得到两个明文互相异或而成的消息。这是很容这是很容易破译的,接着她就可以用明文跟密文异或得出密钥流。易破译的,接着她就可以用明文跟密文异或得出密钥流。现在,无论她再拦截到什么密文消息,她都可以用她所拥有的现在,无论她再拦截到什么密文消息,
19、她都可以用她所拥有的密钥流进行解密。密钥流进行解密。另外,她还可以解密,并阅读以前截获到的消息另外,她还可以解密,并阅读以前截获到的消息。一旦一旦AliceAlice得到一明文得到一明文/密文对,她就可以读懂任何东西了。密文对,她就可以读懂任何东西了。这就是为什么所有序列密码也有密钥的原因。这就是为什么所有序列密码也有密钥的原因。密钥流发生器的密钥流发生器的输出是密钥的函数。输出是密钥的函数。这样,这样,AliceAlice有一个明文有一个明文/密文对,但她只能读到用特定密钥加密文对,但她只能读到用特定密钥加密的消息。密的消息。更换密钥,攻击者就不得不重新分析。更换密钥,攻击者就不得不重新分析
20、。流密码强度完全依赖于密钥序列的随机性随机性(Randomness)和不不可预测性可预测性(Unpredictability)。核心问题是密钥流生成器的设计核心问题是密钥流生成器的设计。保持收发两端密钥流的精确同步是实现可靠解密的关键技术保持收发两端密钥流的精确同步是实现可靠解密的关键技术。流密码的分类:1.1.自同步序列密码自同步序列密码 自同步序列密码就是密钥流的每一位是前面固定数量密文位的自同步序列密码就是密钥流的每一位是前面固定数量密文位的函数,下图和下页图描述了其工作原理。函数,下图和下页图描述了其工作原理。其中,内部状态是前面其中,内部状态是前面n比特密文的函数。该算法的密码复杂性
21、在于输出函数,它收到内部比特密文的函数。该算法的密码复杂性在于输出函数,它收到内部状态后生成密钥序列位。状态后生成密钥序列位。自同步流密码自同步流密码SSSC(Self-Synchronous Stream Cipher)内部状态i依赖于(k kI,i-1,mi),使密文ci不仅与当前输入mi有关,而且由于ki对i的关系而与以前的输入m1,m2,mi-1有关。一般在有限的n级存储下将与mi-1,mi-n有关。2同步序列密码同步序列密码同步流密码同步流密码SSC(Synchronous Stream Cipher):内部状态i与明文消息无关,密钥流将独立于明文。特点:特点:对于明文而言,这类加密
22、变换是无记忆的无记忆的。但它是时变的时变的。只有保持两端精确同步才能正常工作。对主动攻击时异常敏感而有利于检测无差错传播差错传播(Error Propagation)同步序列密码同样可防止密文中的插入和删除,同步序列密码同样可防止密文中的插入和删除,因为它们会使系统因为它们会使系统失去同步而立即被发现。失去同步而立即被发现。然而,却不能避免单个位被窜改。然而,却不能避免单个位被窜改。优点优点:具有自同步能力,强化了其抗统计分析的能力缺点缺点:有n位长的差错传播。密码设计者的最大愿望是设计出一个滚动密钥生成器,使得密钥经其扩展成的密钥流序列具有如下性质:极大的周期良好的统计特性抗线性分析抗统计分
23、析。4.3 线性反馈移位寄存器 产生密钥序列的最重要部件是线性反馈移位寄存器(LFSR),是因为:(1)LFSR非常适合于硬件实现;(2)能产生大的周期序列;(3)能产生较好统计特性的序列;(4)其结构能应用代数方法进行很好的分析.移位寄存器是流密码产生密钥流的一个主要组成部分。移位寄存器是流密码产生密钥流的一个主要组成部分。GF(2)上一个上一个n级反馈移位寄存器由级反馈移位寄存器由n个二元存储器与一个反馈函数个二元存储器与一个反馈函数f(a1,a2,an)组成,如下页图所示。组成,如下页图所示。每一存储器称为移位寄存器的一级,在任一时刻,这些级的内容每一存储器称为移位寄存器的一级,在任一时
展开阅读全文