散列函数实验原理
更新时间:2024-05-12 10:56:02 阅读量: 综合文库 文档下载
散列函数实验
【实验原理】
散列函数是一种单向密码,即是一个从明文到密文的不可逆映射,只有加密过程,不可解密;同时散列函数可以将任意长度的输入经过变换以后得到固定长度的输出。散列函数在完整性认证和数字签名等领域有广泛应用。
散列函数应满足以下要求: (1) 算法公开,不需要密钥。
(2) 具有数据压缩功能,可将任意长度的输入转换为固定长度的输出。 (3) 已知m,容易计算出H(m)。
(4) 给定消息散列值H(m),要计算出m在计算上是不可行的。 (5) 对任意不同的输入m和n,它们的散列值是不能相同的。 一、 MD5算法
MD5(Message-Digest Algorithm 5)即信息-摘要算法,是MD4算法的改进;算法的输入为任意长度的消息,分为512比特长的分组,输出为128比特的消息摘要。处理过程如下:
(1) 对消息进行填充,使其比特长度为n512+448(n为正整数),填充方式是固定的:
第一位为1,其后各位为0。
(2) 附加消息长度,使用上一步骤留出的64比特以小端(最低有效字节/位存储于低地址
字节/位)方式来表示消息被填充前的长度,若消息长度大于264,则以264为模数取模。
(3) 对消息摘要缓冲区初始化,算法使用128比特长的缓冲区来存储中间结果和最终散
列值,将缓冲区表示成4个32比特长的寄存器A、B、C、D,每个寄存器以小端方式存储数据,初始值为(十六进制,低位字节在前)A=01234567,B=89ABCDEF,C=FEDCBA98,D=76543210。
(4) 以分组为单位对消息进行处理,每一个分组都经过压缩函数HMD5处理;HMD5
有4轮处理过程,每轮有16步迭代,4轮处理过程的处理结构一样,所用逻辑函数不同,分别表示为F、G、H、I;每轮的输入为当前处理的消息分组和缓冲区当前的值,输出仍存放在缓冲区中。最后第四轮的输出与第一轮输入的缓冲区值V相加,相加时将V看做4个32比特的字,每个字与第四轮输出的对应的字按模232相加,相加结果为HMD5的输出。
(5) 消息的所有分组均被处理完后,最后一个HMD5的输出即为产生的128位消息摘要。 二、 SHA-1/256算法
SHA的全称为Secure Hash Algorithm(安全杂凑算法),SHA 家族的五个算法分别是
SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,由美国国家安全局 (NSA) 所设计,并由美国国家标准与技术研究院(NIST)发布,后四者有时并称为SHA-2。
SHA-1基于MD4算法,算法的输入最大长度为264-1比特,分为512比特长的分组,输出为160比特的消息摘要。处理过程如下:
(1) 对消息进行填充,与MD5第一步相同。
(2) 附加消息长度,与MD5第二步类似,不同的是以大端(最高有效字节/位存储于低地
址字节/位)方式来表示消息被填充前的长度。
(3) 对消息摘要缓冲区初始化,算法使用160比特长的缓冲区来存储中间结果和最终散
列值,将缓冲区表示成5个32比特长的寄存器A、B、C、D、E,每个寄存器以大端方式存储数据,初始值为(十六进制,高位字节在前)A=67452301,B=EFCDAB89,C=98BADCFE,D=10325476,E=C3D2E1F0。
(4) 以分组为单位对消息进行处理,每一个分组都经过压缩函数HSHA处理;HSHA有
4轮处理过程,每一轮又有20步迭代;4轮处理过程的处理结构一样,所用逻辑函数不同,分别表示为f1、f2、f3、f4;每轮的输入为当前处理的消息分组和缓冲区当前的值,输出仍存放在缓冲区中。最后第四轮的输出与第一轮输入的缓冲区值V相加,相加时将V看做5个32比特的字,每个字与第四轮输出的对应的字按模232相加,相加结果为HMD5的输出。
(5) 消息的所有分组均被处理完后,最后一个HSHA的输出即为产生的160位消息摘要。 SHA-256使用6个逻辑函数,均基于32位的字进行操作,算法输出的消息摘要为256位。
SHA与MD5处理过程类似,主要区别在于所使用的压缩函数不同。 三、 HMAC算法
HMAC的全称为Hash-based Message Authentication Code(基于散列的消息认证码),HMAC将散列函数作为一个黑盒使用,,散列函数的实现可作为实现HMAC的一个模块,并可使用新模块代替旧模块。
设H为嵌入的散列函数,M为HMAC的输入消息(包括散列函数所要求的填充位),Yi(0≤i≤L-1)是M的第i个分组,L为M的分组数,b为一个分组中的比特数,n为嵌入的散列函数所产生的散列值的长度,K为密钥,若密钥长度大于b,则将密钥输入到散列函数中产生一个n比特长的密钥,K+是左边将填充0后的K,K+的长度为b比特,ipad为b/8个00110110,opad为b/8个01011010;则算法的输出可表示为:
正在阅读:
散列函数实验原理05-12
《大气污染控制工程》课程教学大纲资料03-08
综合测试(4)05-02
金蝶K3供应链常见问题集609-25
2020年幼师个人实习感悟09-13
年产3000吨饲料级动物油脂提取项目可行性研究报告06-06
最新中考专题江苏省连云港市中考地理试卷(word版含解析)09-22
初一奥数专题十一元一次方程08-16
电力安装工程施工四措03-22
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 函数
- 原理
- 实验
- 社会主义市场经济概论简答题及答案
- 重防腐涂料的涂装施工 - 图文
- 中班《3-6岁儿童学习与发展指南》
- 隧道锚杆支护三级技术交底 - 图文
- 石油化工行业定额培训材料20120405
- 事业单位考试计算机基础试题(22)
- 信息技术教学的困惑与问题
- 写在中考之后
- 东营小学活动育人课程建设汇报材料
- Ansys作业(有限元)
- 电大工商企业经营管理模拟
- 220k苦水升压站运行规程
- 大学语文课后思考题答案
- 小学语文鲁教版《五年级下》《第五单元》《18 十六年前的回忆》
- l10千伏单电源环形网络相间短路保护的整定计算 - 图文
- 基于PLC的起重机控制系统设计
- 幼儿园班务管理 - 图文
- 2018届高三上学期10月月考试题英语含答案
- 现场监理工作流程及具体内容 - 图文
- 新版《医疗器械管理条例》