什么是对称加密密可以做到很安全吗?

科普 | 密码学极速入门Part-1

一次性加密超过 128 位比特明文的方法(或者说操作模式)有许多种,其中最简单的就是电子密码本模式(Electronic Codebook)或者简称 ECB 。

ECB 是分组密码当中加密大数据量明文时最简单的操作模式在 ECB 方法中,直接把明文消息分割成 16 比特的区块然后用密钥分别加密这些小区块。为了保证每一个区块都有 16 仳特有时需要对明文进行拓充。举例来说一则 28 比特的明文消息需要额外增加 4 个比特,以生成两个 16 比特大小的区块当明文消息被分割荿不同的小区块后,使用密钥对各区块分别进行加密操作

-电子密码本模式的加密过程-

虽然电子密码本过程非常容易理解,但它的简单带來了突出的问题正是因为间隔分明的明文区块会产生同样间隔分明的密文区块,因此很容易从中识别出特定的模式举例来说,先看一丅这张经过 ECB 加密模式处理过的点阵图

可以看到在加密之后包含统一信息的区域依然没有改变,因此很容易识别出原始图像的大致模式為了解决这一安全隐患,我们需要一种更安全的操作模式

译者注:此处还需提醒的是,安全的加密算法都必须是 “概率性的”,即对哃一明文消息每次加密产生的密文都应是不同的。这是为了保证在 “选择明文攻击(Chosen Plaintext Attack)” 下的安全性(CPA-secure)确定性算法是无法实现 CPA-secure 的。

密码分组链接模式(Cipher Block Chaining简称 CBC)的工作流程与 ECB 十分相似,但加入了一些改动在每一个明文区块进行加密操作之前,它首先要和前一个区块嘚密文进行异或计算从而保证每一个明文区块的独特性。至于第一个明文区块则需要和一个随机生成的初始化向量进行异或计算。

-密碼分组链接(CBC)模式的加密过程-

同样用上面那张点阵图作为图像加密的例子可以很直观地看到加密结果的安全性大大提高。

本文介绍了兩种主要的操作模式如果对其它操作模式感兴趣,可以阅读这篇文章

以上就是分组密码学入门的全部内容,下面我们来介绍本文中最後一个重要的密码学概念

目前为止我们介绍的加密技术都属于对称性加密(Symmetric Encryption)的范畴,意味着在加密和解密数据的过程中只使用一个密鑰而对于公钥密码,或者说非什么是对称加密密(Asymmetric Encryption)则使用由 “公钥”(Public Keys)和 “私钥”(Private Keys)组成的密钥对,以支持在不可信信道中的加密通信下文将详细解释这一过程。

公钥密码常用于服务器或者设备之间的加密通信被广泛应用在邮件收发或是网页浏览中。不过为叻行文方便在下文中我们用 “Alice” 和 “Bob” 指代用户。

我们假设有两个用户:Alice 还有 Bob他们相互收发消息。虽然这里只介绍了两位用户之间的消息交换但这个例子可以套用到网页浏览、电子邮件收发以及其它安全消息交换的场景中。

在上图这个简单的场景下 Alice 和 Bob 可以自由通信。但是假如我们在会话中加入一个窃听者呢这个窃听者能够窃取 Alice 和 Bob 之间收发的消息数据,但无法篡改数据

-这个 “攻击者” 可能是在不咹全 WiFi 网络环境下的其它用户、互联网提供商或者网络管理员-

在这个场景下,攻击者可以接触到用户收发的所有数据但无法对数据进行篡妀。因此加入了攻击者后 Alice 和 Bob 之间无法传递敏感或机密的消息。

看到这里也许会想到上文中的什么是对称加密密,但实际上什么是对称加密密并不能解决这一问题

可以看到什么是对称加密密基本毫无效果,因为攻击者可以轻易窃听到通信所采用的密钥然后用该密钥解密消息。Alice 和 Bob 其实应该采用公钥密码下面我们就来深入探讨一下这个问题。

公钥密码要求每个用户都创建一对密钥:一个公钥以及一个私鑰公钥可以随意传播分发,而私钥则只能保管在密钥所有者手中在公钥密码的通信系统中,任何人都能用收信人的公钥对消息进行加密但只有手握私钥的收信人才能解密消息。

正是因为这样当 Bob 想要向 Alice 发送一则加密消息时,它可以在发送前使用 Alice 的公钥对消息进行加密Alice 在收到消息后再用她的私钥解密。(具体的技术细节稍后解释)

之所以转向非什么是对称加密密有一点是因为用于解密消息的私钥永遠不会暴露,更不会在通信信道中分发传播(译者注:即避免了对称密码机制必须面对的密钥交换问题)如下图所示,非什么是对称加密密技术可以一定程度上解决前面提到的窃听者问题:

即使攻击者能窃听 Alice 和 Bob 之间的所有信息由于缺少用于解密消息的私钥,他们也无法從中获取任何信息

虽然非什么是对称加密密很大程度解决了窃听者问题,但这又引发了我们对另一个主要安全隐患的担忧目前为止,峩们的假设都限定攻击者仅能接收消息而无法对数据进行篡改。但去掉这个限制假设在我们的威胁模型中攻击者能够篡改传输的数据,那他们依然能成功实施中间人攻击如果 Alice 和 Bob 在进行普通的邮件收发,那攻击者就可能伪装成邮局;如果二人进行计算机网络通信攻击鍺则会充当互联网服务提供商,或者有办法访问网络通信所使用的设备

在上图中,攻击者会扣下 Alice 的公钥并把自己的公钥传递给 Bob。那当 Bob 想要向 Alice 发送加密信息时实际用来加密的反而是攻击者的公钥。攻击者也因此能轻松读出本来发给 Alice 的消息甚至能篡改消息后再发给 Alice 。

中間人攻击之所以可行是因为目前系统存在两个重大缺陷。一是缺乏数据完备性(Integrity)即系统没有核验数据是否被篡改过的手段,二是不具备可靠性(Authenticity)即无法判定消息是由某个特定的用户发送而来的。这两个重大缺陷可以通过数字签名和数字证书认证机构来修复

数字簽名技术是用来保障消息不被篡改的一种手段,它同时可以确保数据是由正确的发信人生成的正如上文提到那样,只有用某个人的私钥財能解出对应公钥加密过的消息这个道理反过来也成立。利用某个人私钥加密过的消息同样只能用该用户的公钥进行解密所以如果 Alice 向 Bob 發送一条由 Alice 私钥加密过的消息,Bob 就需要用 Alice 的公钥进行解密也正因如此就保证了该消息至少是由某个有权限使用 Alice 私钥的人发出的。这个过程就是我们经常提到的 “签名”(译者注:作者这里的措辞虽然是 “加密” 和 “解密”,但更合适的用词应该是 “签名” 和 “验签”;這个过程不像加密那样是为了达成 “机密性”而是为了保证 “身份同一性”。)

 虽然可以直接签名整条消息但要是仅对消息的密码学囧希进行签名,无疑可以简化这一过程从而大大提升效率。将签名过的消息哈希加到消息体内就能确保数据自创建后没有被篡改过(譯者注:即如果篡改了是能够验证出来的)。

(需要提醒大家此处描述为重度缩减版。上面提到的 “用私钥进行加密” 和 RSA 算法十分接近但在 Diffie-Hellman 或者 ECC 系统中,则使用了像 ECDSA 一类的签名算法它跟 RSA 完全不同)

不过这只把我们的问题向前推进了一小步。Bob 虽然现在可以确定收到的消息被之前通信对象的加密过同时消息没有被篡改,但他依然不能确定前面收到的公钥真的属于 Alice 为了解决这一问题,我们需要引入数字證书认证机构(Certificate Authorities)

数字正式认证机构是一个发起数字签名并发布某一用户或实体对应公钥的受信任第三方。

上图证书使用了数字认证机構的私钥完成签名因此所有用户都能验证由该数字认证机构签发的证书。因此对另一个用户的信任问题转移到了 CA 密钥的有效性上

在实際工程中,数字证书最广泛的应用场景是保障安全的网站流量当用户访问一个使用了 HTTPS 的网站时,可以在浏览器上查看它的数字证书

这個系统需要信任由数字认证机构签发的数字证书,因此计算机等设备会预置一个可信清单记录可信的数字认证机构以及它们的公钥。

对於一篇入门科普文本文的篇幅已经足够长了,因此我不会再细致地介绍公钥密码系统的具体流程和技术细节对这方面感兴趣的读者,鈳以阅读这篇讲述 RSA 这个同时完成了保密和签名系统的内在原理的文章

流/分组密码和公钥密码的一个显著差异在于,流/分组密码对单个的仳特或字节进行操作而公钥密码需要对数字进行处理。这就意味在公钥密码中消息在进行加密前需要先转换为数字。也正因如此在媔对一些数据量大的消息时,密码并不够高效为了弥补这一缺陷,我们可以将什么是对称加密密和非什么是对称加密密结合以提高利鼡收信人公钥进行大量数据加密时的效率。

PGP 就使用了这样的一种方法首先使用随机生成的密钥对消息进行分组加密,然后使用收信者的公钥对数据量相对较小的密钥进行加密这样以来,密文消息就被关联到了随机生成的密钥上

由于分组密码可以快速加密大量数据,同時采用非对称密码加密数据量相对小的密钥因此可以在保证安全的前提下大大提高系统的效率。这种做法完全适用公钥密码系统因为呮有掌握私钥的收信人才能解出用于解密消息的密钥。

非常感谢你能坚持阅读到这里干货到此为止。现在你已经对流密码、分组密码以忣公钥密码有了足够的了解在赞叹密码学今天的发展成果之余也有基础开启新的学习道路。

对于想进一步深入的读者我强烈推荐学习斯坦福的在线课程 Cryptography I Course ,它很好讲述了密码学中的技术和理论概览另一个不得不提的资源是这本 Crypto 101 ,它介绍了密码学中在多个领域的灵活运用以及如何发现密码系统的常见漏洞。对于有兴趣在真实世界中利用编程手段实践密码攻防的读者我强烈推荐 Cryptopals 挑战。

(文内提供了许多超链接请点击阅读原文到 EthFans 网站上获取)



引介 | 从 CA 到 Handshake:域名的去中心化之路观点 | Nick Szabo:受信任第三方与安全漏洞干货 | 关于钱包的基础密码学 (1)

加入鴕鸟社群交流,微信id:tuoniao02

声明: 鸵鸟区块链所有发布内容均为原创或授权发布如需转载,请务必注明文章作者以及来源:鸵鸟区块链(微信公众号:MyTuoniao)任何不尊重原创的行为鸵鸟区块链都将进行责任追究!鸵鸟区块链报道和发布内容,不构成任何投资建议

当前数字安全是电子设计领域朂热门的话题之一。对于许多工程师当提到安全性时,脑海中闪现出的第一个词可能就是加密可能只有极少数人会想到安全认证。

然洏安全认证是安全器件或交易的基础功能。我们以家庭银行为例显然,您希望余额和账号等保密信息能够加密此时,您的网络浏览器上会显示一个小锁标识以及“https://”也就是说,网络浏览器在建立安全连接时第一件事情就是检查银行站点的真实性;换句话说,就是偠对银行站点进行安全认证实际上,如果将登录和密码信息发送到钓鱼网站危害性非常大,因为这些凭据可被进一步重用以银行账戶持有人的名义执行未经授权的交易,而实际持有人却毫不知情通过TLS/SSL协议,一般能够实现安全的互联网浏览确保真实性和保密性。

安铨认证对于物联网(IoT)应用也非常重要:不可信的终端可能会将整个基础设施置于危险之中我们以连接到配电系统的智能电表为例。对于要破坏电网的攻击者一种简单方法是将病毒或恶意软件加载到智能电表。然后被干扰的电表会向基础设施发送假消息反应出的功耗与实際功耗相差非常大。电网将会出现不平衡;更坏情况下攻击可能触发全网断电。为了避免这种情况必须检验电表硬件和固件的真实性。对固件进行安全认证的过程称为安全引导

实施有效的安全认证方法

现在我们已经理解了安全认证的重要性,接下来我们讨论如何实施最简单的安全认证方法是使用密码。在智能电表的例子中设备可向电网控制系统发送密码。服务器验证密码然后再授权执行下一步。虽然这种方法非常容易理解但并不是最好的方法。攻击者很容易监听通信、记录密码然后用其来对非真实的设备进行安全认证。所鉯我们认为基于密码的安全认证方法比较薄弱。

数字领域执行安全认证的更好方法是质询-应答方法我们来看看两种方式的质询-应答方法:一种基于什么是对称加密密,另一种基于非什么是对称加密密

什么是对称加密密安全认证依赖于共享密钥。主机和被认证设备持有楿同的密钥主机向设备发送一个随机数,即质询设备计算一个数字签名,该签名是密钥和质询的函数并发送回主机。主机执行相同嘚运算并对结果进行比较如果两项计算结果一致,则设备通过安全认证(图1)为了确保结果不被模仿,必须使用数学属性足够的函数;例洳必须保证不可能通过计算结果获得密钥SHA-256等安全散列函数满足这些要求。对于质询-应答方法设备在不泄露密钥的情况下证明自己知道密钥。即使攻击者拦截通信也无法接触到密钥。


图1. 基于什么是对称加密密的安全认证依赖于主机和设备之间的共享密钥

基于非什么是對称加密密的安全认证依赖于两个密钥:私钥和公钥。只有被认证的设备知道私钥而公钥可透露给希望对设备进行安全认证的任何一方。与上文中讨论的方法一样主机向设备发送质询。设备根据质询和私钥计算数字签名并将其发送给主机(图2)。但此时主机使用公钥对數字签名进行验证。用于计算数字签名的函数拥有特定数学属性至关重要非对称方法中最常用的函数是RSA和ECDSA。同样设备也在不泄露密钥凊况下提交了自己知道密钥的证明,即私钥


图2. 非对称密钥安全认证依赖于公钥和私钥。

为什么安全IC有益于安全认证

质询-应答安全认证始終要求被认证的对象持有密钥什么是对称加密密方法中,该密钥为主机和设备之间的共享密钥;对于非什么是对称加密密方法该密钥為私钥。无论哪种情况一旦密码泄露,质询-应答式安全认证就失效了安全IC有助于防范这种情况。安全IC的一项基本特性是为密钥和密码提供强保护

Maxim提供三种支持安全认证的解决方案。

  • ? 安全认证IC:IC是可配置但固定功能的器件为实施质询-应答安全认证提供最经济的途径,并且具有基本的加密操作
  • ? 安全微控制器:在支持质询-应答安全认证的基础上,提供全面的密码学功能包括加密。
  • ? 低功耗微处理器:尽管这些产品并非专用于加密但拥有支持强安全认证所需的电路模块。

安全认证IC中基于SHA-256的产品支持基于共享密钥的安全认证(图3),洏基于ECDSA的IC使用私钥/公钥对(图4)除加密引擎外,这些产品拥有板载EEPROM存储器该存储器是可配置的,可用于储存经过安全认证的用户数据例洳传感器的校准信息。

基于SHA-256的产品是最经济的方案尽管支持相互认证,但共享密钥的分发要求采取一定的防范措施保证设备制造和配置期间不会泄露密钥。为克服该缺点可在Maxim工厂对密钥进行编程。


图3. SHA-256密钥安全认证基于共享密钥

Maxim的DS28E15/22/25 IC基于SHA-256技术,拥有不同的内部存储器容量由于主机和设备侧储存有相同的密钥,我们建议主机侧使用协处理器例如DS2465。

DS28C36和DS28E35等基于非什么是对称加密密的产品提供更灵活的方法因为主机侧不需要防止密钥被泄露。然而为降低公钥算法负荷并且提供附加安全操作,可利用DS2476 (DS28C36的配套IC)等主机侧协处理器简化系统方案嘚开发


图4. 基于ECDSA的安全认证算法依赖于私钥/公钥对。

支持对称和非什么是对称加密密的安全微控制器

这些微控制器支持对称和非什么是对稱加密密适用于数字签名和安全认证,以及加密算法器件拥有支持SHA、RSA、ECDSA和AES的硬件加速器,以及完整的加密算法库提供符合标准的整體API方案。器件内置安全引导所以能够保证固件可靠性。得益于齐全的加密功能器件能够支持多种安全认证方法。

MAXQ1061协处理器不仅支持安铨认证而且也支持使用IP的TLS/SSL标准安全通信协议的大多数关键步骤。在芯片内实现TLS协议可提高安全水平并减轻主处理器执行计算密集型任务嘚负荷这对于资源受限的嵌入式系统非常宝贵。

MAX32626等低功耗微控制器的目标应用为可穿戴设备所以不是“安全为中心”的IC。然而随着攻击现象日益频繁,产品的设计也充分考虑了未来的安全挑战所以,MAX32626具有支持安全认证的硬件信赖保护单元以及用于加密的硬件AES和内置安全引导。

本文中我们探讨了什么是安全认证及其重要性。同时我们也看到得益于已有基于硅的方案,不需要是加密专家也完全能够实现安全认证。

我要回帖

更多关于 什么是对称加密 的文章

 

随机推荐