【学习笔记】SSL密码套件之哈希

本篇将介绍TLS/SSL密码套件中常用的哈希算法,包括Poly1305、SHA384、SHA256、SHA、MD5

  • 以上的哈希算法将作为 MAC 使用
    • MACMessage Authentication Code
      • 为批量数据提供了完整性(Integrity)以及真实性(Authentication
      • 过程:MAC首先需要双方拥有相同的密钥;当蓝色有信息要发送给绿色时,需要将哈希后的信息(摘要)与密钥相结合,然后将信息与摘要(digest)一同发给绿色;绿色收到后,用自己的密钥重新计算该摘要(将自己的密钥与信息相结合),然后验证2个摘要是否相同(一个是收到的摘要,一个是用绿色自己的密钥计算出来的摘要)
      • HMAC - MAC的具体实施(specific implementation)
    • 通常得到更大的摘要大小 - 意味着更安全
      • 使哈希碰撞(Collision)更罕见
  • MD5 - Message Digest algorithm #5
    • 128-bit Digest(摘要)
    • 1991年由Ron Rivest所创建
      • Ron Rivest还创建了RSA、RC4、MD2、MD4、RC6
    • 已经发表了产生碰撞(collision)的实际攻击
      • 自2010年起不再安全(作为直接散列(哈希)算法)
      • 在 HMAC 中使用MD5没有被认为是不安全的
      • 过程:在常规哈希中,我们对一段信息进行哈希,然后得到摘要(因而使用MD5是不安全的);HMAC多了一层,我们将信息与padding1和密钥相结合,然后计算出3者的结果得到摘要1,然后摘要1与padding2和同样的密钥相结合,得出结果摘要2。右下图灰色框都包含在HMAC中,因而HMAC的结果就是摘要2。
      • 为什么说md5不安全,因为我们能知道信息还有生成的摘要;而在HMAC中,我们不知道密钥是什么,也永远不知道摘要1是什么(隐藏在HMAC进程中),这意味着我们不是直接从信息→摘要,我们从看不到的信息,然后结合看不到的密钥和padding,得到看不见的摘要1,再然后将看不见的摘要1和看不见的padding、密钥结合,得到最终的摘要2;能够拿到信息并得到摘要2的人是那个拥有密钥的。因此,HMAC还是足够安全的
        • 如果可能,还是要避开MD5(使用MAC进行MD5将来会不安全,只是时间问题)
  • SHASHA1 - Secure Hash Algorithm 1
    • 160-bit Digest
    • 由NSA(U.S. National Security Agency,美国国家安全局)所创建
    • 在理论攻击中发现碰撞(collision)
      • 实际攻击的前兆(理论发现了,实际就不远了)
    • 作为直接哈希算法已经不再安全
      • 与HMAC配合使用的时候还是被认为是安全的(和MD5一样)
        • 因为摘要更大,所以避MD5更好,但还是那句话,能避免SHA1就避免
    • SHA1已经不再被电子签名(Digital Signatures)所接受
      • RSA签名:哈希内容,然后用RSA私钥进行加密
      • 证书签名中,SHA1自2016年不再被接受
  • SHA256SHA384(TLS/SSL使用这两者)
    • SHA2家族成员:
      • SHA-256产生256位的摘要
      • SHA-512产生512位的摘要
      • SHA-224产生256位的摘要,截断为224位
      • SHA-384产生512位的摘要,截断为384位
    • 由NSA(U.S. National Security Agency)所创建
    • 两者都被认为是安全的(对于哈希、签名、HMAC)
    • 未来某天会被SHA-3家族所取代
      • 通过公共竞赛创建(一般大家优先选择由公共竞赛创建的算法,而不是NSA)
  • Poly1305
    • 命名由来:Polynomial(多项式)MAC使用素数(2^130 - 5)
    • 用256位密钥生成128位摘要
    • 与SHA2家族比较(SHA384 / SHA256)
      • 优势:Poly1305更快
      • 劣势:Poly1305可支持性较低
      • Poly1305安全性相同
    • 主要优点是,Poly1305作为AEAD密码总是和CHACHA20相结合
      • 我们喜欢AEAD(Authentication Encryption with Associated Data)密码,因为它是未来

参考文献

1、网站:Practical Networking.net:Practical TLS

哈希图像检索是一种用于在大规模图像数据库中快速搜索相似图像的方法。在哈希图像检索中,图像被转换为哈希码,然后通过比较哈希码的相似性来确定图像之间的相似度。有几种常用的哈希算法可以用于图像检索,如SIFT、SURF、ORB等特征提取算法\[1\]。此外,还有一些基于哈希的图像检索方法,如VLAD、BOF等,可以用于处理海量数据的图像检索\[1\]。 在哈希图像检索中,可以使用不同的方法来计算图像之间的相似度。一种常用的方法是通过比较图像的颜色、纹理和局部特征来计算相似度\[2\]。另外,还可以使用KD-Tree、局部敏感哈希(LSH)和原子哈希函数等方法来在高维空间中进行图像检索\[2\]。 此外,还有一种基于监督学习和核的Hash算法,称为KSH算法。KSH算法利用核主要是为了解决线性不可分问题,通过监督学习学习到更有区分度的哈希值,从而降低特征维数\[3\]。 总之,哈希图像检索是一种用于在大规模图像数据库中快速搜索相似图像的方法,它可以通过提取图像特征和计算相似度来实现。不同的哈希算法和方法可以用于不同的图像检索任务。 #### 引用[.reference_title] - *1* *3* [图像检索传统算法学习笔记](https://blog.csdn.net/qq_39858278/article/details/83895342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [8月23日计算机视觉理论学习笔记——图像检索](https://blog.csdn.net/Ashen_0nee/article/details/126467437)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值