密码学应用与实践课程设计报告课程设计说明书之rc4udqvzh_u.docVIP

  • 4
  • 0
  • 约1.28万字
  • 约 23页
  • 2018-09-11 发布于湖北
  • 举报

密码学应用与实践课程设计报告课程设计说明书之rc4udqvzh_u.doc

密码学应用与实践课程设计报告课程设计说明书之rc4udqvzh_u

Harbin Institute of Technology at Weihai 密码学应用与实践 课程设计报告 专 业: 信息安全 班 级: 学 号: 姓 名: TOC \o 1-3 \h \u HYPERLINK \l _Toc1623 伪随机数发生器LFSR PAGEREF _Toc1623 2 HYPERLINK \l _Toc23076 1.LFSR原理 PAGEREF _Toc23076 2 HYPERLINK \l _Toc29493 2.设计思想 PAGEREF _Toc29493 5 HYPERLINK \l _Toc27786 3.设计流程图 PAGEREF _Toc27786 5 HYPERLINK \l _Toc27935 4.功能实现 PAGEREF _Toc27935 5 HYPERLINK \l _Toc14096 1.生成随机数 PAGEREF _Toc14096 5 HYPERLINK \l _Toc481 2.生成序列 PAGEREF _Toc481 6 HYPERLINK \l _Toc17526 3.游程检测 PAGEREF _Toc17526 7 HYPERLINK \l _Toc31949 5.总结 PAGEREF _Toc31949 8 HYPERLINK \l _Toc22516 RC4加密与解密 PAGEREF _Toc22516 9 HYPERLINK \l _Toc27817 1.RC4密码算法原理 PAGEREF _Toc27817 9 HYPERLINK \l _Toc25597 2.设计思想 PAGEREF _Toc25597 10 HYPERLINK \l _Toc9684 3.设计流程图 PAGEREF _Toc9684 10 HYPERLINK \l _Toc20551 4.功能实现 PAGEREF _Toc20551 11 HYPERLINK \l _Toc2744 1.打开文件 PAGEREF _Toc2744 11 HYPERLINK \l _Toc20722 2.加密文件 PAGEREF _Toc20722 11 HYPERLINK \l _Toc29906 3.解密文件 PAGEREF _Toc29906 13 HYPERLINK \l _Toc24573 5.总结 PAGEREF _Toc24573 15 HYPERLINK \l _Toc10951 源代码 PAGEREF _Toc10951 15 伪随机数发生器LFSR 1.LFSR原理 在流密码加密中通常使用伪随机数发生器来产生密钥流,从而进行加密与解密,其结构如下图所示,而线性反馈移位寄存器(LFSR)即是一个产生二进制位序列(可作为密钥流)的机制。 图1 流密码结构图 LFSR的详细设计原理如下: 1.设计n位移位寄存器并且设计各个寄存器的反馈系数Cn,如下图所示: 图2 LFSR寄存器设计 2.移位寄存器 图3 序列产生方法 若想输出二进制序列,不但需要设计移位寄存器以及反馈系数,而且还需输入种子(seeds)来启动发生器,例如下左图所示LFSR,下右图即为输入种子(1000)后寄存器的移位及输出状态: 图4 LFSR实例 由上例还可看出LFSR具有周期性,若要尽可能输出较多的随机数即产生m-序列(T=2n-1),则需合理的设计寄存器的反馈系数,不同的反馈系数产生随机序列的周期不同。 2.设计思想 本实验旨在实现使用反馈移位寄存器产生随机序列,以用做流密码加密时的密钥流。其主要设计原理见上。 3.设计流程图 图5 LFSR流程图 4.功能实现 1.生成随机数 随机数的生成考虑以下两个函数 函数一:int rand(void); 从rand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。 函数二:void srand(unsigned seed); 参数seed是srand()的种子,用来初始化rand()的起始值。可以认为rand()在每次被调用的时候,它会查看: 1) 如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用srand(seed)一次来初始化它的起始值。 2) 如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。 在这里我

文档评论(0)

1亿VIP精品文档

相关文档