Hash算法

Hash 算法又名哈希、杂凑、散列算法等,可用来进行数字完整保护、消息认证、数字签名等,典型的hash 算法有MD SHA(Secure hash Algorithm) 等。Hash 算法时一种单向算法,从原始数据得到加密后数据,但是加密后数据无法恢复到原数据,主要理解下MD5 的算法流程
Hash 算法大致流程

MD5( 信息摘要算法 ) 简介
MD message digest 信息摘要的简写,输入的原始数据经过MD5 算法生成128 比特的摘要信息。MD 算法只能生成摘要信息,而不能从摘要信息恢复原始数据。
MD5 整体流程

Appending padding bits
增加padding 第一个数据为1 后续数据比特均为0 ,增加padding 后需要满足整体length mod 512 = 448

Append length
64 比特的长度信息,如果信息的总长度大于2^64 次方,则需要采用2^64 次方进行取模运算,添加数据长度后的总长度为512 的倍数。
Initialize MD buffer
需要128 比特进行存储初始及最终的信息摘要值,初始值A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 ;按字节填写Word A: 01 23 45 67 Word B: 89 AB CD EF Word C: FE DC BA 98 Word D: 76 54 32 10
Process message in 512-bit (16-word) blocks
将添加padding 和数据长度后的信息分成512 长度的多组进行处理,MD5 主要的生成流程

MD5 计算过程中,每个分组的计算可分为4 loop ,每个loop 采用F G H I 函数功能略有差别,而每个loop 又有16 step ,每个step 处理不同的X( 输入的分组数据) 亦即T 值,T 的定义参考后续说明

F G H I 的计算流程程类似,可参考下图实现流程

g 为运算函数, 亦即F G H I ,而CLSs 为左移s 为,s 在每步中是可以变化的,具体g 函数的功能如下

Output
输出结果ABCD A 为低位,D 为高位。
SHA 算法了解
SHA Secure Hash Algorithm 的缩写,SHA MD5 的差别主要在信息摘要长度、Hash 算法等方面,下图为SHA-1 160 比特的Hash 压缩过程

SHA 有几种类型,下图有一些简单的比较

HMAC 了解
MAC Message Authentication Codes 的简写,亦即生成消息认证的校验内容,HMAC Keyed-Hash Message Authentication Code 的缩写。操作方式MAC(text) = HMAC(K, text) = H((K0 opad )|| H((K0 ipad) || text))

处理流程如下,其中k 其实是K0,B 为字节个数,ipad 0x36 重复B 次,opad 0x5c 重复B 次。初始K 值长度需要和B 作比较产生出K0

数字签名流程


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值