从零学习 CA 系列 (六) -- 常见摘要算法分析

简介: 本文参考《PKI/CA 与数字证书技术大全》书籍,如有理解bug, 请大家指正。MD5MD5 是 MD4 的改进版,以512位分组来处理输入的信息,产生128位散列值。

本文参考《PKI/CA 与数字证书技术大全》书籍,如有理解bug, 请大家指正。

MD5

MD5 是 MD4 的改进版,以512位分组来处理输入的信息,产生128位散列值。
MD5 算法的计算过程主要包括以下步骤:

(1) 预填充

首先,对信息进行填充,使其位长对 512 求余的结果等于 448, 即信息的位长(Bits Length) 被扩展至 N x 512 + 448 或 N x 64 + 54 个字节(N 为一个正整数)。填充的方法为:在信息的后面填充一个1和多个0,直到满足上面的条件。然后,再附加一个64位二进制表示的填充前信息长度。经过这两步处理,使消息长度恰好是512位的整数倍。

(2) 主循环

主循环的次数为信息中512位分组的数目。MD5 中需要4个32位的链接变量: A = 0x01234567, B = 0x89abcdef, C = 0xfedcba98, D = 0x76543210。
每个主循环有4轮(MD4 只有 3 轮), 每轮循环都很相似, 每轮16次操作。在 主循环开始前,先将 4 个链接变量复制到另外4个变量中:A到a, B到b,C到c, D到d。第一轮进行16次操作。每次操作对 a,b,c,d其中3个进行一次非线性函数运算,然后将所得结果加上第4个变量、512位分组数据和一个常数。在将所得结果向右环移一个不定的数,并加上 a, b, c, 或 d 中的一个。最后用该结果取代 a, b, c,或 d 中之一。
每个主循环完成以后,将 A、B、C、D分别加上 a、b、c、d,然后用下一个512位分组数据继续进行主循环运算,直到所有分组都完成主循环运算。

(3) 输出处理

将最后一个主循环生成的 A、B、C、D这四个32位值进行级联,生成一个128位的摘要值。

SHA1

SHA1 是以 512 位分组来处理输入信息,产生 160 位散列值。
SHA1 算法计算过程与 MD5 类似,主要包括如下步骤。

(1) 预填充

填充方法与 MD5 完全一致。

(2) 主循环

主循环的次数为信息中512位分组的数目。SHA1 中需要5个32位的链接变量: A = 0x67452301, B = 0xefcdab89, C = 0x98badcfe, D = 0x10325476, E = 0xc3d2e1f0。
每个主循环有4轮, 每轮20次操作。在 主循环开始前,先将 5 个链接变量复制到另外5个变量中:A到a, B到b,C到c, D到d, E到e。每次操作对 a, b, c, d, e其中3个进行一次非线性函数运算,然后进行与 MD5 中类似的移位运算和加运算。
每个主循环完成以后,将 A、B、C、D、E分别加上 a、b、c、d、e,然后用下一个512位分组数据继续进行主循环运算,直到所有分组都完成主循环运算。

(3) 输出处理

将最后一个主循环生成的 A、B、C、D、E这5个32位值进行级联,生成一个160位的摘要值。

SM3

SM3 算法是由中国国家密码管理局于2012年12月17日发布的摘要算法,主要满足电子认证服务系统等应用需求。
针对长度为 l(l < 2 ^ 64)比特的消息m,SM3 算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为256位。其中填充过程为:假设消息m的长度为l位。首先将位“1”添加到消息的尾未,再添加k个“0”,k 是满足 l + 1 + k = 448 mod 512 的最小的非负整数;然后在添加一个 64 位的比特串,该比特串是长度 l 的二进制表示;填充后的消息 m' 的比特长度为 512 的倍数。

目录
相关文章
|
4月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
185 0
|
6月前
|
机器学习/深度学习 边缘计算 算法
NOMA和OFDMA优化算法分析
NOMA和OFDMA优化算法分析
366 127
|
8月前
|
数据采集 机器学习/深度学习 算法
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
别急着上算法,咱先把数据整明白:大数据分析的5个基本步骤,你都搞对了吗?
566 4
|
3月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
269 3
|
3月前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
243 1
|
3月前
|
存储 边缘计算 算法
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
|
4月前
|
机器学习/深度学习 算法 5G
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
【MUSIC、最大似然与克拉美-罗下界】MUSIC与ESPRIT 算法来估计到达角(AoA),并尝试推导克拉美-罗下界(CRLB)以分析其性能研究(Matlab代码实现)
207 0
|
5月前
|
编解码 算法 5G
MIMO雷达空间谱估计中Capon算法与MUSIC算法的对比分析及实现
MIMO雷达空间谱估计中Capon算法与MUSIC算法的对比分析及实现
441 2
|
5月前
|
人工智能 自然语言处理 算法
2025 年 7 月境内深度合成服务算法备案情况分析报告
2025年7月,中央网信办发布第十二批深度合成算法备案信息,全国389款产品通过备案,服务提供者占比超七成。截至7月14日,全国累计备案达3834款,覆盖文本、图像、音视频等多模态场景,广泛应用于生活服务、医疗、金融等领域。广东以135款居首,数字人、AI客服等C端应用主导,民营企业成主力,国企聚焦公共服务。随着AI政策推动,备案已成为AI产品合规上线关键环节。
|
8月前
|
存储 监控 算法
员工行为监控软件中的 Go 语言哈希表算法:理论、实现与分析
当代企业管理体系中,员工行为监控软件已逐步成为维护企业信息安全、提升工作效能的关键工具。这类软件能够实时记录员工操作行为,为企业管理者提供数据驱动的决策依据。其核心支撑技术在于数据结构与算法的精妙运用。本文聚焦于 Go 语言中的哈希表算法,深入探究其在员工行为监控软件中的应用逻辑与实现机制。
219 14

热门文章

最新文章