- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第4章序列密码体制
第4章序列密码体制
4.1密码学中的随机数
4.2序列密码的概念及模型
4.3线性反响移位存放器
4.4非线性序列简介
4.5常用的序列密码算法
第4章序列密码体制
4.1密码学中的随机数
为什么在密码学中要讨论随机数的产生?
因为许多密码系统的平安性都依赖于随机数
的生成,例如DES加密算法中的密钥,RSA
加密和数字签名中的素数。所有这些方案都
需要足够长度并且要“随机〞的数,即使得
任何特定值被选中的概率足够小,防止对方
根据概率来优化搜索策略。例如DES密钥空
间大小为256,如果密钥k是随机产生的,那
么对方要尝试256个可能的密钥值。但是如
果密钥k这样产生:选取一个16位随机秘钥s,
然后利用一个复杂但是公开的函数f将其扩展
为56位密钥k,这时对方只要尝试216个可能
的密钥值就能找到真正密钥。
第4章序列密码体制
随机数的使用
序列密码的保密性完全取决于密钥的随机性。如果密
钥是真正的随机数,那么这种体制在理论上就是不可破译
的。但这种方式所需的密钥量大得惊人,在实际中是不可
行的。因此,目前一般采用伪随机序列来代替随机序列作
为密钥序列,也就是序列存在着一定的循环周期。这样序
列周期的长短就成为保密性的关键。如果周期足够长,就
会有比较好的保密性。现在周期小于1010的序列很少被采
用,周期长达1050的序列也并不少见。
第4章序列密码体制
伪随机数产生器
计算机上的随机数产生器并不是随机的,因为计算机
一直是具有完全确定性的机器,特别在行为随机性方面表
现得不尽人意。所以当程序员需要一个或一组真正的随机
数时,他们必须通过各种方式近似地生成随机数。
什么是伪随机数生成器〔PRNG〕?假定需要生成介于
1和10之间的随机数,每一个数出现的几率都是一样的。理
想情况下,应生成0到1之间的一个值,不考虑以前的值,
这个范围中的每一个值出现的几率都是一样的,然后再将
该值乘以10。因为在0和1之间有无穷多个值,计算机不能
提供这样的精度。
第4章序列密码体制
为了编写代码来实现类似于前面提到的算法,常见情况
下,伪随机数生成器生成0到N之间的一个整数,返回的整
数再除以N。得出的数字总是处于0和1之间。对生成器随后
的调用采用第一次运行产生的整数,并将它传给一个函数,
以生成0到N之间的一个新整数,然后再将新整数除以N返回。
这意味着,由任何伪随机数生成器返回的数目会受到0到N
之间整数数目的限制。
在大多数的常见随机数发生器中,N是232-1〔大约等
于40亿〕,对于32位数字来说,这是最大的值。换句话说,
我们经常碰到的这类生成器能够至多生成40亿个可能值,而
40亿的个数根本不算大。
第4章序列密码体制
伪随机数生成器将作为“种子〞的数当作初始整数传给
函数。由伪随机数生成器返回的每一个值完全由它返回的前
一个值所决定。因此,最初的种子决定了这个随机数序列。
如果知道用于计算任何一个值的那个整数,那么就可以算出
从这个生成器返回的下一个值。
伪随机数生成器是一个生成完全可预料的数列〔称为流〕
确实定性程序。一个编写得很好的PRNG可以创立一个序列,
而这个序列的属性与许多真正随机数的序列的属性是一样的。
例如:
第4章序列密码体制
〔1〕PRNG可以以相同几率在一个范围内生成任何数
字;
〔2〕PRNG可以生成带任何统计分布的流;
〔3〕由PRNG生成的数字流不具备可区分的模。
第4章序列密码体制
基于密码算法的随机数产生器
1.使用软件方法的随机数产生器
一个常用的随机数产生器是属于线性拟合生成器一类
的。这类生成器相当普遍,它们采用很具体的数学公式:
Xn+1=(aXn+b)modc即第n+1个数等于第n个数乘以某个常
数a,再加上常数b。如果结果大于或等于某个常数c,那么
通过除以c,并取它的余数来将这个值限制在一定范围内。
注意,a、b和c通常都是质数。DonaldKnuth在
“TheArtofComputerProgramming〞一书中详细介绍了对
于这些常数,如何挑选好的值。
第4章序列密码体制
2.使用硬件方法的随机数产生器
真正的随机数发生器是非确定的,在计算机上执行非
确定性事情的唯一方法是从一些自然的随机过程中收集数
据。最好的一种方法涉及使用电子Geiger计数器,每次当它
检测到放射性衰变时,它就会生成一个脉冲。衰变之间的
时间是一
文档评论(0)