《序列密码体制》PPT课件.ppt
《《序列密码体制》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《序列密码体制》PPT课件.ppt(52页珍藏版)》请在三一办公上搜索。
1、应 用 密 码 学,张仕斌 万武南 张金全 孙宣东编著,西安电子科技大学出版社,二00九年十二月,第4章 序列密码体制,知识点:,密码学中的随机数 序列密码的概念 线性反馈移位寄存器 非线性序列简介 常用序列密码 序列密码的应用,4.1 密码学中的随机数,在密码学都要涉及到随机数?因为许多密码系统的安全性都依赖于随机数的生成,例如DES加密算法中的密钥,RSA加密和数字签名中的素数。,4.1.1 随机数的使用,序列密码的保密性完全取决于密钥的随机性。如果密钥是真正的随机数,则这种体制在理论上就是不可破译的。但这种方式所需的密钥量大得惊人,在实际中是不可行的。目前一般采用伪随机序列来代替随机序列
2、作为密钥序列,也就是序列存在着一定的循环周期。这样序列周期的长短就成为保密性的关键。如果周期足够长,就会有比较好的保密性。现在周期小于1010的序列很少被采用,周期长达1050的序列也并不少见。,何谓伪随机数生成器(PRNG)?假定需要生成介于1和 10 之间的随机数,每一个数出现的几率都是一样的。理想情况下,应生成0到1之间的一个值,不考虑以前值,这个范围中的每一个值出现的几率都是一样的,然后再将该值乘以 10。,由任何伪随机数生成器返回的数目会受到 0 到 N 之间整数数目的限制。因为常见情况下,伪随机数生成器生成 0 到 N 之间的一个整数,返回的整数再除以 N。可以得出的数字总是处于
3、0 和 1 之间。对生成器随后的调用采用第一次运行产生的整数,并将它传给一个函数,以生成 0 到 N 之间的一个新整数,然后再将新整数除以 N 返回。,4.1.2 伪随机数产生器,目前,常见随机数发生器中N 是2321(大约等于 40 亿),对于 32 位数字来说,这是最大的值。但在密码学领域,40 亿个数根本不算大!,伪随机数生成器将作为“种子”的数当作初始整数传给函数。由伪随机数生成器返回的每一个值完全由它返回的前一个值所决定。因此,最初的种子决定了这个随机数序列。如果知道用于计算任何一个值的那个整数,那么就可以算出从这个生成器返回的下一个值。伪随机数生成器是一个生成完全可预料的数列(称为
4、流)的确定性程序。一个编写得很好的的PRNG可以创建一个序列,而这个序列的属性与许多真正随机数的序列的属性是一样的。例如:(1)PRNG可以以相同几率在一个范围内生成任何数字;(2)PRNG 可以生成带任何统计分布的流;(3)由PRNG生成的数字流不具备可辨别的模。,4.1.3 基于密码算法的随机数产生器,1使用软件方法的随机数产生器,一个常用的随机数产生器是属于线形拟合生成器一类的。这类生成器相当普遍,它们采用很具体的数学公式:Xn+1=(aXn+b)mod c即第 n+1 个数等于第 n 个数乘以某个常数 a,再加上常数 b。如果结果大于或等于某个常数 c,那么通过除以 c,并取它的余数来
5、将这个值限制在一定范围内。注意:a、b 和 c 通常是质数。,2使用硬件方法的随机数产生器,目前生成随机数的几种硬件设备都是用于商业用途。得到广泛使用的设备是 ComScire QNG,它是使用并行端口连接到 PC 的外部设备,它可以在每秒钟生成 20,000 位,这对于大多数注重安全性的应用程序来说已经足够了。另外Intel 公司宣布他们将开始在其芯片组中添加基于热能的硬件随机数发生器,而且基本上不会增加客户的成本。迄今为止,已经交付了一些带有硬件 PRNG 的 CPU。,4.1.4 伪随机数的评价标准,(1)看起来是随机的,表明它可以通过所有随机性统计检验。现在的许多统计测试。它们采用了各
6、种形式,但共同思路是它们全都以统计方式检查来自发生器的数据流,尝试发现数据是否是随机的。确保数据流随机性的最广为人知的测试套件就是 George Marsaglia 的 DIEHARD 软件包(请参阅)。另一个适合此类测试的合理软件包是 pLab(请参阅)。(2)它是不可预测的。即使给出产生序列的算法或硬件和所有以前产生的比特流的全部知识,也不可能通过计算来预测下一个随机比特应是什么。(3)它不能可靠地重复产生。如果用完全同样的输入对序列产生器操作两次将得到两个不相关的随机序列。,4.2 序列密码的概念及模型,序列密码算法将明文逐位转换成密文,如下图所示。m,密钥流发生器(也称为滚动密钥发生器
7、)输出一系列比特流:K1,K2,K3,Ki。密钥流(也称为滚动密钥)跟明文比特流,m1,m2,m3,mi,进行异或运算产生密文比特流。加密:C i=miK i 在解密端,密文流与完全相同的密钥流异或运算恢复出明文流。解密:m i=C iK i 显然,miK iK i=m i,事实上,序列密码算法其安全性依赖于简单的异或运算和一次一密乱码本。密钥流发生器生成的看似随机的密钥流实际上是确定的,在解密的时候能很好的将其再现。密钥流发生器输出的密钥越接近随机,对密码分析者来说就越困难。,如果密钥流发生器每次都生成同样的密钥流的话,对攻击来说,破译该算法就容易了。,假的Alice得到一份密文和相应的明文
8、,她就可以将两者异或恢复出密钥流。或者,如果她有两个用同一个密钥流加密的密文,她就可以让两者异或得到两个明文互相异或而成的消息。这是很容易破译的,接着她就可以用明文跟密文异或得出密钥流。现在,无论她再拦截到什么密文消息,她都可以用她所拥有的密钥流进行解密。另外,她还可以解密,并阅读以前截获到的消息。一旦Alice得到一明文/密文对,她就可以读懂任何东西了。,这就是为什么所有序列密码也有密钥的原因。密钥流发生器的输出是密钥的函数。这样,Alice有一个明文/密文对,但她只能读到用特定密钥加密的消息。更换密钥,攻击者就不得不重新分析。,流密码是将明文划分成字符(如单个字母),或其编码的基本单元(如
9、0,1数字),字符分别与密钥流作用进行加密,解密时以同步产生的同样的密钥流实现。流密码强度完全依赖于密钥序列的随机性(Randomness)和不可预测性(Unpredictability)。核心问题是密钥流生成器的设计。保持收发两端密钥流的精确同步是实现可靠解密的关键技术。,流密码的分类:,1.自同步序列密码,自同步序列密码就是密钥流的每一位是前面固定数量密文位的函数,下图和下页图描述了其工作原理。其中,内部状态是前面n比特密文的函数。该算法的密码复杂性在于输出函数,它收到内部状态后生成密钥序列位。,自同步流密码SSSC(Self-Synchronous Stream Cipher)内部状态i
10、依赖于(kI,i-1,mi),使密文ci不仅与当前输入mi有关,而且由于ki对i的关系而与以前的输入m1,m2,mi-1有关。一般在有限的n级存储下将与mi-1,mi-n有关。,2同步序列密码,同步流密码SSC(Synchronous Stream Cipher):内部状态i与明文消息无关,密钥流将独立于明文。特点:对于明文而言,这类加密变换是无记忆的。但它是时变的。只有保持两端精确同步才能正常工作。对主动攻击时异常敏感而有利于检测无差错传播(Error Propagation),同步序列密码同样可防止密文中的插入和删除,因为它们会使系统失去同步而立即被发现。然而,却不能避免单个位被窜改。,优
11、点:具有自同步能力,强化了其抗统计分析的能力缺点:有n位长的差错传播。,密钥流序列的性质,密码设计者的最大愿望是设计出一个滚动密钥生成器,使得密钥经其扩展成的密钥流序列具有如下性质:极大的周期良好的统计特性抗线性分析抗统计分析。,实际上,序列密码不可能做到“一次一密”但若密钥流生成器生成的密钥周期足够长,且随机性好,其安全强度可以得到保证!因此,序列密码的设计核心在于密钥流生成器的设计,序列密码的安全强度取决于密钥流生成器生成的密钥周期、复杂度、随机(伪随机)特性等。,4.3 线性反馈移位寄存器,产生密钥序列的最重要部件是线性反馈移位寄存器(LFSR),是因为:(1)LFSR非常适合于硬件实现
12、;(2)能产生大的周期序列;(3)能产生较好统计特性的序列;(4)其结构能应用代数方法进行很好的分析.,移位寄存器是流密码产生密钥流的一个主要组成部分。GF(2)上一个n级反馈移位寄存器由n个二元存储器与一个反馈函数f(a1,a2,an)组成,如下页图所示。,每一存储器称为移位寄存器的一级,在任一时刻,这些级的内容构成该反馈移位寄存器的状态,每一状态对应于GF(2)上的一个n维向量,共有2n种可能的状态。每一时刻的状态可用n长序列“a1,a2,an”n维向量“(a1,a2,an)”来表示,其中ai是第i级存储器的内容。初始状态由用户确定,当第i个移位时钟脉冲到来时,每一级存储器ai都将其内容向
13、下一级ai-1传递,并计算f(a1,a2,an)作为下一时刻的an。,反馈函数f(a1,a2,an)是n元布尔函数,即n个变元a1,a2,an 可以独立地取0和1两个可能的值,函数中的运算有逻辑与、逻辑或、逻辑补等运算,最后的函数值也为0或1。,例:下图是一个3级反馈移位寄存器,其初始状态为(a1,a2,a3)=(1,0,1),输出可由下表求出。,即输出序列为,周期为4。,如果f(a1,a2,an)是(a1,a2,an)的线性函数,则称之为线性反馈移位寄存器LFSR(linear feedback shift register),否则称为非线性移位寄存器。此时f可写为:f(a1,a2,an)=
14、cna1 cn-1a2 c1an 其中常数ci=0或1,是模2加法。ci=0或1可用开关的断开和闭合来实现,如下图所示,这样的线性函数共有2n个。,输出序列at满足:an+t=cnatcn-1at+1c1an+t-1 其中,t为非负正整数。线性反馈移位寄存器因其实现简单、速度快、有较为成熟的理论等优点而成为构造密钥流生成器的最重要的部件之一。,例:下图是一个5级线性反馈移位寄存器,其初始状态为(a1,a2,a3,a4,a5)=(1,0,0,1,1),可求出输出序列为,周期为31。,在线性反馈移位寄存器中总是假定c1,c2,cn中至少有一个不为0,否则f(a1,a2,an)0,这样的话,在n个脉
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 序列密码体制 序列 密码 体制 PPT 课件
链接地址:https://www.31ppt.com/p-5505410.html