北交大 密码学课件 第7章 流密码 2016.ppt

北交大 密码学课件 第7章 流密码 2016.ppt

ID:58822474

大小:2.32 MB

页数:53页

时间:2020-10-01

北交大 密码学课件 第7章 流密码 2016.ppt_第1页
北交大 密码学课件 第7章 流密码 2016.ppt_第2页
北交大 密码学课件 第7章 流密码 2016.ppt_第3页
北交大 密码学课件 第7章 流密码 2016.ppt_第4页
北交大 密码学课件 第7章 流密码 2016.ppt_第5页
资源描述:

《北交大 密码学课件 第7章 流密码 2016.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章随机数的产生与序列密码本节主要内容随机数生成随机数的应用和特点伪随机数的产生序列密码序列密码的基本概念线性移位寄存器序列密码RC4随机数的生成1.1随机数的应用很多密码算法都需要使用随机数,例如:1、相互认证,在密钥分配中需要使用一次性随机数来防止重放攻击;2、会话密钥的产生;3、公钥密码算法中密钥的产生,用随机数作为公钥密码算法中的密钥,或以随机数来产生密码算法中的密钥;4、用于对称流密码加密的位流的产生.在随机数的上述应用中,要求随机数序列满足:随机性和不可预测性。随机数的基本特点1、随机性均匀分布:数列中每个数出现的频率应相等或近似相等,有大量测

2、试集;独立性:数列中任意一数都不能由其他数推出,难以测试,只能测试足够独立;在设计密码算法时,经常使用似乎是随机的数列,称为伪随机数列;2、不可预测性在诸如相互认证和会话密钥的产生等应用中,不仅要求数列具有随机性,而且要求对数列以后的数是不可预测的;(后向)对于真随机序列来说,数列中每个数都独立于其他数,因此是不可预测的;对于伪随机数来说,就需要特别注意防止敌手从数列前边的数预测出后边的数。(前向)随机数源真随机数很难获得:物理噪声产生器,如离子辐射脉冲检测器、气体放电管、漏电容等都可以作为随机数源,但在网络安全系统中很少采用,一方面是因为数的随机性和精度不

3、够,另一方面这些设备又很难连接到网络系统中。一种方法是将高质量的随机数作为随机数库,供用户使用,然而与网络安全对随机数巨大的需求相比,这种方式提供的随机数数目非常有限。再者,虽然这时的随机数的确可被证明具有随机性,但由于敌手也能得到这个随机数,而难以保证随机数的不可预测性;在设计密码算法时,经常使用似乎是随机的数列,称为伪随机数列;网络安全中所需的随机数都借助于安全的密码算法产生,但由于算法是确定性的,因此产生的数列不是随机的。然而如果算法设计的好,产生的数列就能通过各种随机性检验,这种数就是伪随机数。伪随机数的产生1、特意构造的算法:线性同余发生器BBS发

4、生器2、基于现存密码算法的算法:对称分组密码非对称分组密码Hash函数和消息认证线性同余算法最为广泛使用的伪随机数产生器是线性同余算法。由以下迭代公式得到随机数数列{Xn}:Xn+1≡(aXn+c)modmm模数m>0231a乘数0≤a

5、产生的数列为:{7,17,23,1,7,…}在32个可能值中只有4个出现,数列的周期为4,因此结果仍不能令人满意;如果取a=7,其他值不变,则产生的数列为:{1,5,25,29,17,21,9,13,1,…}周期增加到8.为使随机数列的周期尽可能大,m应尽可能大,普遍原则是选m接近等于计算机能表示的最大整数,如接近或等于231;线性同余算法评价线性同余算法的性能有以下3个标准:迭代函数应是整周期的。即数列中的数在重复之前应产生出0到m之间的所有数。产生的数列看上去应是随机的。因为数列是确定性产生的,因此不可能是随机的,但可用各种统计检测来评价数列具有多少随机

6、性。(随机性依赖于初始值的随机性)。迭代函数能有效地利用32位运算实现。线性同余算法通过精心选取a,c,m,可使以上3个标准得以满足:对第3条来说,为了方便32位运算的实现,m可取为231-1.对于第1条来说,如果m为素数(231-1即为素数)且c=0,则当a是m的一个本原根,即满足:时,产生的数列是整周期的。例如,a=75=16807.即为m=231-1的一个本原根,由此得到的随机数产生器:Xn+1=(aXn)mod(231-1)已被广泛应用,而且与其他产生器相比,经历过更多的检验,这种产生器常用于统计和模拟工作。线性同余算法线性同余算法的强度在于如果将乘

7、数和模数选择的好,则产生的数列和从1,2,…,m-1中随机选取的数列是不可区分的。但是除了初值X0的选取具有随机性外,算法本身并不具有随机性。因为X0选定后,以后的数就被确定性的产生了。这个性质可用于对该算法的密码分析。如果敌手知道正在使用线性同余算法并知道算法的参数,则一旦获得数列中的一个数,就可得到以后的所有数。线性同余算法如果敌手只知道正在使用线性同余算法以及产生的数列中极少一部分,就足以确定出算法的参数。假定敌手能确定X0,X1,X2,X3,就可通过以下方程组解出a,c和m。改进的方法是利用系统时钟修改随机数列。方法一:是每当产生N个数后,就利用当前

8、的时钟值模m后作为新种子。方法二:是直接将当前的时钟

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。