欢迎来到天天文库
浏览记录
ID:36887753
大小:630.10 KB
页数:52页
时间:2019-05-10
《《序列密码体制》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、应用密码学张仕斌万武南张金全孙宣东编著西安电子科技大学出版社二00九年十二月2021/8/121第4章序列密码体制2021/8/122知识点:◇密码学中的随机数◇序列密码的概念◇线性反馈移位寄存器◇非线性序列简介◇常用序列密码◇序列密码的应用2021/8/1234.1密码学中的随机数在密码学都要涉及到随机数?因为许多密码系统的安全性都依赖于随机数的生成,例如DES加密算法中的密钥,RSA加密和数字签名中的素数。4.1.1随机数的使用序列密码的保密性完全取决于密钥的随机性。如果密钥是真正的随机数,则这种体制在理论上就是不可破译的。但这种方式所需的密钥量大得惊人,在实际中是不可行的。目
2、前一般采用伪随机序列来代替随机序列作为密钥序列,也就是序列存在着一定的循环周期。这样序列周期的长短就成为保密性的关键。如果周期足够长,就会有比较好的保密性。现在周期小于1010的序列很少被采用,周期长达1050的序列也并不少见。2021/8/124何谓伪随机数生成器(PRNG)?假定需要生成介于1和10之间的随机数,每一个数出现的几率都是一样的。理想情况下,应生成0到1之间的一个值,不考虑以前值,这个范围中的每一个值出现的几率都是一样的,然后再将该值乘以10。由任何伪随机数生成器返回的数目会受到0到N之间整数数目的限制。因为常见情况下,伪随机数生成器生成0到N之间的一个整数,返回的
3、整数再除以N。可以得出的数字总是处于0和1之间。对生成器随后的调用采用第一次运行产生的整数,并将它传给一个函数,以生成0到N之间的一个新整数,然后再将新整数除以N返回。4.1.2伪随机数产生器2021/8/125目前,常见随机数发生器中N是232–1(大约等于40亿),对于32位数字来说,这是最大的值。但在密码学领域,40亿个数根本不算大!伪随机数生成器将作为“种子”的数当作初始整数传给函数。由伪随机数生成器返回的每一个值完全由它返回的前一个值所决定。因此,最初的种子决定了这个随机数序列。如果知道用于计算任何一个值的那个整数,那么就可以算出从这个生成器返回的下一个值。伪随机数生成器
4、是一个生成完全可预料的数列(称为流)的确定性程序。一个编写得很好的的PRNG可以创建一个序列,而这个序列的属性与许多真正随机数的序列的属性是一样的。例如:(1)PRNG可以以相同几率在一个范围内生成任何数字;(2)PRNG可以生成带任何统计分布的流;(3)由PRNG生成的数字流不具备可辨别的模。2021/8/1264.1.3基于密码算法的随机数产生器1.使用软件方法的随机数产生器一个常用的随机数产生器是属于线形拟合生成器一类的。这类生成器相当普遍,它们采用很具体的数学公式:Xn+1=(aXn+b)modc即第n+1个数等于第n个数乘以某个常数a,再加上常数b。如果结果大于或等于某个
5、常数c,那么通过除以c,并取它的余数来将这个值限制在一定范围内。注意:a、b和c通常是质数。2.使用硬件方法的随机数产生器目前生成随机数的几种硬件设备都是用于商业用途。得到广泛使用的设备是ComScireQNG,它是使用并行端口连接到PC的外部设备,它可以在每秒钟生成20,000位,这对于大多数注重安全性的应用程序来说已经足够了。另外Intel公司宣布他们将开始在其芯片组中添加基于热能的硬件随机数发生器,而且基本上不会增加客户的成本。迄今为止,已经交付了一些带有硬件PRNG的CPU。2021/8/1274.1.4伪随机数的评价标准(1)看起来是随机的,表明它可以通过所有随机性统计检
6、验。现在的许多统计测试。它们采用了各种形式,但共同思路是它们全都以统计方式检查来自发生器的数据流,尝试发现数据是否是随机的。确保数据流随机性的最广为人知的测试套件就是GeorgeMarsaglia的DIEHARD软件包(请参阅http://www.stat.fsu.edu/pub/diehard/)。另一个适合此类测试的合理软件包是pLab(请参阅http://random.mat.sbg.ac.at/tests/)。(2)它是不可预测的。即使给出产生序列的算法或硬件和所有以前产生的比特流的全部知识,也不可能通过计算来预测下一个随机比特应是什么。(3)它不能可靠地重复产生。如果用完
7、全同样的输入对序列产生器操作两次将得到两个不相关的随机序列。2021/8/1284.2序列密码的概念及模型序列密码算法将明文逐位转换成密文,如下图所示。m密钥流发生器(也称为滚动密钥发生器)输出一系列比特流:K1,K2,K3,……Ki。密钥流(也称为滚动密钥)跟明文比特流,m1,m2,m3,……mi,进行异或运算产生密文比特流。加密:Ci=mi⊕Ki在解密端,密文流与完全相同的密钥流异或运算恢复出明文流。解密:mi=Ci⊕Ki显然,mi⊕Ki⊕Ki=mi2021/8/
此文档下载收益归作者所有