- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.11 线性反馈移位寄存序列 反馈移位寄存器 一个对一次一密密码的折中就是用反馈移位寄存器(FSR)生成密钥流。 反馈移位寄存器由移位寄存器(shift register)和反馈函数(feedback function)组成。 线性反馈移位寄存器 在一个线性反馈移位寄存器(LFSR)中,bm是b0,b1,bm-1的线性函数。 例1 用4个单元(其中 )创建一个线性反馈寄存器。如果种子是1000,表示出50种移位的输出值。 解: 生成的密钥流: 1101011110001001101011110001001 101011110001… Note:此密钥流的周期为15位 LFSR生成密钥流 的优点 适于硬件的实现,即LFSR生成的密钥流速度很快。 用较少比特位可以产生周期大的序列。也就说,大周期的密钥流可用相当少的信息来生成。 比如,在例1中,线性反馈函数占用4比特位,种子也占用4比特位,而生成的密钥流却达到周期为15。也就说,用8比特位产生周期为15的密钥流。 一个LFSR的最大周期是 。可以证明:如果线性反馈函数为 ,种子取任意一非全零31比特位序列,则LFSR生成的序列周期为 。因此,62 bits生成20亿多bits无重复的密钥流。这比一次一密具有很大的优势。 LFSR可以生成的一些统计性质良好的密钥流。 针对LFSR的攻击 用LFSR生成密钥流进行加密的方法,在已知明文攻击下很不安全。 如果知道某小段密文及对应的明文,则可以得到一段密钥流; 如果得到一段密钥流,则可以确定线性反馈函数,推断整个密钥流,进而达到整个密文的解密。 已知密钥流如何确定线性反馈函数? 例2 设周期为15的密钥流(LFSR产生)为 011010111100011010111100 …。 求线性反馈函数? 解:设LFSR的单元数为m. 假设m=1。则线性反馈函数只能为 密钥流为常数流000000000 …。 假设m=2。设线性反馈函数为 得 密钥流:011011011011…。 假设m=3。设线性反馈函数为 得,方程无解。 假设m=4。设线性反馈函数为 得 的密钥流为 011010111100011010111100 …。 确定LFSR的单元数的策略 方法:设 为LFSR生成的密钥流。对n=1,2, 3, …,依次计算行列式 如果对连续多个行列式都是0,就停下来。最后一个非零行列式对应的n就是LFSR的单元数。 * * 反馈函数 输 出 反馈函数 out ⊕ 一个LFSR的最大周期是 out 1000 1 0 0 ,此时产生的 矛盾 有 于是线性函数为 此时产生的 矛盾 011010111100011010111100 … ,有 ,有 矛盾 ,由此生成 。于是 即为所求。 Note:假设l为单元数,则只需2l长度的密钥流,就可求出递推关系。 *
文档评论(0)