实验五:安全hash算法sha-1的实现

实验五:安全hash算法sha-1的实现

ID:26111105

大小:111.52 KB

页数:12页

时间:2018-11-24

实验五:安全hash算法sha-1的实现_第1页
实验五:安全hash算法sha-1的实现_第2页
实验五:安全hash算法sha-1的实现_第3页
实验五:安全hash算法sha-1的实现_第4页
实验五:安全hash算法sha-1的实现_第5页
资源描述:

《实验五:安全hash算法sha-1的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验五:安全Hash算法SHA-1的实现姓名韦能龙班级计科一班学号11350023实验目的Hash函数是提供数据完整性保障的一个重要工具。本次实验,我们希望通过上机操作,使同学们对安全Hash算法SHA-1的基本原理有一个全面的理解。通过本次实验,使学生掌握对Hash函数的应用,为后面数字签名方案的学习打下基础。实验内容及要求给定如下消息x:‘cryptographyisthepracticeandstudyoftechniquesforsecurecommunicationinthepresenceofthirdpartiesmoregenerallyitisaboutconstruct

2、ingandanalyzingprotocolsthatovercometheinfluenceofadversariesandwhicharerelatedtovariousaspectsininformationsecuritysuchasdataconfidentialitydataintegrityauthenticationandnonrepudiationmoderncryptographyintersectsthedisciplinesofmathematicscomputerscienceandelectricalengineeringapplicationsofcrypt

3、ographyincludeATMcardscomputerpasswordsandelectroniccommerce’利用填充方案SHA-1-PAD给出对消息的填充,并编程给出SHA-1(x)。实验结果(可续页)(包括实验代码、实验结果)实验结果如下:代码如下:#includeusingnamespacestd;typedefsignedcharint8_t;typedefunsignedcharuint8_t;typedefshortint16_t;typedefunsignedshortuint16_t;typedefintint32_t;typedefunsi

4、gneduint32_t;typedeflongint64_t;typedefunsignedlonguint64_t;#defineSHA1HashSize20////////////////////////////////////////////////////////////////////////////控制上下文消息的结构//////////////////////////////////////////////////////////////////////////typedefstructSHA1Context{//每一个消息数据是八个十六进制的数存储的,8*4=32,所以用

5、32位无符号位的int表示,uint32_tH[SHA1HashSize/4];//MessageDigest//每一个消息块中的消息的长度最多为64比特,所以用32位表示的话要用一个高位和一个低位表示uint32_tLength_Low;//Messagelengthinbitsuint32_tLength_High;//Messagelengthinbits//消息块的下标int16_tMessage_Block_Index;//一个字节就是8位,用char存储,所以按512位分块的话每一个块就要64个字节,即64个charuint8_tMessage_Block[64];}SHA1C

6、ontext;//定义一个32bit字左循环移位的宏#defineSHA1CircularShift(bits,word)(((word)<<(bits))

7、((word)>>(32-(bits))))//学会宏的定义//#defineSHA1CircularShift(bits,word)(((word)<<(bits))

8、((word)>>(32-(bits))))////////////////////////////////////////////////////////////////////////////函数的原型voidSHA1Reset(SHA1Context*);//初

9、始化数据块voidSHA1Input(SHA1Context*,constuint8_t*,unsignedint);//处理消息的输入voidSHA1Result(SHA1Context*,uint8_tMessage_Digest[SHA1HashSize]);//得到最后的结果voidSHA1PadMessage(SHA1Context*);/*定义填充信息指针*/voidSHA1ProcessMessageBlo

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

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

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