搜索

第 1 章 Public-Key Cryptography 简介

download PDF
公钥加密和相关标准取决于许多产品的安全功能,如签名和加密的电子邮件、单点登录和传输层安全/安全套接字层(SSL/TLS)通信。本章论述了公钥加密的基本概念。
Internet 流量(通过中间计算机传递信息)可以被第三方拦截:
窃听
信息保持不变,但其隐私泄露。例如,某人可以收集信用卡号码、记录敏感对话或拦截分类信息。
篡改
传输中的信息会被更改或替换,然后发送到接收者。例如,某人可以更改好或改变个人恢复的订单。
模拟(Impersonation)
信息传递给作为预期接收者的人员。模拟可以采用两种形式:
  • 欺骗.个人可以假定成为其他人。例如:一个人可以假定使用电子邮件地址 jdoe@example.net,或者计算机可以假地将自己识别为名为 www.example.net 的站点。
  • Misrepresentation。个人或组织可以代表自己。例如:当名为 www.example.net 的网站实际上收到信用卡付款但从未发送任何良好时,可以将其作为在线电影存储。
公钥加密通过以下方式 保护基于互联网的攻击:
加密和解密
加密和解密允许两个通信方互相发送的信息。在发送方之前,发送方加密或 scrambles 信息。接收器在收到信息后解密或取消评分。在传输过程中,加密的信息不适用于入侵者。
篡改检测
篡改检测允许接收方验证信息在传输中没有被修改。检测到任何修改或替换数据的尝试。
身份验证
身份验证允许接收者通过确认发件人的身份来确定其来源。
nonRepudiation
nonRepudiation 可防止发送信息的发送者在以后不会发送信息。

1.1. 加密和解密

加密 是转换信息的过程,使其对除预期接收者以外的任何人都不适合。解密 是解码加密信息的过程。加密算法也称为 密码, 是用于加密或解密的数学函数。通常,使用了两个相关功能,一个用于加密,另一个用于解密。
使用大多数现代加密时,保持加密信息 secret 的功能不基于加密算法,这并非广泛已知的,而是使用名为 的密钥 的数字来生成加密结果或解密之前加密的信息。使用正确密钥进行解密非常简单。如果无法进行,则在没有正确密钥的情况下进行解密非常困难。

1.1.1. symmetric-Key 加密

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

图 1.1. symmetric-Key 加密

symmetric-Key 加密
对称密钥加密的实现可能非常高效,因此,由于加密和解密,用户不会遇到任何显著的延迟。
仅当对称密钥被涉及的双方持有机密时,对称密钥加密才有效。如果其他人发现密钥,它会同时影响机密性和身份验证。具有未授权的对称密钥的人员无法解密与该密钥发送的消息,但可以加密新消息,并将其发送,就像使用该密钥来自其中一个合法方一样。
对称密钥加密在 SSL/TLS 通信中扮演重要角色,它广泛用于通过 TCP/IP 网络进行身份验证、篡改检测和加密。SSL/TLS 还使用公钥加密的技术,在下一节中进行了描述。

1.1.2. 公钥加密

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

图 1.2. 公钥加密

公钥加密
图 1.2 “公钥加密” 中显示的方案允许公钥自由分发,同时只有授权人员能够读取使用此密钥加密的数据。通常,要发送加密数据,数据会与该人的公钥进行加密,并且接收加密数据的个人使用对应的私钥解密数据。
与对称密钥加密相比,公钥加密需要更多处理,且可能不适用于加密和解密大量数据。但是,可以使用公钥加密来发送对称密钥,然后可用于加密其他数据。这是 SSL/TLS 协议使用的方法。
图 1.2 “公钥加密” 中显示的方案的反向也可以正常工作:使用私钥加密的数据只能使用对应的公钥解密。但不建议对敏感数据进行加密,因为这意味着具有公钥的任何人(由发布的定义发布)都可以解密数据。然而,私钥加密非常有用,因为它意味着私钥可用于使用数字签名为数据签名,对电子商业和其他加密商业应用程序的一项重要要求。然后 Mozilla Firefox 等客户端软件可以使用公钥确认消息已用适当的私钥签名,并且自自签名以来还没有篡改。第 1.2 节 “数字签名” 演示了此确认过程的工作方式。

1.1.3. Key Length 和 Encryption Strength

破坏 加密算法以纯文本形式查找访问加密数据的密钥。对于对称算法,破坏算法通常意味着尝试确定用于加密文本的密钥。对于公钥算法,破坏算法通常意味着在两个接收方之间获取共享机密信息。
破坏对称算法的一种方法是,只需在找到正确密钥之前,只需尝试完整算法中的每个键即可。对于公钥算法,由于半数密钥对是公开已知的,其他半(私钥)可以使用已发布、但数学的计算而衍生。手动查找用于中断算法的密钥被称为 brute 强制攻击。
破坏算法可能会带来拦截的风险,甚至可以模仿和欺诈地验证专用信息。
算法 的主要强度 是通过找到最快的方法破坏算法并将其与暴力攻击相比较来确定的。
对于对称密钥,通常会在用于执行加密的密钥的大小或 长度 上描述加密密钥:较长的密钥通常提供更强大的加密。密钥长度以位为单位。
如果最已知的攻击中断密钥的速度不快于 brute 强制测试每个密钥的可能性,则加密密钥被视为完全强度。
不同类型的算法 - 特别是公钥算法 - 可能需要不同的密钥长度才能获得与对称密钥密码相同的加密强度。由于给定长度的性质,RSA 密码只能将所有可能值的子集用于给定长度的键。其他密码(如用于对称密钥加密的密码)可以将所有可能的值用于给定长度的键。更多可能匹配的选项意味着更高的安全性。
因为破坏 RSA 密钥相对简单,所以 RSA 公钥加密密码必须具有非常长的密钥 - 至少 2048 位,才被视为非常加密。另一方面,对称密钥密码的补救措施是一样的,使用较短的密钥长度比大多数算法的 80 位小。同样,基于 elliptic curve 加密(ECC)的公钥密码,如 Elliptic Curve Digital Signature Algorithm (ECDSA)密码,还需要比 RSA 密码少。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.