密码学入门——HMAC

这篇具有很好参考价值的文章主要介绍了密码学入门——HMAC。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是HMAC

HMAC是一种使用单向散列函数来构造消息认证码的方法(RFC2104),其中 HMAC的H就是Hash的意思。

HMAC 中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC,如果将来设计出新的单向散列函数,也同样可以使用。

使用SHA-1、SHA-224、SHA-256、SHA-384、SHA-512所构造的HMAC,分别称为HMAC-SHA1、HMAC-SHA-224、HMAC-SHA-256、HMAC-SHA-384、HMAC-SHA-512。

二、HMAC的步骤

密码学入门——HMAC,密码学,hmac
下面是 HMAC 的步骤:

  1. 选择一个适当的哈希函数 H,通常使用 SHA-256、SHA-384 或 SHA-512 等安全的哈希函数。
  2. 确定一个密钥 K,长度可以是任意值。如果密钥长度不足 H 函数的输入块长度,则需要对密钥进行填充。
  3. 对密钥进行预处理。如果密钥长度超过 H 函数的输入块长度,则需要将 K 哈希成 H 函数的输出长度。
  4. 对消息 M 进行填充,使其满足 H 函数的输入块长度要求。
  5. 将处理后的密钥 K 和填充后的消息 M 输入到 HMAC 算法中。
  6. HMAC 算法根据以下公式计算哈希值:
    HMAC(K, M) = H((K ⊕ opad) || H((K ⊕ ipad) || M))
    其中,“||”表示拼接,opad 和 ipad 是固定的填充值,分别为 0x5c 和 0x36。
    输出 HMAC 值作为消息的认证码。

注意,为了提高安全性,每个消息都应该使用不同的密钥。如果多个消息使用相同的密钥,则可能会存在安全隐患。文章来源地址https://www.toymoban.com/news/detail-562363.html

到了这里,关于密码学入门——HMAC的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络安全——密码学入门

            网络安全是指在网络领域、专业领域的网络安全包括在基础计算机网络基础设施中所做的规定,网络管理员采取的策略来保护网络及网络可访问资源免受未经授权的访问,以及对其有效性(或缺乏)的持续不断的监控和测量的结合。 1.1.1 保密性         只有授

    2024年01月19日
    浏览(53)
  • 密码学学习笔记(二十一):SHA-256与HMAC、NMAC、KMAC

    SHA-2是广泛应用的哈希函数,并且有不同的版本,这篇博客主要介绍SHA-256。 SHA-256算法满足了哈希函数的三个安全属性: 抗第一原像性 - 无法根据哈希函数的输出恢复其对应的输入。 抗第二原像性 - 给定一个输入和它的哈希值,无法找到一个不同于该输入的新输入,使得这两

    2024年02月11日
    浏览(83)
  • 【11.10】现代密码学1——密码学发展史:密码学概述、安全服务、香农理论、现代密码学

    参考:密码学发展简史 骆婷老师的《现代密码学(32H)》课程,笔记+查找的资料补充 期末为闭卷考试的形式 密码学早在公元前400多年就已经产生,人类使用密码的历史几乎与使用文字的时间一样长,密码学的发展大致可以分为 3 个阶段: 1949年之前的古典密码学阶段; 1949 年

    2024年02月04日
    浏览(51)
  • 【密码学】高级密码学-1

      通信双方使用 同一个密钥 ,通过使用加密算法配合上密钥来加密,解密过程采用加密过程的逆过程配合密钥即可。   常见的对称加密算法有DES、AES等。   对称加密的缺点:不能在不安全的网络上传输密钥,一旦密钥泄露则加密通信失败。   非对称加密使用了一

    2024年02月05日
    浏览(54)
  • 【密码学】高级密码学-2

    🍬第⑤部分由L3H_CoLin编写,有一些修改。🍬 Song, Dawn Xiaoding, David Wagner, and Adrian Perrig. “Practical techniques for searches on encrypted data.” Proceeding 2000 IEEE Symposium on Security and Privacy. SP 2000. IEEE, 2000. 数据的安全外包存储 利用密码算法加密明文数据,使得云平台无法获得额外信息 解决

    2024年02月16日
    浏览(38)
  • 【密码学】python密码学库pycryptodome

    记录了一本几乎是10年前的书(python绝技–用python成为顶级黑客)中过时的内容 里面提到了python标准库中自带的crypt库,经验证Python 3.12.1中并没有这个自带的库,密码学相关的库目前(2024.1.12)是一个自包含库pycryptodome,导入的是 import Crypto pypi库的页面 可以在文档中查看详

    2024年01月17日
    浏览(57)
  • 密码学基本原理和发展——古典密码学

      目录 1 滚筒密码 2 棋盘密码 3 凯撒密码 4 单表代换与多表代换 4.1 单表代换 4.2 多表代换         密码技术最早起源于公元前404年的希腊,此后密码大致经历了 古典密码、近代密码和现代密码三个阶段。         古典密码(公元前五世纪~19世纪末)代表性的是 滚桶密

    2024年02月05日
    浏览(59)
  • 密码学基本原理和发展——近代密码学

    目录 1 密码机通信模型 2 Enigma密码机构造 3 Enigma密码机加解密过程 3.1 加密过程 3.2 解密过程 4 Enigma密码机的安全性 5 Enigma密码机破解 5.1 波兰雷耶夫斯基破解 5.2 图灵破解        近代密码一般指20世纪初~20世纪70年代期间的密码技术。20 世纪初电报的出现第一次使远距离

    2024年02月06日
    浏览(54)
  • 程序猿成长之路之密码学篇-密码学简介

    在阅读本文前需要了解的术语: 授权人/非授权人:授权人指获取了查看数据权限的用户,非授权人则是指未获取到权限的用户。 明文/密文:明文指没有加密的数据内容,密文是指加密后的数据内容 CIA(密码学中不是美国中情局的意思,是信息安全三要素): C-Confidentiality 机

    2024年02月04日
    浏览(42)
  • 【密码学】量子安全的密码学算法以及原理介绍

    (1)“代数格密码套件”(CRYSTALS)包含两个密码原语Kyber和Dilithium。Kyber是一种抗适应性选择密文攻击(IND-CCA2)安全密钥封装机制,Dilithium是一种高度不可伪造性(EUF-CMA)安全数字签名算法。两种密码都是为了应对量子计算机的攻击,并且在操作过程中只需更改几个参数即

    2024年02月11日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包