《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现

《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现

ID:35625738

大小:343.00 KB

页数:17页

时间:2019-04-03

《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现_第1页
《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现_第2页
《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现_第3页
《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现_第4页
《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现_第5页
资源描述:

《《应用密码算法程序设计》课程设计报告--SHA1散列算法的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、成都信息工程学院课程设计报告SHA1散列算法的实现课程名称:应用密码算法程序设计学生姓名:邓兴全学生学号:2007122063专业班级:信安072任课教师:万武南2009年11月4日附件:课程设计成绩评价表指导老师评阅成绩表学习与工作态度(30%)选题意义(10%)文献综述(10%)研究水平与设计能力(20%)课程设计说明说(论文)撰写质量(20%)设计创新(10%)总分指导老师签名:年月日课程设计答辩记录及评价表学生讲述情况教师主要提问记录学生回答问题情况答辩评分评分项目分值评价参考标准评分总

2、分优良中及格差选题意义1098764文献综述1098764研究水平与设计能力201917151310课程设计说明书(论文)撰写质量201917151310设计创新1098764答辩效果302825221915答辩小组成员签名答辩小组组长签名:年月日课程设计成绩评定表成绩汇总评分项目评分比例分数课程设计总分指导老师评分50%答辩小组评分50%目录1.引言11.1背景11.2目的11.3算法描述12.系统设计22.1系统主要目标22.1.1主要软件需求22.1.2运行环境22.2系统结构32.2.1

3、软件操作流程32.2.2功能模块与系统结构33系统功能程序设计33.1基本要求部分33.1.1消息转换成二进制33.1.2消息填充43.1.3初始化消息摘要的缓冲区53.1.4各轮使用到的逻辑函数53.1.5十六进制转换63.1.6分组hash93.1.7消息hash103.2较高要求部分114.测试报告125.结论13参考文献141.引言1.1背景SHA_1是由美国尺度技术局(NIST)公布的国度尺度,是一种利用最为普遍的hash函数算法,也是目前最先进的加密技术,被政府部门和企业用来处置敏感

4、的信息。1.2目的安全哈希算法(SecureHashAlgorithm)主要适用于数字签名标准(DigitalSignatureStandardDSS)里面定义的数字签名算法(DigitalSignatureAlgorithmDSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同

5、样的消息摘要。1.3算法描述在SHA1算法中,我们必须把原始消息(字符串,文件等)转换成位字符串。SHA1算法只接受位作为输入,以512位为单位分组处理。消息必须进行填充,以使其长度在对512取模以后的余数是448,然后再添加消息本身的长度,通常用一个64位的数据来表示原始消息的长度。算法中使用到的常量:一系列的常量字K(0),K(1),...,K(79),如果以16进制给出。它们如下:Kt=0x5A827999(0<=t<=19),Kt=0x6ED9EBA1(20<=t<=39),Kt=0x8

6、F1BBCDC(40<=t<=59),Kt=0xCA62C1D6(60<=t<=79).在SHA1中我们需要一系列的函数,每个函数ft(0<=t<=79)都操作32位字B,C,D并且产生32位字作为输出。ft(B,C,D)可以如下定义ft(B,C,D)=(BANDC)or((NOTB)ANDD)(0<=t<=19), ft(B,C,D)=BXORCXORD(20<=t<=39),ft(B,C,D)=(BANDC)or(BANDD)or(CANDD)(40<=t<=59),ft(B,C,D)=BX

7、ORCXORD(60<=t<=79).必须使用进行了补位和补长度后的消息来计算消息摘要。计算需要两个缓冲区,每个都由5个32位的字组成,还需要一个80个32位字的缓冲区。第一个5个字的缓冲区被标识为A,B,C,D,E。第一个5个字的缓冲区被标识为H0,H1,H2,H3,H4。80个字的缓冲区被标识为W0,W1,...,W79,另外还需要一个一个字的TEMP缓冲区。为了产生消息摘要,在第4部分中定义的16个字的数据块M1,M2,...,Mn会依次进行处理,处理每个数据块Mi包含80个步骤。在处理每

8、个数据块之前,缓冲区被初始化为下面的值(16进制)H0=0x67452301,H1=0xEFCDAB89,H2=0x98BADCFE,H3=0x10325476,H4=第14页共14页0xC3D2E1F0。为了处理Mi,需要进行下面的步骤(1).将Mi分成16个字W0,W1,...,W15,W0是最左边的字(2).对于t=16到79令Wt=S1(Wt-3XORWt-8XORWt-14XORWt-16).(3).令A=H0,B=H1,C=H2,D=H3,E=H4. (4)对于t=0到79,执行下面

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

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

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