0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

安全哈希算法的基础知识,如何使用算法进行身份验证

星星科技指导员 来源:ADI 作者:ADI 2022-12-21 15:37 次阅读

本应用笔记介绍了安全哈希算法(SHA)的基础知识,并讨论了该算法的变体。然后简要介绍了如何使用算法进行身份验证,包括哈希消息身份验证代码 (HMAC) 的概念。最后,本文介绍了一些Maxim安全认证器,这些认证器可用于非常轻松地为安全应用部署SHA算法。

介绍

在本应用笔记中,我们将讨论广泛用于对称密钥加密的安全哈希算法(SHA)。SHA 函数背后的基本思想是获取可变大小的数据并将其压缩为固定大小的位字符串输出。这个概念称为哈希。SHA 函数是一系列哈希算法,通过美国国家标准与技术研究院 (NIST) 的监督随着时间的推移而开发。其中最新的是SHA-3功能。Maxim拥有一系列安全认证器产品,提供SHA-2和SHA-3功能。

图 1 显示了安全哈希生成的基本概念。

pYYBAGOit62AWZXwAAA7ABoDSzk619.png?imgver=1

图1.安全哈希生成,基本概念。

SHA 特性

SHA 函数具有以下特征:

它们具有可变的输入长度和固定的输出长度。

它们是单向函数。图 1 显示,除了尝试每个可能的输入文本之外,使用生成的哈希值重新生成输入文本是不可行的。对于足够大的输入,这在计算上变得不可能。

如果将相同的输入消息馈送到 SHA 函数,它将始终生成相同的结果哈希。

使用两个不同的输入值无法生成相同的哈希值。这称为“防撞性”。

输入值的微小变化,即使是单个位,也会完全改变生成的哈希值。这被称为“雪崩效应”。

如果哈希函数满足上述所有条件,则将其视为强哈希函数。

SHA 函数的类型

目前使用的一些 SHA 函数包括:

SHA-1

SHA-2

SHA-3

由于SHA-1正在逐步淘汰,不建议用于任何新设计,因此本应用笔记仅讨论SHA-2和SHA-3。

SHA-2

SHA-2 函数根据输出位长度有四种主要类型,如下所示:

SHA-224 – 哈希长度为 224 位。

SHA-256 – 哈希长度为 256 位。

SHA-384 – 哈希长度为 384 位。

SHA-512 – 哈希长度为 512 位。

pYYBAGOit6-ADvwiAAE-JJ2q97E769.png?imgver=1

图2.SHA-256 – 哈希生成流。

首先填充输入消息,以确保它完全适合“n”个 512 位块。

SHA-3

SHA-3 函数没有预定义的输出长度。输入和输出长度也没有最大值。为了与 SHA-2 进行比较,我们可以根据输出位长度定义四种主要类型:

SHA3-224 – 哈希长度为 224 位。

SHA3-256 – 哈希长度为 256 位。

SHA3-384 – 哈希长度为 384 位。

SHA3-512 – 哈希长度为 512 位。

所有 SHA-3 类型都使用 Keccak 海绵功能。就像海绵一样,第一步是吸收或吸收输入信息。在下一阶段,输出哈希被挤出。图 3 使用 SHA3-256 函数的框图说明了这些阶段。

poYBAGOit7GAKF8_AAEtkIvrnf8503.png?imgver=1

图3.SHA3-256 – Keccak 海绵哈希生成流程。

图 3 图中的迭代函数接收 1600 位数据,使用特定算法对其进行 24 轮排列,然后将其作为 1600 位块传递到下一阶段。这一直持续到吸收阶段完成。

吸收阶段完成后,最后一个 1600 位块将传递到压缩阶段。在这种情况下,由于 SHA3-256 输出哈希长度小于 1088 位,因此压缩阶段不需要任何迭代函数。最后阶段的前 256 位是输出哈希。

例如,如果所需的哈希长度为 2500 位,我们将需要迭代函数的三个实例才能获得所需的长度哈希。

安全哈希和 HMAC 之间的差异

在探索消息身份验证之前,了解安全哈希和哈希消息身份验证代码 (HMAC) 之间的差异非常重要,如图 4 所示。本质上,安全哈希使用哈希算法(如 SHA-3)生成消息的固定长度哈希,而不考虑消息长度。HMAC 与此类似,但使用密钥作为哈希引擎的附加输入。它还生成固定长度的哈希,而不考虑输入消息长度。

pYYBAGOit7OAQ6QNAADa3res9-0828.png?imgver=1

图4.安全哈希和 HMAC。

使用 SHA-3 的消息身份验证

图 5 演示了如何使用 SHA-3 对消息进行身份验证的示例,其中显示了已讨论的所有概念。

pYYBAGOit7WAfLsSAABwVajD8cE901.png?imgver=1

图5.使用 SHA-3 HMAC 进行消息身份验证。

在图 5 中,Alice 通过将消息与特定密钥一起馈送到 SHA-3 引擎来计算消息的 HMAC。Alice 之前已与 Bob 安全地共享此密钥。

Alice 将生成的 HMAC 与消息一起发送给 Bob。然后,Bob 使用之前与 Alice 共享的相同密钥生成自己的消息 HMAC。鲍勃将他生成的HMAC与他从爱丽丝那里收到的HMAC进行了比较。如果它们匹配,则消息未被篡改并且是真实的。在这种情况下,有人可以截获 HMAC 和消息,然后更改消息并生成新的 HMAC 并将其发送给 Bob。但是,这将不起作用,因为拦截器将没有密钥,并且收到的 HMAC 将与计算的 HMAC 不匹配。因此,鲍勃将意识到消息不真实。

这个序列最重要的方面是 Alice 和 Bob 对其他人保密他们的共享密钥。

Maxim的安全认证器产品,如DS28E50,内置SHA引擎和ChipDNA等多种安全功能。唰唰��这有助于根据用户的要求保护任何密钥。更多信息参见Maxim应用笔记6767:ChipDNA物理不可克隆功能技术如何保护嵌入式系统

内置 SHA 引擎的安全身份验证器

表1列出了Maxim提供的各种安全认证器以及其他主要特性和目标应用。

部分 SHA 发动机 其他功能 典型应用
DS28E50 SHA-3 2Kb内存,芯片DNA 医疗传感器和工具的认证
物联网节点认证
外设身份验证
打印机墨盒识别和认证
DS28E16 SHA-3 256位安全存储器,低成本 打印机墨盒和电池识别和认证
DS28E15 DS28EL15 SHA-256 512位存储器,EL器件为低压(1.671V至1.89V)器件 医疗耗材识别和认证
安全功能控制
打印机墨盒识别和认证
DS28E22 DS28EL22 SHA-256 2048位存储器,EL器件为低压(1.671V至1.89V)器件 网络连接设备的身份验证
打印机墨盒 ID/身份验证
传感器/附件认证和校准
系统知识产权保护
DS28E25 DS28EL25 SHA-256 4096位存储器,双向认证,EL器件为低压(1.671V至1.89V)器件 耗材的识别和认证
传感器/附件认证和校准
系统知识产权保护
DS1964S SHA-256 512 位内存,iButton 存取控制
耗材认证
DS28E36 DS28C36 SHA-256 8Kb 内存,双向 ECDSA 或 SHA-256 身份验证,两个 GPIO 附件和外设安全认证
安全存储主机控制器的加密密钥
DS28E83 SHA-256 10Kb OTP 内存,高抗辐射性 附件和外设安全认证
DS28E84 SHA-256 15Kb FRAM,10Kb OTP 内存,高抗辐射性 医疗耗材安全认证

总结

使用SHA来保护/验证实物或知识产权是一个非常简单的过程,前提是使用正确的支持工具。Maxim的安全认证器是实现这些目的的理想选择。它们内置了具有许多功能的 SHA 引擎,使实现任何应用程序的安全性成为一个相对简单的过程。每个器件都有全面的支持系统,如评估套件和免费软件,包括基于 C 的演示代码,以帮助开发人员快速部署其解决方案。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Maxim
    +关注

    关注

    8

    文章

    859

    浏览量

    86643
  • SHA
    SHA
    +关注

    关注

    0

    文章

    16

    浏览量

    8391
  • 安全认证器
    +关注

    关注

    0

    文章

    13

    浏览量

    9029
收藏 人收藏

    评论

    相关推荐

    无线身份验证的门禁控制系统设计方案

    公开安全政策的安全信息传输。这些TIP信息数据包由两个嵌套的对称密钥进行保护,其中含有“安全身份验证对象”(Secure Identity Object,简称SIO)信息。多个SIO可
    发表于 11-05 11:11

    facexx人脸识别身份验证迎来新技术革新

    安全。有了AI身份验证的技术人员,通过率将会更高,而且企业的资源也可以得到最优化,更重要的是办公安全也可以得到一个更大的保障,在节省人力物力的过程当中也可以让办公场景更高效,更安全
    发表于 12-19 15:06

    Vivado和SDK身份验证错误

    尝试运行SDK或Vivado的安装程序时,出现“身份验证错误:发生了未知异常。请验证您的用户ID和密码,然后重试”我可以登录该站点,另一位同事可以登录该站点。我们可以下载安装程序,但是当我们尝试安装
    发表于 01-02 14:55

    PN5180无法使用mifare classic进行身份验证怎么解决?

    试图将它与此处建议的示例进行比较但我找不到问题所在。问题1:是否有任何文档说明如何使用图表或易于理解的示例进行身份验证,类似于其他命令?问题 2:我必须进行
    发表于 03-23 08:46

    如何使用TapLinx针对Ultralight C进行身份验证

    使用 TapLinx 针对 Ultralight C 进行身份验证
    发表于 04-21 06:08

    人脸识别技术在远程身份验证中的应用

    传统的身份验证主要有帐户/密码或智能卡等方式,存在着易被破解盗用和遗忘丢失等风险。该文提出了一种在远程登录过程中利用人脸识别技术进行身份验证的解决方案。该方案
    发表于 07-07 13:00 20次下载

    人脸识别技术在远程身份验证中的应用

    传统的身份验证主要有帐户/密码或智能卡等方式,存在着易被破解盗用和遗忘丢失等风险。该文提出了一种在远程登录过程中利用人脸识别技术进行身份验证的解决方案。该方案
    发表于 12-22 16:00 15次下载

    什么是身份验证和授权

    什么是身份验证和授权 根据RFC2828(Internet Security Glossary,May2000),验证是“校验被或向某系统实体声明的身份的过程”。此处的关键字
    发表于 04-03 16:03 5677次阅读

    什么是询问握手身份验证协议

    什么是询问握手身份验证协议 CHAP(询问握手身份验证协议)是用于远程登录的身份验证协议,通过三次握手周期性的校验对端的身份,在初始链
    发表于 04-03 16:06 2587次阅读

    什么是密码身份验证协议

    什么是密码身份验证协议 PAP是一种身份验证协议,是一种最不安全身份证协议,是一种当客户端不支持其它身份认证协议时才被用来
    发表于 04-03 16:07 1510次阅读

    哈希哈希算法的介绍

    聊到区块链的时候也少不了会听到“哈希”、“哈希函数”、“哈希算法”,是不是听得一头雾水?别急,这一讲我们来讲讲什么是哈希
    的头像 发表于 05-22 14:11 5971次阅读
    <b class='flag-5'>哈希</b>及<b class='flag-5'>哈希</b><b class='flag-5'>算法</b>的介绍

    什么是哈希算法?有什么特征和未来?

    当新人在学区块链技术的时候,都会听到哈希哈希算法,这似乎是无处不在的安全性保证。例如比特币或者以太坊这种运行去中心化网络和共识的机器,都会有上万个节点通过P2P连接,并且需要“无需可
    发表于 08-13 08:30 1.1w次阅读

    何使用专用身份验证IC设备连接应用中的安全

    本文将介绍Maxim Integrated的专用身份验证IC之前的对称和非对称身份验证基础知识。然后,本文将讨论如何使用这些IC轻松添加对行业标准认证机制的支持。需要这些机制来确保在诸如物联网(IoT),系统中的
    的头像 发表于 02-06 09:43 3388次阅读
    何使用专用<b class='flag-5'>身份验证</b>IC设备连接应用中的<b class='flag-5'>安全</b>

    PCB身份验证

    电子发烧友网站提供《PCB身份验证器.zip》资料免费下载
    发表于 07-22 10:09 2次下载
    PCB<b class='flag-5'>身份验证</b>器

    通过质询和响应身份验证实现安全访问控制

    本应用笔记回顾了门禁控制的关键:机械、磁性、接触式、RFID。它描述了质询和响应身份验证(质询、机密和消息身份验证代码或 MAC)以及 SHA-1 算法的重要作用。最后,本文解释了为什么质询和响应
    的头像 发表于 01-29 15:58 915次阅读
    通过质询和响应<b class='flag-5'>身份验证</b>实现<b class='flag-5'>安全</b>访问控制