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

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

3天内不再提示

密码学:现代方法的基础知识

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

加密密钥

保持加密应用程序的安全依赖于对称密钥和私钥,这些密钥和私钥始终保密。用于保密的方法也受到保护。

非对称密钥和对称密钥是现代密码学中使用的两种基本算法类型。非对称密钥算法使用私钥和公钥的组合,而对称算法仅使用私钥,通常称为密钥。表 1 提供了每种算法方法的主要特征的快照。

安全服务和功能实现 算法方法
对称密钥 非对称密钥
保密性 是的 是的
识别和
认证
是的 是的
正直 是的 是的
不可否认性 是,结合公钥/私钥算法 是的
加密 是,快速 是,慢
解密 是,快速 是,慢
整体安全性
密钥管理 需要在发送方和接收方交换密钥并保护密钥 需要保护发件人和收件人端的每个私钥
算法复杂性 易于理解 可能难以理解
密钥大小 128 位、192 位或 256 位或更长,但不需要像非对称密钥一样长(取决于密钥的保密性) 256 位、1024 位、2048 位、3072 位或更长。取决于棘手性(需要解决的时间和资源量)。
系统漏洞 密钥管理、
生成和使用不当
实施不当
攻击方法 蛮力,线性/差分密码分析 蛮力、线性/差分密码分析和甲骨文

让我们来看看如何使用这两种类型的算法来实现每个加密目标。

使用对称密钥算法的机密性

保密的主要目标是使信息远离所有不知情的人。在对称密钥加密系统中,这非常简单,是通过加密发送方和接收方之间交换的数据来实现的。发送方和接收方都可以访问用于加密和解密交换消息的同一密钥,如图 1 所示。

pYYBAGOgGT-Aewq3AABQIbrgTEI770.png?imgver=1

图1.对称密钥算法有助于使用私钥或密钥实现机密性。

只要密钥是安全的,并且只有发送方和接收方可以访问加密/解密密钥,即使传输过程中被截获,其他人也无法接收传输的消息。因此,消息保持“机密”。

使用非对称密钥算法的机密性

在非对称密钥系统中,接收者可以自由分发她/他的公钥。发送方获取公钥并验证其真实性。完成此操作需要几个步骤,如图 2 所示。为了简单起见,让我们假设发件人可以访问收件人的已验证公钥。然后,发件人使用该公钥加密邮件并将其发送给收件人。

poYBAGOgGUKAZd_-AABgSf6vemI737.png?imgver=1

图2.非对称密钥算法有助于通过使用公钥和私钥来实现机密性。

收件人的公钥在数学上与收件人的私钥相关。发件人和其他任何人都无法访问收件人的私钥。收件人收到消息后,私钥将用于解密消息。收件人的私钥是唯一可用于解密使用相关公钥加密的消息的私钥。由于私钥仅驻留在收件人手中,因此其他人或组织无法解密已发送的邮件。因此,消息保持“机密”。

使用对称密钥算法进行识别和身份验证

识别和身份验证的目标是首先识别对象或用户,然后对它们进行身份验证,以便我们知道我们正在与我们真正想要与之通信的人进行通信。

如何使用对称密钥方案实现这一点?图 3 显示了对称密钥识别和身份验证过程的简单示例。查看步骤 1 到 6 以更好地理解。步骤 4 使用称为“摘要”的概念。摘要或哈希是在大型数据集上计算的固定长度值。

poYBAGOgGUSAM5ITAABEdK0LIQU214.png?imgver=1

图3.此图显示了对称密钥标识和身份验证过程的简单示例。

为什么我们需要“随机数”?

冒名顶替者可以拥有收件人传输的最后一个摘要,然后使用该摘要发出“验证我”。这些类型的攻击称为“重放攻击”,即重新发送以前使用的摘要。使用“nonce”或一次性随机数进行身份验证可防止此类攻击。在这种情况下,身份验证将失败,因为对于每个身份验证,发送方都需要一个带有全新随机数的新摘要。这些数字通常使用批准的随机数生成器生成。

现在,让我们研究一个使用 SHA3-256 算法进行标识和身份验证的真实示例。

使用 SHA-3 算法进行识别和身份验证

图 4 显示了对称密钥标识和身份验证过程的更完整示例。这使用 SHA-3 对称密钥算法,该算法是安全哈希算法 (SHA) 系列中的最新算法。Maxim Integred是首家在量产中采用SHA3-256安全认证器件的公司。查看图中的步骤 1 到 6,以更好地了解该过程。图 4 中的“随机数”基本上是防止重放攻击所需的“随机数”,如前面一节中的简单示例中所述。

pYYBAGOgGUaAIJkUAAC9jGeyqaE211.png?imgver=1

图4.此图显示了使用 SHA-3 的对称密钥算法的详细示例。

使用非对称密钥算法进行识别和身份验证

如前所述,识别和身份验证的目标是首先识别对象或用户,然后对它们进行身份验证,以便我们知道我们正在与我们真正想要与之通信的人进行通信。

如何使用非对称密钥方案实现这一点?图 5 显示了对称密钥识别和身份验证过程的简单示例。查看图中的步骤 1 到 6 以了解该过程。

poYBAGOgGU6AZhGbAABNx_Zno20560.png?imgver=1

图5.此图显示了使用非对称密钥算法进行标识和身份验证的简单示例。

为什么我们需要一个随机数?

冒名顶替者可以获得收件人传输的最后一个签名,然后使用该签名发出“验证我”。这些类型的攻击称为“重放攻击”,即重新发送以前使用的特征码。使用随机数或一次性随机数进行身份验证可防止此类攻击。在这种情况下,身份验证将失败,因为发件人需要一个新的签名,每个身份验证都有一个全新的随机数。这些数字通常使用批准的随机数生成器生成。

现在,让我们研究一个使用椭圆曲线数字签名算法 (ECDSA) 算法进行识别和身份验证的真实示例。

使用 ECDSA 算法进行识别和身份验证

图 6 显示了使用 ECDSA 非对称密钥算法的非对称密钥识别和身份验证过程的更完整示例。图中的步骤 1 到 6 可以帮助您更好地了解该过程。

pYYBAGOgGVGAVBd0AAC3DPg9sYk217.png?imgver=1

图6.使用 ECDSA 非对称密钥算法进行标识和身份验证的详细示例。

尽管此方法完成设备身份验证,但它不涵盖完整的系统身份验证过程。这包括验证收件人是否是系统的一部分,以及所需的设备数字证书验证。

比较加密算法

图 7 显示了对称和非对称密钥算法的密钥使用情况的并排比较。在进入下一个主题之前,我们需要了解以下两个概念之间的区别:

安全哈希

HMAC(散列消息身份验证代码)

poYBAGOgGVOAC922AAA-S6fVIlU940.png?imgver=1

图7.这是对称密钥和非对称密钥加密算法的比较。

图 8 说明了 HMAC 和安全哈希之间的差异。本质上,安全哈希使用哈希算法(如 SHA-3)来生成消息的固定长度哈希,而不考虑消息长度。HMAC 与此类似,但使用密钥作为哈希引擎的附加输入。它还生成固定长度的哈希,而不考虑输入消息长度。

pYYBAGOgGVWAXofSAABXJfQaY2M869.png?imgver=1

图8.HMAC 和安全哈希之间存在相似之处但主要区别。

使用对称密钥算法保持完整性

保持消息完整性的目标是确保收到的任何消息或连接的任何新设备都不会携带不需要的代码或信息。让我们看一个如何使用对称密钥算法(如 SHA-3)实现此目的的示例。稍后,我们将回顾这些算法如何工作的细节。

在图 9 中,发送方使用特定键计算消息的摘要。由于这是一个对称密钥方案,因此此密钥在发送方和接收方之间共享。使用密钥生成的摘要或哈希称为 HMAC(基于哈希的消息身份验证代码)。

poYBAGOgGVeAPDoSAABlAb-qOu4666.png?imgver=1

图9.SHA-3 对称密钥算法可保持完整性。

这是通过将消息和密钥提供给 SHA-3 引擎生成的。然后将生成的 HMAC 和消息发送给收件人。然后,接收者使用她拥有的密钥生成自己的 HMAC。然后比较两个 HMAC,如果它们匹配,则消息未被篡改。在这种情况下,有人可以截获 HMAC 和消息,然后更改消息并生成新的 HMAC 并将其发送给收件人。但是,这将不起作用,因为拦截器将没有收件人的密钥,并且HMAC将不匹配。

使用非对称密钥算法保持完整性

保持消息完整性的目标是确保收到的任何消息或连接的任何新设备都不会携带不需要的代码或信息。让我们看一个如何使用非对称密钥算法(如 ECDSA(椭圆曲线数字签名算法)实现此目的的示例。

这背后的基本思想是,发件人使用数字签名对消息进行签名,收件人验证签名,以确保收到的消息的完整性。

在图 10 中,发送方通过将消息馈送到 SHA-2 哈希引擎来计算消息的摘要。由于这是一个非对称密钥方案,因此发送方和接收方之间不共享此密钥。发送方有一个永远不会共享的私钥,而接收方有一个可以与许多人共享的公钥,反之亦然,与对称密钥算法不同,生成的摘要/哈希不使用密钥。

poYBAGOgGVmANO8BAACszIGidX4696.png?imgver=1

图 10.ECDSA 非对称密钥算法有助于保持消息完整性。

然后将生成的摘要与发送方的私钥一起馈送到 ECDSA 引擎,以生成消息的数字签名。此签名与邮件一起发送给收件人。这样就完成了已发送邮件的签名过程。

现在收件人已收到发件人的邮件和数字签名,她可以开始验证过程。此过程包括两个不同的步骤:

步骤1:收件人从收到的消息中计算消息摘要。

第 2 步:这个新计算的摘要、从发件人收到的数字签名以及发件人的公钥随后被输入 ECDSA 引擎进行验证。

在验证过程中,ECDSA 引擎会产生“是”或“否”结果。如果结果为“是”,则保留了消息完整性。如果结果为“否”,则消息完整性已受到损害。

使用非对称密钥算法实现不可否认性

由发件人的数字签名签名的邮件可用于证明邮件是由发件人发送的,并且邮件未被更改。但是,数字签名无法证明发件人的身份。身份证明是使用数字证书实现的。图 11 到 14 显示了实现完整公钥系统所需的完整步骤,在该系统中,交换的消息不能被任何一方否认。

pYYBAGOgGVuAAtvSAABpa0Sg9yc601.png?imgver=1

图 11.发件人和收件人交换受信任的第三方签名的数字证书。

pYYBAGOgGV2ADimJAAC7FhCdh_U124.png?imgver=1

图 12.发件人和收件人验证受信任的第三方签名数字证书的真实性。

pYYBAGOgGV6AFDkPAACI7UlnqmU567.png?imgver=1

图 13.发件人和收件人从数字证书中提取彼此的公钥。

poYBAGOgGWGADh-HAACsbENT0u0978.png?imgver=1

图 14.发件人和收件人交换无法否认的消息。

主要思想是发送者和接收者都需要相互证明他们的身份,并且他们各自的公钥需要由受信任的第三方证明真实。

为什么使用数字证书如此重要?没有它,假装是发件人的人(即冒名顶替者)可以发送一条用收件人的公钥加密的消息以及用冒名顶替者的私钥签名的数字签名。然后,冒名顶替者将向收件人发送他/她虚构的公钥。然后,收件人将使用该公钥来验证数字签名,并且所有内容都将得到验证。但是来自冒名顶替者的消息可能包含收件人永远不会怀疑的恶意信息。这是通过使用数字证书可以避免的问题,该证书验证收到的公钥确实属于发件人而不是冒名顶替者。

审核编辑:郭婷

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

    关注

    1

    文章

    128

    浏览量

    19610
  • 引擎
    +关注

    关注

    1

    文章

    346

    浏览量

    22360
  • SHA
    SHA
    +关注

    关注

    0

    文章

    16

    浏览量

    8409
收藏 人收藏

    评论

    相关推荐

    现代密码学

    现代密码学课件,大家可学习学习,了解了解
    发表于 05-10 15:56

    什么是密码学中的DES

    得不提一个东西——密码学(是不是听起来头皮发麻心跳加速),稳住稳住,老司机上线带你。今天给大家say&see什么是密码学中的DES。简介 DES:****English Name...
    发表于 07-22 07:16

    密码学中的加密技术

    密码学中的加密技术:密码学的基本概念密码编码密码体制的设计,而
    发表于 06-16 23:50 0次下载

    区块链的底层技术是密码学

    密码学是区块链的底层技术,没有密码学就没有区块链,没有密码学支撑的区块链不可能安全。
    发表于 11-22 11:22 2009次阅读

    密码学在区块链中有着怎样的作用

    张骁表示,区块链之所以能够解决人与人之间的信任问题,是因为它的不可篡改性,而这种特性本质上又是基于密码学算法来实现的。因此密码学在区块链中的地位很关键,如果说区块链是信任的基石,那么密码学则是区块链的基石。
    发表于 12-27 15:51 4598次阅读

    应用密码学的资料概述

    本文档的主要内容详细介绍的是应用密码学的资料概述包括了:1.密码的由来,2.密码技术发展简介,3.密码学基本概念
    发表于 04-04 08:00 2次下载
    应用<b class='flag-5'>密码学</b>的资料概述

    区块链密码学的基础内容介绍

    密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。密码学不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。
    发表于 05-08 10:33 1118次阅读

    区块链技术的基石密码学探讨

    越来越显得重要。它已不仅仅局限于使用在军事、政治和外交方面,而更多的是与人们的生活息息相关:如人们在进行网上购物,与商务交流,使用信用卡等等,都需要密码学知识来保护人们的个人信息和隐私,当然对于我们关注的区块链技术,密码学作为
    发表于 07-12 10:35 979次阅读

    密码学OpenSSL的入门基础知识整理合集

    本文是使用 OpenSSL 的密码学基础知识的两篇文章中的第一篇,OpenSSL 是在 Linux 和其他系统上流行的生产级库和工具包。(要安装 OpenSSL 的最新版本,请参阅 这里
    的头像 发表于 02-07 15:29 3413次阅读
    <b class='flag-5'>密码学</b>OpenSSL的入门<b class='flag-5'>基础知识</b>整理合集

    密码学货币钱包的发展方向分析

    钱包是密码学货币世界里重要的基础设施。所有跟密码学货币相关的操作,包括买卖密码学货币、持有密码学货币、转账,乃至质押获利(staking),多多少少都跟钱包相关。
    发表于 02-22 18:20 827次阅读

    区块链在密码学中的应用及技术综述

    区块链在密码学中的应用及技术综述
    发表于 06-25 15:06 12次下载

    基础密码学的概念介绍

    密码学和信息安全在如今的互联网行业当中非常重要,相关的理论知识和算法也在计算机系统的方方面面都被用到。虽然我们不一定会从事安全相关的工作,但对密码学以及信息安全的基本知识和概念有所了解
    的头像 发表于 08-10 14:32 1184次阅读

    是什么让密码学更容易?安全认证器和协处理器

    密码学提供了针对安全威胁的强大保护,但并非每个嵌入式设计人员都是密码学专家。为了给产品开发工程师提供一条快速了解该主题基础知识的途径,我们创建了一本密码学手册,其中包含一系列采用工程而
    的头像 发表于 06-27 17:24 575次阅读
    是什么让<b class='flag-5'>密码学</b>更容易?安全认证器和协处理器

    密码学基本原理(上)

    电子发烧友网站提供《密码学基本原理(上).pdf》资料免费下载
    发表于 08-02 09:13 1次下载
    <b class='flag-5'>密码学</b>基本原理(上)

    密码学原理的应用

    电子发烧友网站提供《密码学原理的应用.pdf》资料免费下载
    发表于 08-02 10:28 0次下载
    <b class='flag-5'>密码学</b>原理的应用