RipeMD
2024年11月11日约 430 字大约 1 分钟
2.4 RipeMD
RIPEMD (RACE原始完整性校验讯息摘要)是一种加密哈希函数,由 鲁汶大学 Hans Dobbertin,Antoon Bosselaers 和 Bart Prenee组成的COSIC 研究小组发布于1996年。
RIPEMD是以MD4为基础原则所设计的 ,而且其表现与更有名的SHA-1类似。
RIPEMD-160 是RIPEMD系列中最常见的版本。 RIPEMD-160是设计给学术社群所使用的,刚好相对于国家安全局 所设计SHA-1和SHA-2算法。
同时也存在着128,256-320位元的这种算法,称为RIPEMD-128,RIPEMD-256和RIPEMD-320。
算法流程
RIPEMD算法采用64位输入,分5步执行,最终输出128位哈希值。具体步骤如下:
- (1)初始化:将输入消息分为512字节,并进行初始化处理。
- (2)循环处理:对512字节的数据进行12轮的循环处理,每轮包括4个步骤:
- a. 数据填充:将512字节的数据扩展为64字节,填充至80字节。
- b. 子哈希计算:将填充后的数据分为16个部分,每个部分计算出一个32位子哈希值。
- c. 异或操作:将16个32位子哈希值进行异或操作,得到一个64位的中间哈希值。
- d. 循环左移:将中间哈希值循环左移一定的位数,作为下一轮的输入。
- (3)最终处理:循环处理结束后,将最后得到的64位哈希值与初始哈希值进行异或操作,得到最终的128位哈希值。
代码样例
CryptoJS
return CryptoJS.RIPEMD160('a12345678');