加密技术、密钥和证书(一)
时间:2005-10-23 来源:rickyweiwei
密钥和证书
非对称加密使用公钥/私钥对。对于使用私钥加密的数据,只能使用相应的公钥进行解密,反之亦然。
公钥是指可以提供给很多人的密钥。相反,私钥是特定个人所独有的。向用户传送公钥使用的分发机制是证书。通常,证书颁发机构 (CA) 对证书进行签名,以便确认公钥来自声称发送公钥的主体。CA 是一个相互信任的实体。数字认证的典型实现包含证书签名过程。图 1 中显示了此过程。
密钥和证书
非对称加密使用公钥/私钥对。对于使用私钥加密的数据,只能使用相应的公钥进行解密,反之亦然。
顾名思义,公钥是指可以提供给很多人的密钥。相反,私钥是特定个人所独有的。向用户传送公钥使用的分发机制是证书。通常,证书颁发机构 (CA) 对证书进行签名,以便确认公钥来自声称发送公钥的主体。CA 是一个相互信任的实体。数字认证的典型实现包含证书签名过程。图 1 中显示了此过程。
图 1 中显示了以下事件的顺序:
1. |
王丽将一个签名的证书请求(包含她的名字、公钥、可能还有其他一些信息)发送到 CA。 |
2. |
CA 使用王丽的请求创建一个消息。CA 使用其私钥对消息进行签名,以便创建一个单独的签名。CA 将消息和签名返回给王丽。消息和签名共同构成了王丽的证书。 |
3. |
王丽将她的证书发送给李华,以便授权他访问她的公钥。 |
4. |
李华使用 CA 的公钥对证书签名进行验证。如果证明签名是有效的,他就承认证书中的公钥是王丽的公钥。 |
与数字签名的情况一样,任何有权访问 CA 公钥的接收者都可以确定证书是否是由特定 CA 签名的。这个过程不要求访问任何机密信息。上面这个方案假定李华有权访问 CA 的公钥。如果李华拥有包含该公钥的 CA 证书的副本,则他有权访问该密钥。
加密技术
加密技术用于提供以下功能:
• |
机密性。确保数据的保密性。机密性通常是使用加密实现的。可以使用加密算法(使用加密密钥)将明文转换为密文,并使用相应的解密算法将密文转换回明文。对称加密算法使用相同的密钥进行加密和解密,而非对称算法则使用公钥/私钥对。 |
• |
数据完整性。确保数据免受意外或者故意(恶意)的修改。完整性通常是由消息身份验证代码或哈希值提供的。哈希值是从数据序列导出的固定长度的数值。哈希值用于验证通过非安全通道传送的数据的完整性。可以将收到的数据的哈希值与传送时数据的哈希值进行比较,以确定数据是否被篡改。 |
• |
身份验证。保证数据来自某一方。数字证书用于提供身份验证。数字签名通常应用于哈希值,因为这些值比它们所代表的源数据小得多。 |
技术选择
• |
如果需要使用一种方法来验证数据在传输过程中没有被篡改,请使用哈希值。 |
• |
如果要证明实体知道机密但不来回发送机密,或者想使用简单的哈希值以防止在传输过程中被截获,请使用加密的哈希值。 |
• |
如果要隐藏通过不安全的媒介发送的数据或者要永久性保留数据,请使用加密。 |
• |
如果要验证声称是公钥所有者的人员的身份,请使用证书。 |
• |
如果双方事先共享密钥,请使用对称加密以提高速度。 |
• |
如果想通过不安全的媒介安全地交换数据,请使用非对称加密。 |
• |
如果要进行身份验证和实现不可否认性,请使用数字签名。 |
• |
使用 Salt 值(使用加密技术生成的随机数)以防范字典攻击。 |