非对称密钥

非对称密钥(也称为 公钥/私钥对)用于非对称加密。 非对称加密主要用于加密和解密 会话密钥数字签名。 非对称加密使用 公钥加密 算法。

公钥算法使用两个不同的密钥:公钥私钥。 对的私钥成员必须保持私有和安全。 但是,公钥可以分发给请求它的任何人。 密钥对的公钥通常通过 数字证书进行分发。 当使用密钥对的一个密钥对加密消息时,需要该对中的其他密钥来解密消息。 因此,如果用户 A 的公钥用于加密数据,则只有用户 A(或有权访问用户 A 的私钥)才能解密数据。 如果用户 A 的私钥用于加密数据片段,则只有用户 A 的公钥会解密数据,从而指示用户 A(或有权访问用户 A 的私钥的人)执行加密。

如果私钥用于对消息进行签名,则必须使用该对中的公钥来验证签名。 例如,如果 Alice 想要向某人发送数字签名的消息,她将使用私钥对消息进行签名,而其他人可以使用公钥验证她的签名。 因为大概只有 Alice 有权访问她的私钥,因此可以使用 Alice 的公钥验证签名的事实表明 Alice 创建了签名。

遗憾的是,公钥算法速度非常慢,比对称算法慢约 1,000 倍。 使用它们来加密大量数据是不切实际的。 在实践中,公钥算法用于加密 会话密钥 对称算法 用于对大多数数据进行加密/解密。

同样,由于对消息进行签名实际上对消息进行加密,因此使用公钥签名算法对大型消息进行签名并不实用。 相反,哈希 由消息组成,哈希值是签名的。 有关详细信息,请参阅 哈希和数字签名

每个用户通常有两个 公钥/私钥对。 一个密钥对用于加密会话密钥,另一个用于创建 数字签名。 它们分别称为 密钥交换密钥对签名密钥对

请注意,尽管大多数 加密服务提供商创建的密钥容器(CSP)包含两个密钥对,但这不是必需的。 某些 CSP 不会存储任何 密钥对,而其他 CSP 存储的密钥对数超过两对。

CryptoAPI 中的所有密钥都存储在 CSP 中。 CSP 还负责创建密钥、销毁密钥以及使用这些密钥来执行各种加密作。 加密密钥存储和 Exchange中讨论了将密钥导出到 CSP 中的密钥,以便可以发送给其他用户。