CISSP(七)

CISSP(六)密码学

密码应用

Jargon:

1
2
3
4
5
PGP
Merkle-Helhnan 背包
3DES
SSH
唯密文

密码学的意义在哪里

密码学在现代社会中具有重要的意义,它涉及到信息安全和保护隐私的方方面面。以下是密码学的一些重要意义:

  1. 保护通信隐私: 密码学可以确保通过网络和其他通信渠道传输的数据在传输过程中不被未授权的人或恶意攻击者读取、拦截或篡改。加密技术使得敏感信息(如个人隐私、财务数据和商业机密等)能够在传输过程中保持机密性。

  2. 数字签名和身份认证: 密码学提供数字签名和身份认证机制,用于验证数据的来源和完整性。数字签名能够确保信息的真实性,而身份认证可以确认通信方的身份。

  3. 数据完整性: 密码学可以用于验证数据的完整性,确保数据在传输或存储过程中没有被篡改或损坏。

  4. 访问控制: 密码学可以帮助实现数据和系统的访问控制,确保只有授权用户能够访问特定的资源。

  5. 数字支付和电子商务: 在数字支付和电子商务中,密码学用于确保交易安全和防止欺诈行为,使得用户能够在网络上进行安全的支付和交易。

  6. 网络安全: 密码学是网络安全的基石之一,用于保护网络设备、通信和数据免受恶意攻击,如黑客入侵、拒绝服务攻击等。

  7. 数字权利管理: 密码学在数字内容保护中发挥重要作用,用于控制和保护数字内容的复制和分发。

  8. 区块链技术: 密码学是区块链技术的基础,用于确保区块链的安全性、数据完整性和交易的保密性。

总体来说,密码学在现代信息社会中是保护隐私和信息安全的重要工具。它在电子通信、数据存储、数字支付、网络安全、区块链技术等多个领域发挥着关键作用,使得人们能够在数字化时代拥有安全的通信和交易环境。

IPsec

是一组用于保护网络通信安全的协议集合,全称是”Internet Protocol Security”(互联网协议安全)。它是在网络层提供安全服务的协议,旨在保护IP数据包的传输过程,确保数据的机密性、完整性和身份认证。

IPsec协议套件通常包括以下主要协议:

  1. 认证头部协议(Authentication Header, AH):提供数据完整性、源认证和防止重播攻击。AH在IP数据包中添加一个头部,其中包含加密散列算法(通常使用HMAC,基于密钥的散列消息认证码),以验证数据包的完整性和源地址。

  2. 封装安全负载协议(Encapsulating Security Payload, ESP):提供数据的机密性、完整性和可选的源认证。ESP对整个IP数据包进行加密,并在其后添加一个认证部分,以确保数据机密性和完整性。

这两个协议可以单独使用,也可以同时使用,以提供更强大的安全性。

IPsec主要用于以下目的:

  • 虚拟私人网络(VPN):通过在公共网络(如Internet)上创建安全的加密通道,将远程办公室或用户连接到公司内部网络,从而实现安全的远程访问。
  • 站点到站点安全连接:用于连接不同地理位置的私有网络,确保其之间的通信是安全的。
  • 远程访问:允许外部用户安全地访问公司内部网络资源,通常用于远程工作者或移动用户。

IPsec提供了一种标准的方法来确保数据的安全传输和通信的保密性。它广泛用于构建安全的通信网络,并在VPN和远程访问场景中得到广泛应用。

中间相遇攻击和中间人攻击

中间相遇攻击(Meet-in-the-Middle Attack)

中间相遇攻击是一种密码学攻击技术,通常用于破解双向加密算法中的密钥。攻击者尝试同时对加密过程和解密过程进行暴力破解。攻击者通过预计算和存储中间结果,然后使用不同的密钥对进行解密和加密操作,尝试找到共同的中间结果(中间相遇点)。一旦找到这个中间相遇点,攻击者就可以确定实际的加密密钥。

中间人攻击(Man-in-the-Middle Attack)

中间人攻击是一种网络安全攻击,其中攻击者插入自己在通信双方之间,并试图拦截、监视或篡改双方之间的通信。攻击者将自己伪装成合法通信方,以便通信双方都认为他们正在直接与对方通信,但实际上所有的通信都经过攻击者。这使得攻击者能够窃取敏感信息,修改通信内容,或者产生误导。

总结:

  • 中间相遇攻击 是一种特定于密码学的攻击,利用预计算和存储中间结果来找到加密密钥。
  • 中间人攻击 是一种通信安全攻击,攻击者插入自己在通信双方之间,拦截和篡改通信。

哈希函数

哈希函数(Hash function)是一种特殊的算法,将任意长度的输入数据转换为固定长度的输出,通常用一个固定长度的字符串或数字表示。哈希函数的主要特点是:

  1. 固定输出长度: 不论输入数据的长度是多少,哈希函数都会生成一个固定长度的输出,通常称为哈希值或摘要。

  2. 快速计算: 哈希函数的计算过程应该是高效的,能够在合理的时间内完成哈希运算。

  3. 抗冲突性: 好的哈希函数应该尽量避免碰撞,即不同的输入数据生成相同的哈希值的概率要非常低。

  4. 不可逆性: 哈希函数是单向的,即从哈希值推导出原始输入数据应该是困难的(理论上不可能),这是哈希函数用于保护敏感信息的重要特性。

哈希函数在计算机科学和密码学中有广泛的应用。一些常见的用途包括:

  • 密码存储: 将用户密码存储为哈希值,而不是明文形式,以防止密码泄露后暴露用户的真实密码。

  • 数据完整性: 用于校验数据的完整性,例如在文件下载过程中校验文件的哈希值是否与预期的哈希值匹配,以确保数据没有被篡改。

  • 数字签名: 用于生成数据的数字签名,以验证数据的来源和完整性。

  • 散列表: 在计算机科学中,哈希函数用于快速查找和检索数据,例如散列表的实现。

常见的哈希函数包括MD5、SHA-1、SHA-256、SHA-3等,但由于哈希碰撞和弱抗冲突性问题,某些较旧的哈希函数(如MD5和SHA-1)已经不推荐在安全敏感的场景中使用。在安全性要求较高的应用中,应该选择更安全的哈希算法,如SHA-256或SHA-3。

ElGamal 公钥密码系统

ElGamal是一种非对称公钥密码系统,由Taher Elgamal在1985年提出。它基于离散对数问题,使用了离散对数算法的困难性来保证其安全性。ElGamal公钥密码系统同时用于加密和数字签名。

ElGamal公钥密码系统的安全性基于离散对数问题的困难性,即从公开的信息中推断出离散对数是困难的。然而,需要注意的是,ElGamal系统中存在其他攻击方法(如选择明文攻击),因此在实际应用中,需要谨慎选择参数和保证安全性。

ElGamal 密码系统的主要缺点在于它会令自己加密的任何消息在长度上翻一倍。在用ElGamal 进行加密后, 2 048 位明文消息会变成4096 位密文消息。

ECC密钥

[1977年]RSA算法(Rivest–Shamir–Adleman算法)是由Ron Rivest、Adi Shamir和Leonard Adleman于1977年发明的。这是一种非对称加密算法,广泛用于加密通信和数字签名。

[1985年]椭圆曲线密码学,也称为椭圆曲线加密(ECC),最早由Neal Koblitz和Victor S. Miller分别在1985年和1986年独立提出。椭圆曲线密码学使用椭圆曲线上的数学运算来实现加密和数字签名,它在相对较短的密钥长度下提供了与传统RSA等算法相当的安全性,因此在资源有限的环境中(例如移动设备)得到广泛应用。

ECC密钥是指基于椭圆曲线密码学(Elliptic Curve Cryptography, ECC)的密钥对。ECC是一种现代的公钥密码学体系,相对于传统的RSA等算法,ECC提供了相同安全性水平下更短的密钥长度,从而带来更高的加密效率和更少的资源消耗。

ECC密钥对由以下两个密钥组成:

  1. 公钥(Public Key): 公钥是用于加密数据和验证数字签名的密钥,可以公开向他人分发。在ECC中,公钥通常表示为一个点(x, y)在椭圆曲线上的坐标。公钥用于加密数据时,发送方使用接收方的公钥来加密消息,只有拥有私钥的接收方能够解密消息。

  2. 私钥(Private Key): 私钥是用于解密数据和生成数字签名的密钥,必须保密且只有拥有者知晓。在ECC中,私钥是一个随机数,用于生成公钥和签名。私钥用于解密数据时,接收方使用自己的私钥来解密消息,只有拥有相应公钥的发送方能够加密消息。

ECC密钥对的安全性依赖于椭圆曲线离散对数问题(Elliptic Curve Discrete Logarithm Problem, ECDLP),该问题在目前计算能力下被认为是困难的。因此,ECC提供了较高的安全性,同时使用较短的密钥长度,使其在资源受限的环境中广受欢迎,如物联网设备和移动设备。

总结:ECC密钥是基于椭圆曲线密码学的密钥对,包括公钥和私钥。公钥用于加密数据和验证签名,私钥用于解密数据和生成签名。ECC由于其高安全性和较短的密钥长度而被广泛应用于现代密码学和信息安全领域。

SHA-2

SHA-2(Secure Hash Algorithm 2)是一组密码学哈希函数,用于将任意长度的数据转换为固定长度的哈希值。SHA-2是SHA-1的后续版本,它提供了更强的安全性和更大的哈希值长度。

SHA-2算法家族包括了多个变种,其输出长度分别为224位、256位、384位和512位,分别称为SHA-224、SHA-256、SHA-384和SHA-512。SHA-256和SHA-512是最常用的两种变种。

SHA-2算法的工作原理是将输入数据进行逐位处理,然后生成一个固定长度的哈希值。该过程包括多轮循环、位操作和逻辑函数,以确保在修改输入的任意一位时,都能产生完全不同的哈希值。这种性质使得SHA-2在抵抗碰撞攻击和预映像攻击等密码分析技术上表现良好。

SHA-2在密码学和信息安全领域得到广泛应用,用于生成数字签名、计算消息认证码(HMAC)、存储密码的哈希值等。它在许多安全协议和应用中被使用,例如TLS/SSL协议、IPsec协议、数字证书等。

需要注意的是,虽然SHA-2是目前广泛接受的安全哈希算法,但随着计算能力的增强和密码学技术的发展,部分较短长度的SHA-2变种(如SHA-224和SHA-256)逐渐受到攻击的威胁。因此,在设计新的系统或协议时,应该优先考虑更长的哈希值长度,如SHA-384和SHA-512,以获得更高的安全性。

SSL协议

SSL(Secure Sockets Layer)是一种用于加密通信的安全协议,用于在计算机网络上保护数据的传输安全性。SSL协议的后续版本已经被称为TLS(Transport Layer Security),但在实际使用中,人们仍然常用SSL和TLS这两个术语互换使用。

SSL协议通过加密和身份验证机制,确保客户端和服务器之间的通信是私密、完整和可信的。以下是SSL协议的一些关键特点:

  1. 加密通信: SSL协议使用公钥加密和对称密钥加密相结合的方式来加密通信数据。在握手过程中,客户端和服务器协商出一个共享的对称密钥,用于加密通信数据。这样,即使数据在传输过程中被拦截,也无法解密,保障了通信的机密性。

  2. 数字证书: SSL协议使用数字证书来进行身份验证。服务器需要提供一个由受信任的证书颁发机构(Certificate Authority,CA)签发的数字证书,用于证明其身份。客户端可以验证服务器的证书,确保正在与合法的服务器通信,避免中间人攻击。

  3. 握手协议: SSL握手协议在客户端和服务器之间进行通信前建立安全连接。在握手过程中,客户端和服务器协商出加密套件和密钥等参数,然后进行身份验证和密钥交换,最终建立安全通道。

  4. 版本协商: SSL支持多个协议版本,客户端和服务器在握手过程中协商选择使用的协议版本。

SSL协议广泛用于保护Web浏览器和服务器之间的通信,以及其他应用层协议的加密通信,如HTTPS协议。HTTPS是在HTTP协议之上添加SSL/TLS协议层,通过加密和身份验证来保护Web数据传输的安全性。SSL/TLS也被用于保护电子邮件通信、虚拟私有网络(VPN)、VoIP(Voice over IP)通信等场景。由于SSL协议的安全性和可靠性,它在保护互联网通信方面发挥着至关重要的作用。

FIPS 186-4

FIPS 186-4是美国国家标准与技术研究院(NIST)发布的数字签名标准,全称为”Federal Information Processing Standards Publication 186-4”。该标准定义了使用数字签名算法来确保数据完整性和身份认证的要求,适用于联邦政府机构以及与之合作的其他机构。

FIPS 186-4标准规定了多种数字签名算法,其中包括了DSA(Digital Signature Algorithm)和ECDSA(Elliptic Curve Digital Signature Algorithm)。DSA是基于整数有限域离散对数问题的数字签名算法,而ECDSA则是基于椭圆曲线离散对数问题的数字签名算法。ECDSA相较于DSA,在提供相同安全性的情况下,可以使用更短的密钥长度,从而带来更高的性能和效率。

FIPS 186-4的主要目标是确保数字签名的安全性和可靠性,以及提供合适的密钥长度和相关参数。该标准还规定了数字签名生成、验证的流程和要求,以确保数字签名的正确使用和有效性。

FIPS 186-4是美国政府机构及其合作伙伴在使用数字签名时必须遵循的标准。该标准还得到了许多国际组织和企业的认可,因为其涉及到的数字签名算法和流程在全球范围内得到广泛应用。

安全电子通信数字证书

安全电子通信数字证书是一种用于确保电子通信安全性的数字凭证。它用于对通信双方的身份进行认证,并确保通信内容的机密性、完整性和不可否认性。

数字证书是由数字证书颁发机构(Certificate Authority, CA)签发的,其中包含了一组数据,包括以下重要信息:

  1. 公钥: 数字证书包含了通信双方的公钥,用于加密和解密通信内容。公钥是用于加密数据的密钥,可以公开向他人分发,而私钥保持在证书持有者的安全环境中。

  2. 证书持有者信息: 数字证书中包含了证书持有者的身份信息,如名称、电子邮件地址等。

  3. 数字签名: 数字证书由证书颁发机构用其私钥对证书信息进行签名,以确保证书的真实性和完整性。接收方可以使用证书颁发机构的公钥来验证数字签名,以确认证书的有效性。

数字证书的使用过程如下:

  1. 通信双方分别获取各自的数字证书,其中包含了他们的公钥和相关信息。

  2. 当一方需要与另一方进行安全通信时,它可以使用对方的公钥对数据进行加密,并将加密后的数据发送给对方。

  3. 接收方使用自己的私钥对收到的数据进行解密,确保只有拥有对应私钥的人可以解密数据。

  4. 接收方可以通过数字证书来验证发送方的身份,并确认数据的完整性和真实性。

数字证书在许多安全通信协议中起着重要的作用,例如TLS/SSL协议用于保护Web通信,IPsec协议用于虚拟私有网络(VPN)通信等。通过数字证书的使用,通信双方可以确保他们正在与合法的对方通信,并且通信内容是安全的、未被篡改的。

证书注销列表

证书注销列表(Certificate Revocation List,简称CRL)是一种用于公钥证书失效状态管理的机制。它是数字证书颁发机构(Certificate Authority,CA)发布的一份包含吊销(撤销)证书的列表。CRL中列出了被吊销的证书的序列号和吊销原因等信息,以便通信双方能够验证证书的状态并避免使用已失效的证书。

当一个数字证书因为某种原因不再可信或不再安全时,证书颁发机构会将该证书加入到CRL中。可能导致证书吊销的原因包括:

  1. 证书到期: 证书在特定的有效期之后需要续订或更新,如果没有及时更新,则可能被吊销。

  2. 密钥泄露: 如果证书私钥泄露给第三方,就会导致证书不再安全,需要吊销。

  3. 证书持有者身份不再可信: 如果证书持有者的身份信息发生变化,使其不再是合法的证书持有者,证书可能被吊销。

  4. 证书颁发机构失效: 如果颁发证书的CA不再被信任或不再合法,那么它颁发的所有证书可能都会被吊销。

CRL通常由CA定期发布,以确保吊销信息及时传达给通信双方。对于使用数字证书进行身份验证和加密的应用,通信双方可以通过检查CRL来确认对方的证书是否有效,从而避免与已失效证书的通信。

虽然CRL是一种有效的证书吊销管理机制,但它可能存在一些限制,如更新频率和网络访问延迟等。为了解决这些限制,还有其他机制,例如在线证书状态协议(Online Certificate Status Protocol,OCSP),它允许通信双方实时查询证书状态而无需下载整个CRL。

ssh1和ssh2的区别

SSH1(Secure Shell version 1)和SSH2(Secure Shell version 2)是两个不同版本的安全外壳(Secure Shell)协议,用于远程访问和安全通信。它们之间有一些重要的区别,下面列出了其中一些主要差异:

  1. 安全性: SSH2相较于SSH1提供了更高的安全性。SSH1使用的安全算法和协议存在一些漏洞和弱点,容易受到攻击,而SSH2修复了这些问题,并采用了更强大的加密算法和认证方法。

  2. 加密算法: SSH1主要使用DES和3DES等对称加密算法,而SSH2采用了更先进的加密算法,如AES、3DES、Blowfish等,这些算法提供更高的安全性。

  3. 密钥交换: SSH1使用基于RSA的密钥交换方法,而SSH2支持多种密钥交换算法,包括基于RSA、Diffie-Hellman和椭圆曲线等。

  4. 认证: SSH1的认证方式主要是基于口令密码或基于RSA密钥,而SSH2引入了更多认证方式,如公钥认证、GSSAPI认证等,增加了灵活性和安全性。

  5. 协议版本: SSH1和SSH2是两个不同的协议版本,它们的数据包格式和握手过程有所不同。SSH2相较于SSH1在协议的设计上更加现代化和灵活。

  6. 性能: 由于使用更先进的加密算法和认证方式,SSH2相较于SSH1在性能方面更优,可以提供更高的传输速度和更少的资源消耗。

总体来说,SSH2是更加安全、性能更好且功能更丰富的协议版本,因此在实际应用中,推荐使用SSH2来确保通信的安全性和稳定性。SSH1已经被淘汰,并且在许多SSH客户端和服务器中已经不再支持。

SSH2 增加了对单个SSH 连接上同步shell 会话的支持。SSHl 和SSH2 都支持多因子身份认证。SSH2 实际上不再支持IDEA 算法,而SSHl 和SSH2 都支持3DES 。

多因子身份认证

多因子身份认证(Multi-Factor Authentication,简称MFA)是一种增强安全性的身份验证方法,要求用户在登录或进行敏感操作时提供多个不同类型的身份验证因素,以确认其身份的有效性。这种方法结合了两个或多个独立的身份验证因素,使得攻击者更难以非法获取或伪造用户的身份。

通常,多因子身份认证需要用户提供以下类型的因素中的两个或更多个:

  1. 知识因素(Something You Know): 用户需要提供只有他们知道的信息,如密码、PIN码、答案、口令等。这是最常见的身份验证因素。

  2. 所有权因素(Something You Have): 用户需要提供只有他们拥有的物理设备或对象,如手机、USB密钥、智能卡等。这种因素通常用于通过手机应用或硬件设备生成动态验证码。

  3. 生物特征因素(Something You Are): 用户需要提供其生物特征信息,如指纹、虹膜、面部识别等。这种因素通常用于生物识别技术。

通过使用多因子身份认证,即使攻击者获得了用户的密码或某种身份认证因素,仍然无法完成身份验证,因为他们缺少其他必要的因素。这样可以大大提高账户和数据的安全性,减少账户被盗和信息泄露的风险。

多因子身份认证被广泛应用于各种领域,包括在线银行、电子支付、电子邮件、社交媒体、企业网络登录等。许多互联网服务提供商和公司都鼓励用户启用多因子身份认证来保护其账户和个人信息。

边信道

边信道(Side Channel)是一种攻击方法,利用计算设备在执行特定操作时产生的附加信息泄露出来,从而获取有关设备或数据的敏感信息。边信道攻击不是直接对算法进行破解,而是通过监视目标设备的电力消耗、执行时间、电磁辐射等信息,从中获取有关数据的信息,如秘密密钥、加密数据或其他敏感信息。

边信道攻击的典型示例包括:

  1. 时序攻击(Timing Attack): 通过测量目标设备的执行时间来推断其内部处理,从而获取有关数据的信息。例如,在密码学中,时序攻击可能用于推断密码验证的正确性。

  2. 功耗分析(Power Analysis): 通过监视目标设备的功耗波形,推断其处理过程中不同操作的电力消耗,从而了解内部运算过程,进而获取密钥等敏感信息。

  3. 电磁辐射攻击(Electromagnetic Analysis): 通过分析目标设备产生的电磁辐射,推断其内部运算过程,从而获得有关数据的信息。

  4. 声音分析: 通过分析目标设备在运算过程中产生的声音,推断其内部状态,获取相关敏感信息。

边信道攻击是一种非常隐蔽且高级的攻击技术,可以针对物理设备进行,也可以通过远程的手段进行。这些攻击通常不直接利用算法的弱点,而是利用设备在执行算法时产生的不可避免的泄漏信息,从而进行推断和攻击。为了防范边信道攻击,硬件和软件设计者需要采取一系列的安全措施,如增加随机性、降低功耗波动、使用特殊的电磁屏蔽材料等。同时,密码学算法的设计也需要考虑抵抗边信道攻击的特性。

唯密文

“唯密文”(Ciphertext Only)是密码学中的一个术语,它指的是在密码分析过程中,攻击者只能获得加密后的密文,而没有任何明文或密钥信息。唯密文攻击是一种最具挑战性的密码分析方式,因为攻击者只能依靠加密后的密文来破解加密算法或获取原始明文内容。

在唯密文攻击下,攻击者的目标通常是尝试从密文中推断出明文或密钥,而不需要拥有任何与加密过程相关的信息。唯密文攻击模型通常用于测试密码算法的强度和安全性。

需要注意的是,唯密文攻击是一种较为理想化的密码分析模型,在实际情况下,攻击者可能能够利用其他渠道获取一些与加密过程相关的信息,如密码文本的长度、频率分析等,这些信息有时可以帮助攻击者在唯密文攻击下更轻松地进行攻击。

为了抵御唯密文攻击,应用者通常选择使用安全性较高的加密算法,采取适当的密钥管理方法,以及使用恰当的填充和初始化向量等技术,从而确保即使在唯密文攻击下,攻击者也很难破解加密数据。

故障注入

故障注入(Fault Injection)是一种安全测试和评估技术,用于模拟和分析在计算系统中引入意外故障或异常情况的效果。这种技术通过人为地向系统注入故障来观察系统的行为,并评估系统对异常情况的鲁棒性和安全性。

故障注入可以用于测试和评估各种系统,包括硬件系统、软件系统、嵌入式系统等。通过故障注入,安全研究人员和测试人员可以评估系统在遇到硬件错误、软件错误、恶意攻击等情况下的表现。故障注入可以帮助发现系统的弱点和漏洞,从而改进系统的设计和实现,提高系统的鲁棒性和安全性。

故障注入的一些常见技术包括:

  1. 电压或时钟干扰: 通过向电路注入异常电压或时钟干扰,模拟硬件故障,如电压波动或时钟偏移,以观察系统的响应。

  2. 内存错误注入: 向内存中注入错误或干扰,模拟内存故障,如内存位翻转,以观察系统的反应和容错能力。

  3. 软件错误注入: 在软件代码中插入故障,模拟软件错误,如空指针引用或逻辑错误,以测试系统的异常处理能力。

  4. 网络故障注入: 向通信链路中注入数据包丢失、延迟或错误,模拟网络故障,以评估网络通信的稳定性和可靠性。

  5. 电磁辐射故障注入: 通过电磁辐射或辐射脉冲,引起系统硬件或电路故障,以模拟电磁攻击或环境中的干扰情况。

故障注入是一种有效的测试手段,它可以帮助识别系统的潜在弱点和故障处理机制,并提供改进系统设计和实现的反馈。然而,故障注入测试需要谨慎处理,避免对真实生产环境造成损害,并且必须在合适的测试环境中进行。

Merkle-Helhnan 背包

Merkle-Hellman背包加密是一种非对称加密算法,也被称为Merke-Hellman-Knapsack加密。它是由Ralph Merkle和Martin Hellman在1978年提出的。与RSA等算法不同,Merkle-Hellman背包加密算法不涉及大数分解,而是基于背包问题(Knapsack problem)的困难性来提供加密安全性。

下面是Merkle-Hellman背包加密算法的基本原理和步骤:

  1. 密钥生成:

    • 首先,生成一个私钥(private key)包含了一个超级递增背包序列,这个序列是一个数学问题的实例,难以快速求解。超级递增背包序列是一个整数序列,每个元素是前一个元素的超级递增(superincreasing),这意味着每个元素都比前一个元素大。
    • 生成一个公钥(public key),该公钥包含了私钥中的背包序列的变换版本,以及一个乘法因子和模数。公钥可以公开分享,用于加密消息。
  2. 加密:

    • 要加密消息,首先将明文消息转换为二进制位序列(0和1),然后使用公钥中的背包序列对每个二进制位进行加权求和。得到的加密文本是一系列数字,它们表示了对应的二进制位的加权和。
  3. 解密:

    • 解密需要使用私钥中的超级递增背包序列,以及公钥中的乘法因子和模数。通过求解数学问题,即背包序列的超级递增性质,可以还原出加密消息的二进制位序列,从而获得明文。

虽然Merkle-Hellman背包加密算法在理论上是安全的,但它在实践中已经被证明不够安全,因为存在多项式时间的攻击方法来破解它。因此,它不再被广泛使用,而现代加密算法如RSA和椭圆曲线加密(ECC)等更安全、更有效。Merkle-Hellman背包加密算法主要用于教育和研究领域,以帮助理解非对称加密的基本原理。

X.509是什么

X.509是一种用于公钥基础设施(PKI)的标准格式,用于管理数字证书的制定和定义。数字证书是一种安全工具,用于验证网络通信中的身份,并确保数据的机密性和完整性。X.509标准定义了数字证书的结构和规范,使其能够在互联网和其他计算机网络中广泛使用。

下面是关于X.509的一些关键概念和信息:

  1. 数字证书: 数字证书是一种用于认证和加密通信的数字凭证。它包含了公钥、持有者的身份信息和数字签名等元素。数字证书由可信的实体(通常是证书颁发机构或CA)签发,并用于验证网络通信中的身份。

  2. 证书颁发机构(CA): CA是一个权威的实体,负责颁发数字证书并验证证书持有者的身份。CA使用其私钥对数字证书进行签名,以确保证书的真实性。

  3. X.509标准: X.509标准定义了数字证书的结构,包括证书中包含的信息字段、标识符、扩展和数据格式。它还规定了证书的验证过程,以确保证书的可信度。

  4. 证书链: 在PKI中,证书通常以层次结构组织,形成证书链。顶层的CA证书签发下层的CA证书,最终到达终端实体的证书。这样的结构使得证书可以逐级验证,确保了信任链的完整性。

  5. 应用领域: X.509数字证书广泛应用于互联网和其他计算机网络中的各种场景,包括SSL/TLS加密通信、数字签名、VPN(虚拟专用网络)、电子邮件加密、代码签名等。

  6. 证书格式: X.509数字证书的常见格式包括DER(Distinguished Encoding Rules)和PEM(Privacy Enhanced Mail)。DER格式是二进制的,而PEM格式是基于Base64编码的文本格式。

总之,X.509是一个关键的标准,用于建立可信的PKI体系,使数字证书能够在网络中用于验证身份和保护通信的安全性。这个标准在保障网络通信和数据安全方面起着重要作用。

在非对称密码中,是用公钥加密,用私钥解密,还是用私钥加密公钥解密呢?

非对称密码学中的用途应该是这样的

使用公钥加密,私钥解密(加密通信):
公钥是公开的,用于加密消息。
私钥是保密的,用于解密消息。
当某人想要向您发送加密的消息时,他们使用您的公钥来加密消息。只有您拥有与该公钥对应的私钥,才能解密并阅读消息。
这种方式保证了消息在传输过程中的机密性,只有私钥的持有者才能解密和阅读消息。

使用私钥签名,公钥验证(数字签名):
私钥是用于生成数字签名的。
公钥用于验证数字签名。
当某人想要签署一份文档或消息以证明其真实性和完整性时,他们使用自己的私钥来生成数字签名。
其他人可以使用签名者的公钥来验证文档或消息的数字签名,以确保它没有被篡改并确实来自合法的签名者。

[6/20] 练习题测试结果

正确率 6/20

[8/20]《CISSP官方学习指南第八版》第7章练习题

正确率 8/20

  1. D
  2. B

  1. A 正确答案C
    Richard 必须用 Sue 的公钥给消息加密,这样 Sue 才能用自己的私钥解密消息。如
    果沁chard 用自己的公钥加密消息,则接收者需要知道 Richard 的私钥才能给消息解密。如果
    Richard 用自己的私钥加密消息,则任何用户都将能用随意可得的 Richard 的公钥解密消息。
    Richard 不能用 Sue 的私钥加密消息,因为他无权访问 Sue 的私钥。如果他这么做了,则任何
    用户都将能用随意可得的 Sue 公钥解密消息。

  1. C

  1. B 正确答案A
    椭圆曲线密码系统要求用缩矩了很多的密钥来实现加密,而强度要与 RSA 加密算法实现的加密强度相同。一个 3072 RSA 密钥在密码学意义上等同于一个 256 位椭圆曲线密码系统密钥。

  1. B

  1. B 正确答案D

安全套接字层(SSL)协议已被弃用,不再被认为是安全的,绝不应使用。安全哈希
算法 3(SHA-3) 、传输层安全(TLS)l.2 IPsec 都是现代的安全协议和标准。


  1. A

  1. A 正确答案B
    Sue 会用 Richard 的公钥加密消息。因此, Richard 需要用密钥对中的相应密钥,
    即他的私钥来解密消息。

  1. A 正确答案B
    Richard 应该用自己的私钥加密消息摘要。当 Sue 收到消息时,她将用 Richard
    公钥解密摘要,然后计算自己的摘要。如果两个摘要匹配,她便可以确信,消息确实源自
    Richard

  1. B 正确答案C
    “数字签名标准“允许联邦政府将数字签名算法、 RSA 或椭圆曲线 DSA SHA-1
    哈希函数配套使用,生成安全的数字签名。

  1. C 正确答案B
    X.509 辖制数字证书和公钥基础设施(PKI) 。它为数字证书定义了适当内容以及发
    证机构用千生成和撤销证书的流程。

  1. B
  2. C

  1. D 正确答案A
    没有系统特殊访问权的攻击者只能实施唯密文攻击。已知明文和选择明文攻击要
    求攻击者能够加密数据。故障注入攻击要求物理访问设施。

  1. A

  2. B 正确答案C
    PFX 格式与存储二进制格式证书的 Windows 系统关系最密切,而 P7B 格式用千
    存储文本格式文件的 Wi11dows 系统。 PEM 格式是另一种文本格式,并不存在 CCM 格式。

  3. A 正确答案B
    证书注销列表由于存在分发的时间间隔,给证书到期进程带来了固有的延迟。

  4. A 正确答案D
    依靠因式分解超递增集难度的 Merkle-Hellman 背包算法已被密码分析师破解。

  5. D 正确答案B
    SSH2 增加了对单个 SSH 连接上同步 shell 会话的支持。 SSHl SSH2 都支持多
    因子身份认证。 SSH2 实际上不再支持 IDEA 算法,而 SSHl SSH2 都支持 3DES

[15/20] CISSP官方学习手册(第9版)第7章练习题

正确率 15/20

  1. D
  2. B
  3. C
  4. C
  5. D 正确答案A
  6. B
  7. A 正确答案D
  8. A
  9. B
  10. C 正确答案B 这道题的答案在《图解密码技术,第三版》第九章 数字签名,page210页,讲过
  11. A 正确答案C
  12. B
  13. B
  14. C
  15. A
  16. A
  17. C
  18. B
  19. D
  20. A 正确答案B
    SSH-2的新特性,增加了在单个SSH连接上运行任意数量的shell会话的能力。

page288 / 882