博客 > 什么是对称加密和非对称加密?两者之间的区别是什么?
浏览量:3075次评论:0次
作者:锐成网络整理时间:2024-05-14 10:24:00
加密无处不在。这并非虚言。从发送电子邮件到在线购物再到金融等行业敏感数据的处理,加密在确保数字世界中各行各业的数据安全方面发挥着关键作用。关于加密技术,当下主要存在有两种加密技术——对称加密与非对称加密。那么,什么是对称加密和非对称加密?非对称加密与对称加密它们各有哪些优缺点,又有何不同?在不同的应用场景中哪个更安全?针对上述问题,我们将一一展开探讨。
一、关于对称加密
1、什么是对称加密?
对称加密是最基本的加密形式,它使用一个密钥而不是两个密钥来执行加密操作。基本上,发送者和接收者拥有相同的密钥副本,并自行保存。这就是为什么对称加密也被称为私钥加密、私钥密码术等。
凯撒密码是其中的一个典型例子。它使用共享的秘密密钥来加密和解密数据,确保数据的安全性。这个密钥可以是一个单词、短语或字符的组合,发送者和接收者都知道它,可以安全地锁定和解锁信息。
对称加密通常被银行使用,因为它可以高效地保护个人身份信息(PII),而且资源成本相对较低。这有助于降低日常支付交易所涉及的风险。
2、对称加密如何工作?
正如上面所说,对称加密使用单一的秘密密钥来加密和解密信息,因此过程相对简单。在计算机A上,使用秘密密钥对消息进行加密。然后将其传输到计算机B,使用相同的密钥进行解密。
由于加密和解密过程使用相同的密钥,对称加密比起非对称加密更快,这也是为什么它通常用于需要进行大规模加密的大文件(如数据库)。
试着想象一下,A想要使用对称加密给B发送一条机密消息。以下是它的工作流程:
3、对称加密的方法
现代对称加密方法包括AES(高级加密标准),3DES(三重数据加密标准)和Blowfish。虽然这并不是全部,但它们是最常见的。
美国国家标准技术研究所推荐的算法是AES。因此,最流行的是AES-128、AES-192和AES-256。
4、对称加密的优势
(1)速度
由于对称加密使用单一密钥,加密和解密的过程比非对称加密更快,因为非对称加密涉及复杂的数学运算。这种速度对于对时间要求敏感的应用非常有益,比如安全通信或高速数据处理。
(2)效率
对称加密算法在计算上效率高,适用于快速加密和解密大量数据。这种高效性使得对称加密适用于实时通信、文件加密和数据存储。
(3)简易性
对称加密相对来说比较容易实施和使用。它只涉及一个密钥进行加密和解密,相比非对称加密需要管理密钥对的过程更简单。
(4)数据完整性
除了保密性,对称加密还可以确保数据的完整性。使用共享密钥对数据加密后,在解密过程中,任何未经授权的修改都将使密文无法破译,以便检测到潜在篡改或未经授权的更改。
(5)兼容性
对称加密算法在各种平台、设备和编程语言上得到广泛支持和兼容。这种兼容性有助于不同系统和应用之间的无缝集成和互操作性。
(6)资源效率
对称加密需要的计算资源较少,比非对称加密更适合资源受限的环境,如移动设备或嵌入式系统。
(7)安全通信渠道
对称加密经常用于建立安全通信渠道,如虚拟专用网络(VPN)或安全套接字层(SSL)/传输层安全性(TLS)协议。它确保在各方之间传输的数据保持机密,并受到窃听或未经授权访问的保护。
5、对称加密的缺点
(1)密钥分发(或交换)、管理和更新
对称加密中的一个重大挑战是将共享密钥安全地分发给所有授权方。如果密钥在分发过程中被泄露或落入错误的手中,可能导致未经授权的访问和解密敏感数据。
对称加密本身并没有提供在两个从未通信过的方之间安全交换密钥的机制。确立初始密钥交换的安全通道可能很困难,特别是当各方地理分散或缺乏预先建立的信任关系时。
此外,随着用户数量和系统的增加,管理和安全存储共享密钥变得更加复杂。网络越大,密钥暴露或丢失的风险越大,需要强大的密钥管理实践。
同时,更改或更新对称加密的共享密钥可能很复杂。这需要重新建立安全通信渠道,并使用新密钥重新加密所有现有数据,这可能耗时且需要大量资源。
(2)可扩展性
当多个参与方在网络中需要进行安全通信时,对称加密面临可扩展性问题。由于每对用户需要一个唯一的共享密钥,随着用户数量的增加,所需密钥的数量呈指数增长,使得密钥管理和分发更加困难。
(3)受限的身份验证
对称加密不提供固有的身份验证机制。它只确保消息的保密性,但不验证发件人的身份,也无法防止消息篡改。需要实施额外的协议或机制来解决身份验证和完整性方面的问题。
(4)信任假设
对称加密假设双方共享并信任同样的密钥。如果信任被破坏,比如存在恶意内部人员或受到攻击的一方,加密数据的安全性可能会受到损害。
二、关于非对称加密
1、什么是非对称加密?
非对称加密是一种在两方之间加密数据的过程,但它不是使用单个密钥,而是使用两个唯一但数学上相关的密钥来实现此目的。第一个密钥称为公钥,在通过互联网发送数据之前对其进行加密;另一个(也称为私钥)解密交换接收方的数据。这就是为什么非对称加密也被称为公钥加密和公开加密。
顾名思义,公钥是公开可用的密钥,任何人都能访问,而私钥是保密的,只有所有者知道。
公钥和私钥在数学上相关但唯一配对,因此它们只能彼此匹配。
然而,加密数据并不是非对称加密所做的全部。正如现在很多营销广告片所喜欢的广告词——“但是,等等,还有更多!”非对称加密还提供:
2、非对称加密是如何工作的?
非对称加密不像对称加密只使用一个密钥进行解密和加密,它使用两个密钥。用公钥加密的消息只能使用私钥解密,而用私钥加密的消息只能使用公钥解密。
(非对称加密系统通常使用不止两个密钥。一些算法使用五个密钥,这极大地增加了安全性和解密消息的可能解决方案总数。)
使用两个密钥使加密和解密过程非常复杂,提高了它所提供的安全性。它们成为当今密码系统中重要的组成部分,提供匿名性和有效性。
为了更好地理解,再举一个例子:
密钥生成——B想与A进行安全通信。B生成一个密钥对,包括公钥和私钥。私钥保密,而公钥与A共享。
总言之,非对称加密是安全通信、数据完整性和身份验证的基石,使用户能够安全地交换信息。
3、非对称加密的方法
最早的公钥加密系统之一是RSA(Rivest-Shamir-Adleman),它于1978年首次提出。今天,最广泛使用的非对称加密算法之一是Diffie-Hellman和数字签名算法。
这些算法之间的主要区别在于,某些算法提供密钥分发和匿名性,另一些算法提供数字签名,还有一些同时提供两者。
然而,仍然有一个问题需要解决——真实性的证明。
这就是数字证书的作用。(关于数字证书的概念和作用会在之后的文章中会作详细介绍。)
为了使非对称加密工作,我们需要验证传输消息的真实性的方法。
一种解决方案是使用数字证书。当一个人通过安全通道发送加密消息时,他的数字证书会自动附加在其中。这有助于识别两个用户/设备并建立安全通信渠道。
4、非对称加密的优势
(1)安全的密钥交换
非对称加密提供了一种安全的方法,用于在之前没有通信的各方之间交换加密密钥。发送方可以使用接收方的公钥来加密密钥,确保只有具有相应私钥的接收方才能解密和访问它。这个特性消除了对预先共享密钥的需求,简化了密钥交换过程并增强了安全性。
(2)机密性和隐私
非对称加密通过使用接收方的公钥对消息进行加密,实现了机密通信。只有持有相应私钥的接收方才能解密和阅读消息。这确保了敏感信息的私密性,防止未经授权的访问。
(3)身份验证和不可否认性
非对称加密应用数字签名,允许个人使用私钥对消息或文档进行签名。接收方可以使用发送方的公钥验证签名,确保消息的真实性和完整性。此外,数字签名提供了不可否认性,因为发送方无法否认对消息进行了签名,从而为消息的来源提供了强有力的证据。
(4)可扩展性和灵活性
非对称加密支持在不需要为每对参与方单独创建密钥的情况下进行安全通信。这种可扩展性使其适用于需要在大量参与者之间进行安全通信的场景。此外,非对称加密可以与对称加密结合使用,采用混合方法,充分发挥两种加密方法的优势。
(5)信任和PKI(公钥基础设施)
非对称加密构成了PKI的基础,其中包括由受信任的证书颁发机构(CA)颁发的数字证书。这些证书将个人的身份与其公钥绑定,建立信任并实现跨网络和系统的安全通信。
(6)兼容性和标准
非对称加密算法,如RSA和椭圆曲线密码学(ECC),得到了广泛采用并受到各种加密库和系统的支持。这种兼容性确保了在不同平台、设备和应用程序之间的互操作性,使其成为安全通信的可靠选择。
5、非对称加密的缺点
(1)计算复杂性
与对称加密算法相比,非对称加密算法在计算上更为复杂。涉及的数学运算,如模幂运算或椭圆曲线计算,需要更多的计算资源。因此,非对称加密可能会更慢且效率较低,特别是在加密或解密大量数据时。
(2)密钥长度和存储
为了达到相同的安全级别,非对称加密需要比对称加密更长的密钥长度。较大的密钥尺寸导致较长的加密和解密时间,并增加了密钥的存储需求。在资源受限的环境中管理和安全存储这些较长的密钥可能具有挑战性。
(3)性能影响
非对称加密算法的计算复杂性可能会影响系统性能,特别是在频繁或实时执行加密和解密操作的场景中。依赖于加密的应用程序,如安全通信或高频交易,在使用非对称加密时可能会遇到性能瓶颈。
(4)密钥分发和管理
非对称加密依赖于公钥的安全分发和管理。验证接收到的公钥的真实性和完整性可能是一个挑战,因为攻击者可能会冒充预期的接收方或在传输过程中修改公钥。建立可信任的PKI并实施安全的密钥分发机制是必要的,但可能引入额外的复杂性。
(5)某些算法的密钥大小受限
由于其数学特性,特定的非对称加密算法对密钥大小有一定的限制。例如,为了保持可接受的性能,RSA加密通常限于特定的密钥大小。这种限制可能会影响加密方法的长期安全性,因为计算能力的提升使得更短的密钥长度更容易被破解。
(6)依赖可信任的公钥带来的潜在风险
非对称加密假设用于加密和验证的公钥的真实性和完整性。如果攻击者篡改或替换公钥,他们可以解密拦截的消息或欺骗接收方。验证公钥的可信度对于确保安全通信至关重要。
三、差异在哪?——对称加密和非对称加密
对称和非对称加密之间的差异是什么?主要有以下几点——
1、密钥的数量、性质和大小
对称密钥是相同的,而非对称公钥和私钥在数学上相关但仍然是唯一的。对称密钥的长度通常也比非对称密钥短。对称密钥通常为128位、192位和256位,而非对称密钥建议为2048位或更高。
例如,以下是base64编码的AES-256对称加密密钥的示例:
QnqAb/Q+TosXWD8OxIiaBjriAJNqYs4VNtvGc87kmsY=
而RSA2048位非对称加密密钥是这样的——
公钥:
-----BEGIN PUBLIC KEY-----
MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQBwviVpz7WKp2jXTpRZB0QO
yDwa7KTVBT/2XLRLHDaLL+lO/DrJRN1IY8EaoaSO8LDp/Kxoe/U4HI/98Lzmabm/
9o/sGN6LH2rqNQET+c1WsMPTAz6+WFpnbbMataoAH6vzDfVFRy6GnF/AsnnpgF15
wqmwLq7T5s+Vq8qo+nT/MOYUyR81CY0FQurfc58aPwSg6yC5OLOGdz7eiAvOMysC
zOJZy0n8BIRXn7Yrh7wo9HdSAGEb1rzFxLAyoEthN+GFvH7uN1P76l5g8E3k6Z5M
4FXsk7uqIO8gdD8nuM1jH0YK1OxWl8UdQpVMx306pNM5npHhI0pbXn5D9XThAKgt
AgMBAAE=
-----END PUBLIC KEY-----
私钥:
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQBwviVpz7WKp2jXTpRZB0QOyDwa7KTVBT/2XLRLHDaLL+lO/DrJ
RN1IY8EaoaSO8LDp/Kxoe/U4HI/98Lzmabm/9o/sGN6LH2rqNQET+c1WsMPTAz6+
WFpnbbMataoAH6vzDfVFRy6GnF/AsnnpgF15wqmwLq7T5s+Vq8qo+nT/MOYUyR81
CY0FQurfc58aPwSg6yC5OLOGdz7eiAvOMysCzOJZy0n8BIRXn7Yrh7wo9HdSAGEb
1rzFxLAyoEthN+GFvH7uN1P76l5g8E3k6Z5M4FXsk7uqIO8gdD8nuM1jH0YK1OxW
l8UdQpVMx306pNM5npHhI0pbXn5D9XThAKgtAgMBAAECggEAcGp4nbf5eaaRmFYG
/3qKNv8bR3F8rddNPtaTA22/SSvdw98msreSuXKWAnr4vXprvPQv6QLosSlxvjCD
+m+jQjCUs0Lc6/XIwn1VdNiZEX6x076hmmQ4yHaOpuxK9VKfPnxFeu2OC7TymQ6d
FuHi0tzyG/WAZ1P22nNwYOtTK3v2+56QcWpshNWgtPRHC4Y7Cbqn3dEnrQAVhqiY
Xd/wzizzcXbn/49JCTypxgQ8Ru5a7/PvRtKiRAUd1Y7nGX5wKAgkVz9RqSe8y/lD
PLea1jQT+1oCIGS2CnTL4pBfrJCfmfW2n7WkHTvd+RUkScC9RtJBwYYaNBjhPd0D
XnABFQKBgQDXvLn3CXrTjxlEpNeXLkiVmQxMjYlZ+gvrGkHNW8eeUfJHptTAh+0Y
oZTI/IOyxArbn3r0VmrpDOlOlt3atiRAPqNFcsp53TgDviNyrGlRMZlXvNrHKVS6
fe0FcXVlxnMIRQU3dbSoe9aO03aszbm/F5aDfaob7jdrjhSz5TOPkwKBgQCFyKe8
wUZkH+bRWNxhbj5XjpSWw+Cwe3IJMXm+cXKGKOp8znqAavRkQQPT7rGKMdZEjN/C
O8JIdmPtkGlTN/AWYxaXKjM5qsNdPgNjRPao70OVe/5GM7Z1JPy0GkL5DhyxoMMJ
8UPwStAaJuTZWJwOw4G8pVf0KvEbh6Vd6DRBPwKBgQCycoAcT/ISBl6vQe62NWmC
nGro83X2P/cVy808ETunwD64d82pR4WdhyHrsbs55iDZEyx/6O9bv/tHr1DpNRn9
LhKdQlsqvAo2RlNJ6kTfDTi6sxMABDb6X2jrxLKHscO6xmSPQERjzLNnxpB2VWDc
KKWuNAa+PagHxilnuCGTEwKBgDTinERGlv/viHwLR5sQTH6qM1zh88lwEyVFNJ4v
FJmqRP+vU8e9//w9ozi9K9u4Vb5lffK3Utb4TgpUQv6Np1ACPaTmHrfWJEKQyCAO
2/7uDmZiTKMNwDvQskCz/POdO4SQS2l7wWKVAGzGIUM1/wLrEDc1mW5BJ2y9k4Zq
y3VbAoGAVKUM5mIE4rzMEEtU7xBRSat1xwIFNOsY77+nHBG4pU5AKPgfPzHpFACj
yskOW0OG5io0/bmydqpElMSLLxkekPXXDQD3lSPZei9ZOuyWALWb9kXb/U/cxaMh
H2bnVTgEcBNGdFCYXy4u1AAkVICajJ7Vkd4jGPReuYuF452w+34=
-----END RSA PRIVATE KEY-----
2、加密算法的类型和复杂度
对称加密与非对称加密之间的最大区别之一是每个过程中使用的加密算法的类型。对称加密算法是块密码或流密码,包括DES、TDEA/3DES、AES等算法。非对称加密算法包括RSA、DSA、ECC等算法。(可参考:一篇文了解SSL证书中的RSA 算法、 ECC算法)
3、每个流程的耗时和资源密集程度
对称加密速度更快且仅使用一把密钥,因此非常适合需要加密大量数据的大型组织和企业。非对称加密在加密和解密过程中使用两个独立的密钥和更复杂的算法,这使得加密和解密大量数据的速度较慢。
4、更适合在公共/私人渠道中使用
对称加密本身最适合非公共渠道,而非对称加密最适合公共渠道。这是考虑非对称加密与对称加密差异的快速方法。
四、哪个更安全——对称加密还是非对称加密?
这是一个难以回答的问题。
大多数人认为非对称加密更安全,因为它具有公钥和私钥。但是,比较对称和非对称加密的强度和抵御攻击能力并不容易。
重要的是要考虑上下文,也就是取决于你如何定义“更安全”以及加密发生在什么背景下——
例如:
因此,如果并排比较非对称密钥对和相同大小(以位计)的对称密钥,能够更轻松地计算非对称对的私钥。
然而,非对称密钥越大,它们需要的处理能力就越强。这就是为什么在建立加密的网站连接时,我们首先使用非对称密钥交换,然后切换到对称加密来保护会话。因此,通过这种方式,非对称加密有助于使对称加密更加安全。
当然,这个答案也取决于当时使用的技术。例如,像RSA这样的非对称加密方法非常安全(但也会消耗资源)。使用现代计算机需要非常漫长的时间才能破解这个算法。但是当计算机变得更智能、更快、能力更强时会发生什么呢?
(这便涉及到量子计算带来的担忧了,关于量子计算对加密产生的一系列影响,后续我们也将持续关注。)
五、写在最后
当然,在实际应用中,关于对称加密和非对称加密并不是非此即彼的关系。他们经常以互补的方式存在,这也构成了PKI的核心,从而使得通过互联网进行安全数据交换成为可能。
参考资料——
1、《Symmetric vs. Asymmetric – Encryption Made Simple》,来源:Coindoo;
2、《Asymmetric vs Symmetric Encryption: Definitions & Differences》,来源:Hshed Out;
3、《What types of encryption are there?》,来源:Ico ;
4、《The Ultimate Guide to Symmetric Encryption》,来源:Simplilearn;
来源|公开资料
图源|preyproject
编辑|公钥密码开放社区
重要声明:本文来自公钥密码开放社区,经授权转载,版权归原作者所有,不代表锐成观点,转载的目的在于传递更多知识和信息。
相关文章推荐
2024-11-15 16:58:38
2024-11-07 15:21:47
2024-11-06 15:16:24
2024-11-05 15:12:10
2024-10-31 16:13:07
热门工具
标签选择
阅读排行
我的评论
还未登录?点击登录