第 1 章 公钥加密简介


公钥加密和相关标准取决于许多产品的安全功能,如签名和加密的电子邮件、单点登录和传输层安全/安全套接字层(SSL/TLS)通信。本章论述了公钥加密的基本概念。

Internet 流量(通过中间计算机传递信息)可以被第三方拦截:

窃听
信息保持不变,但其隐私泄露。例如,某人可以收集信用卡号码、记录敏感对话或拦截分类信息。
篡改
传输中的信息会被更改或替换,然后发送到接收者。例如,某人可以更改好更改或更改个人恢复的顺序。
模拟(Impersonation)

信息传递给作为预期接收者的人员。模拟可以采用两种形式:

  • 欺骗.个人可以假定成为其他人。例如,一个人可以假定电子邮件地址为 jdoe@example.net,或者计算机可能会错误地将其识别为名为 www.example.net 的站点。
  • Misrepresentation。个人或组织可以代表自己。例如,当站点真正收到信用卡付款时,名为 www.example.net 的站点可以激发在线热点存储,但从未发送任何好的费用时。公钥加密提供保护,防止基于互联网的攻击:
加密和解密
加密和解密允许两个通信方互相发送的信息。在发送方之前,发送方加密或 scrambles 信息。接收器在收到信息后解密或取消评分。在传输过程中,加密的信息不适用于入侵者。
篡改检测
篡改检测允许接收方验证信息在传输中没有被修改。检测到任何修改或替换数据的尝试。
身份验证
身份验证可让接收者通过确认发送者的身份来确定其来源。
nonRepudiation
nonRepudiation 可防止发送信息的发送者在以后不会发送信息。

1.1. 加密和解密

加密 是转换信息的过程,使其对除预期接收者以外的任何人都不适合。解密 是解码加密信息的过程。加密算法也称为 密码, 是用于加密或解密的数学函数。通常,使用了两个相关功能,一个用于加密,另一个用于解密。

使用大多数现代加密时,保持加密信息 secret 的功能不基于加密算法,这并非广泛已知的,而是使用名为 的密钥 的数字来生成加密结果或解密之前加密的信息。使用正确密钥进行解密非常简单。如果无法进行,则在没有正确密钥的情况下进行解密非常困难。

1.1.1. 对称密钥加密

使用对称密钥加密,可以从解密密钥计算加密密钥,反之亦然。对于大多数对称算法,相同的密钥用于加密和解密,如 图 1.1 “对称密钥加密” 所示。

图 1.1. 对称密钥加密

05scrypt2

对称密钥加密的实现可能非常高效,因此,由于加密和解密,用户不会遇到任何显著的延迟。

仅当对称密钥被涉及的双方持有机密时,对称密钥加密才有效。如果其他人发现密钥,它会同时影响机密性和身份验证。具有未授权的对称密钥的人员无法解密与该密钥发送的消息,但可以加密新消息,并将其发送,就像使用该密钥来自其中一个合法方一样。

对称密钥加密在 SSL/TLS 通信中扮演重要角色,它广泛用于通过 TCP/IP 网络进行身份验证、篡改检测和加密。SSL/TLS 还使用公钥加密的技术,在下一节中进行了描述。

1.1.2. 公钥加密

公钥加密(也称为非对称加密)涉及一对密钥、公钥和私钥,与实体相关联。每个公钥都已发布,并且对应的私钥保密。(有关发布公钥的更多信息,请参阅 第 1.3 节 “证书和身份验证”。)使用公钥加密的数据只能使用对应的私钥解密。图 1.2 “公钥加密” 显示公钥加密工作方式的简化视图。

图 1.2. 公钥加密

06pcrypt

图 1.2 “公钥加密” 中显示的方案允许公钥自由分发,但只有授权人员才能读取使用此密钥加密的数据。通常,要发送加密数据,数据使用该人员的公钥加密,而接收加密数据的人员使用相应的私钥解密它。

与对称密钥加密相比,公钥加密需要更多处理,且可能不适用于加密和解密大量数据。但是,可以使用公钥加密来发送对称密钥,然后可用于加密其他数据。这是 SSL/TLS 协议使用的方法。

图 1.2 “公钥加密” 中显示的方案的反向也可以正常工作:使用私钥加密的数据只能使用对应的公钥解密。但不建议对敏感数据进行加密,因为这意味着具有公钥的任何人(由发布的定义发布)都可以解密数据。然而,私钥加密非常有用,因为它意味着私钥可用于使用数字签名为数据签名,对电子商业和其他加密商业应用程序的一项重要要求。然后 Mozilla Firefox 等客户端软件可以使用公钥确认消息已用适当的私钥签名,并且自自签名以来还没有篡改。第 1.2 节 “数字签名” 演示了此确认过程的工作方式。

1.1.3. 密钥长度和加密强度

破坏 加密算法以纯文本形式查找访问加密数据的密钥。对于对称算法,破坏算法通常意味着尝试确定用于加密文本的密钥。对于公钥算法,破坏算法通常意味着在两个接收方之间获取共享机密信息。

破坏对称算法的一种方法是,只需在找到正确密钥之前,只需尝试完整算法中的每个键即可。对于公钥算法,由于半数密钥对是公开已知的,其他半(私钥)可以使用已发布、但数学的计算而衍生。手动查找用于中断算法的密钥被称为 brute 强制攻击。

破坏算法可能会带来拦截的风险,甚至可以模仿和欺诈地验证专用信息。

算法 的主要强度 是通过找到最快的方法破坏算法并将其与暴力攻击相比较来确定的。

对于对称密钥,通常会在用于执行加密的密钥的大小或 长度 上描述加密密钥:较长的密钥通常提供更强大的加密。密钥长度以位为单位。

如果最已知的攻击中断密钥的速度不快于 brute 强制测试每个密钥的可能性,则加密密钥被视为完全强度。

不同类型的算法 - 特别是公钥算法 -may 需要不同的密钥长度,才能实现与对称密钥密码相同的加密强度。由于给定长度的性质,RSA 密码只能将所有可能值的子集用于给定长度的键。其他密码(如用于对称密钥加密的密码)可以将所有可能的值用于给定长度的键。更多可能匹配的选项意味着更高的安全性。

由于破坏 RSA 密钥相对来说比较简单,因此 RSA 公钥加密密码必须有非常长的密钥 -at 至少 2048 位 - 被视为强度强度。另一方面,对称密钥密码的补救措施是一样的,使用较短的密钥长度比大多数算法的 80 位小。同样,基于 elliptic curve 加密(ECC)的公钥密码,如 Elliptic Curve Digital Signature Algorithm (ECDSA)密码,还需要比 RSA 密码少。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.