设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 957|回复: 0

[应用] 常用加解密那些事之数字摘要

[复制链接]

310

主题

5221

金钱

8999

积分

高级用户

发表于 2016-11-10 15:06:47 | 显示全部楼层 |阅读模式


常用的数字摘要算法有MD5,SHA等,下面这对这些数字摘要算法来进行介绍。

将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理。


MD5算法

消息摘要算法版本5(Message-Digest Algorithm 5)即MD5,由Ron Rivest(RSA公司)在1992年提出,目前被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。MD2、MD4、MD5都产生16字节(128位)的校验值,一般用32位十六进制数表示。MD2的算法较慢但相对安全,MD4速度很快,但安全性下降,MD5比MD4更安全、速度更快。


介绍

MD5 报文摘要算法:MD5 报文摘要算法将任意长度的信息作为输入值,并将其换算成一个 128 位长度的"指纹信息"或"报文摘要"值来代表这个输入值,并以换算后的值作为结果。MD5 算法主要是为数字签名应用程序而设计的;在这个数字签名应用程序中,较大的文件将在加密(这里的加密过程是通过在一个密码系统下[如:RSA]的公开密钥下设置私有密钥而完成的)之前以一种安全的方式进行压缩。[来自RFC1321]

MD5用途广泛,对数据生成信息摘要放置被篡改,为大文件生成唯一的MD5信息摘要,保证文件未被修改。


实现原理:

MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

MD5原理参考:
MD5算法原理

SHA1和MD5算法详解和源码


SHA算法

安全散列算法(SHA)能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。也是一种比较常用的数据摘要算法,目前SHA家族主要有五个算法,对于这几种算法SHA家族中有介绍。


介绍

SHA(Secure Hash Algorithm)是由美国专门制定密码算法的标准机构——美国国家标准技术研究院(NIST)制定的,SHA系列算法的摘要长度分别为:SHA为20字节(160位)、SHA256为32字节(256位)、 SHA384为48字节(384位)、SHA512为64字节(512位),由于它产生的数据摘要的长度更长,因此更难以发生碰撞,因此也更为安全,它是未来数据摘要算法的发展方向。由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。

目前SHA1的应用较为广泛,主要应用于CA和数字证书中,另外在目前互联网中流行的BT软件中,也是使用SHA1来进行文件校验的。


实现原理

给消息附加填充位使其模512与448同余(M%512 == 448)。即使满足了条件也要填充512位(比特)。填充过程是这样的:先补一位1,后面一律补0,直至满足条件。因此至少填充1位,最多填充512位。

      因为我们存储的时候是以字节为单位存储的,所以我们的消息的长度(单位:位)一定是8的倍数。而我们填充的时候也一定是8位,8位的来填充。也即不可能只填充一个二进制位,至少是8个二进制位(一个字节)。因此最少填充1个字节,最多填充64个字节(64*8=512)。

      在附加填充位完成之后,还要附加长度,即附加64位数据来存储原始消息的长度。因为在附加填充位完成之后,消息长度(单位:位)是512与448同余,而此时再附加64位之后,消息长度就变成了512的整数倍。

      最后我们开始计算消息摘要的时候,就是每512位为一组开始计算的。

其详细的实现参见什么是安全散列算法SHA256?


作者 : 木夜溯
来源 : 简书

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表