文章总结: 文章介绍了密码学基础中的Hash函数、数字签名和安全协议三大核心概念。Hash函数部分详细解释了MD5、SHA和SM3算法的特点与应用;数字签名部分阐述了其非否认性、真实性和可鉴别性三大特性;安全协议部分则介绍了Diffie-Hellman密钥交换和SSH服务的工作原理。这些内容构成了网络安全的基础知识体系,对信安工程师具有重要参考价值。
综合评分: 84
文章分类: 网络安全,安全培训,应用安全,安全建设,技术标准
信安工程师学习笔记(4):密码学基础(下)
原创
Caigensec
菜根网络安全杂谈
2025年7月21日 12:39
安徽
点击标题下「蓝色微信名」可快速关注
免责声明:本公众号尊重知识产权,如有侵权请联系我们删除。
第3章 密码学基础(下)
1、Hash 函数
杂凑函数简称 Hash 函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或消息摘要),并且任意不同消息或文件所生成的哈希值是不一样的。令h表示 Hash数,则h满足下列条件:
1) h的输入可以是任意长度的消息或文件M;
2) h的输出的长度是固定的;
3) 给定h和M, 计算 h(M) 是容易的;
4) 给定h的描述,找两个不同的消息 M1和M2, 使得 h(M1)=h(M2) 是计算上不可行的。
Hash 函数的安全性,是指在现有的计算资源下,找到 1个碰撞是不可能的 ,Hash 函数在网络安全应用中,不仅能用于保护消息或文件的完整性,而且也能用作密码信息的安全存储。
(1)MD5 算法
MD5 (Message Digest Algorithm-5) 算法是由Rvest设计的,于1992 年公开, RFC 1321 对其进行了详细描述。 MD5 512 位数据块为单位来处理输入,产生 128 位的消息摘要,即MD5 能产生 128 比特长度的哈希值。 MD5 使用广泛,常用在文件完整性检查 。但是,据最新研究表明, MD5 的安全性受到挑战,王小云教授及其研究团队提出了 Hash 函数快速寻找碰撞攻击的方法,相关研究工作表明 MD5 的安全性已经不足。
(2)SHA 算法
SHA (Secure Hash Algorithm) 算法由 NIST 开发,并在 1993 年作为联邦信息处理标准公布。SHA-1 MD5 的设计原理类似,同样也以 512 位数据块为单位来处理输入,产生 160位的哈希值,具有比 MD5 更强的安全性 SHA 算法的安全性不断改进,已发布的版本有 SHA-2、SHA-3 SHA 算法 生的哈希值长度有 SHA-224、SHA-256、SHA-384、SHA-512 等。
(3)SM3 国产算法
SM3 是国家密码管理局于 2010 年公布的商用密码杂凑算法标准 该算法消息分组长度为512 比特,输出杂凑值长度为 256 比特,采用 Merkle-Damgard 结构。
2、数字签名
数字签名 (Digital Signature) 是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。
(1) 非否认。签名者事后不能否认自己的签名。
(2) 真实性。接收者能验证签名,而任何其他人都不能伪造签名。
(3) 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。
一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有 RSA 签名体制、 Rabin签名体制、 ElGamal 签名体制和 DSS (Data Signature Standard) 标准。
3、安全协议
(1)Diffie-Hellman 密钥交换协议
核心: 利用离散对数问题的数学困难性(给定 g^a mod p 结果 A,求 a 非常难)。
步骤:
双方公开约定一个大素数 p 和一个整数 g(生成元)。
Alice 秘密选一个大数 a,计算 A = g^a mod p,公开发送 A 给 Bob。
Bob 秘密选一个大数 b,计算 B = g^b mod p,公开发送 B 给 Alice。
Alice 用收到的 B 和她的 a 秘密计算 K = B^a mod p。
Bob 用收到的 A 和他的 b 秘密计算 K = A^b mod p。
两人独立算出的 K 相同,K = g^(a*b) mod p 就是共享密钥。
(2)SSH服务
SSH是Secure Shell 的缩写,即“安全外壳”,它是基于公钥的安全应用协议,由 SSH输层协议、 SSH 用户认证协议和 SSH 连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。
THE END
亲爱的朋友,若你觉得文章不错,请点击关注。你的关注是笔者创作的最大动力,感谢有你!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:菜根网络安全杂谈 Caigensec《信安工程师学习笔记(4):密码学基础(下)》